skip to main content
research-article
Open Access

Scaling static analyses at Facebook

Published:24 July 2019Publication History
Skip Abstract Section

Abstract

Key lessons for designing static analyses tools deployed to find bugs in hundreds of millions of lines of code.

Skip Supplemental Material Section

Supplemental Material

References

  1. Bessey, A. et al. A few billion lines of code later: using static analysis to find bugs in the real world. Commun. ACM 53, 2 (Feb. 2010), 66--75. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Blackshear, S., Gorogiannis, N., Sergey, I. and O'Hearn P. Racerd: Compositional static race detection. In Proceedings of OOPSLA, 2018. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Brookes, S. and O'Hearn, P.W. Concurrent separation logic. SIGLOG News 3, 3 (2016), 47--65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Calcagno, C. et al. Moving fast with software verification. In Proceedings of NASA Formal Methods Symposium, 2015, 3--11.Google ScholarGoogle ScholarCross RefCross Ref
  5. Calcagno, C., Distefano, D. O'Hearn, P.W and Yang, H. Compositional shape analysis by means of bi-abduction. J. ACM 58, 6 (2011), 26. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Cook, B. Formal reasoning about the security of Amazon Web services. LICS (2018), 38--47.Google ScholarGoogle Scholar
  7. Cousot, P. and Cousot, R. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings of the 4<sup>th</sup> POPL, 1977, 238--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Cousot, P. and Cousot, R. Modular static program analysis. In Proceedings of 2002 CC, 159--178. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Feitelson, D.G., Frachtenberg, E. and Beck, K.L. Development and deployment at Facebook. IEEE Internet Computing 17, 4 (2013), 8--17. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Gorogiannis, N., Sergey, I. and O'Hearn, P. A true positives theorem for a static race detector. In Proceedings of the 2019 POPL. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Harman, M. and O'Hearn, P. From start-ups to scale-ups: Open problems and challenges in static and dynamic program analysis for testing and verification). In Proceedings of SCAM, 2018.Google ScholarGoogle Scholar
  12. Iqbal, S.T and Horvitz, E. Disruption and recovery of computing tasks: Field study, analysis, and directions. In Proceedings of 2007 CHI, 677--686. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Larus, J.R. et al. Righting software. IEEE Software 21, 3 (2004), 92--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. O'Hearn, P. Continuous reasoning: Scaling the impact of formal methods. LICS, 2018. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. O'Hearn, P.W. Experience developing and deploying concurrency analysis at Facebook. SAS, 2018, 56--70.Google ScholarGoogle Scholar
  16. O'Hearn, P.W. Separation logic. Comm. ACM 62, 2 (Feb 2019), 86--95. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Sadowski, C., Aftandilian, E., Eagle, A., Miller-Cushion, L. and Jaspan, C. Lessons from building static analysis tools at Google. Commun. ACM 61, 4 (Apr. 2018), 58--66. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Xie, Y. and Aiken, A. Static detection of security vulnerabilities in scripting languages. In Proceedings of USENIX Security Symposium, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Yorsh, G., Yahav, E. and Chandra, S. Generating precise and concise procedure summaries. In Proceedings of 2008 POPL. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Scaling static analyses at Facebook

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in

        Full Access

        • Published in

          cover image Communications of the ACM
          Communications of the ACM  Volume 62, Issue 8
          August 2019
          88 pages
          ISSN:0001-0782
          EISSN:1557-7317
          DOI:10.1145/3351434
          Issue’s Table of Contents

          Copyright © 2019 Owner/Author

          This work is licensed under a Creative Commons Attribution International 4.0 License.

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          • Published: 24 July 2019

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • research-article
          • Popular
          • Refereed

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader

        HTML Format

        View this article in HTML Format .

        View HTML Format