• DocumentCode
    2686955
  • Title

    Building Useful Program Analysis Tools Using an Extensible Java Compiler

  • Author

    Aftandilian, Edward ; Sauciuc, Raluca ; Priya, Siddharth ; Krishnan, Sundaresan

  • Author_Institution
    Google, Inc., Mountain View, CA, USA
  • fYear
    2012
  • fDate
    23-24 Sept. 2012
  • Firstpage
    14
  • Lastpage
    23
  • Abstract
    Large software companies need customized tools to manage their source code. These tools are often built in an ad-hoc fashion, using brittle technologies such as regular expressions and home-grown parsers. Changes in the language cause the tools to break. More importantly, these ad-hoc tools often do not support uncommon-but-valid code code patterns. We report our experiences building source-code analysis tools at Google on top of a third-party, open-source, extensible compiler. We describe three tools in use on our Java code base. The first, Strict Java Dependencies, enforces our dependency policy in order to reduce JAR file sizes and testing load. The second, error-prone, adds new error checks to the compilation process and automates repair of those errors at a whole-code base scale. The third, Thindex, reduces the indexing burden for a Java IDE so that it can support Google-sized projects.
  • Keywords
    Java; program compilers; program diagnostics; program testing; public domain software; Google-sized projects; JAR file sizes; Java IDE; Java dependencies; Thindex; ad-hoc fashion; ad-hoc tools; brittle technologies; customized tools; extensible Java compiler; program analysis tools; software companies; source-code analysis; testing load; third-party open-source extensible compiler; Buildings; Computer bugs; Google; Java; Libraries; Maintenance engineering; Testing; bug finding; compilers; dependency checking; indexing; static analysis;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Source Code Analysis and Manipulation (SCAM), 2012 IEEE 12th International Working Conference on
  • Conference_Location
    Trento
  • Print_ISBN
    978-1-4673-2398-7
  • Type

    conf

  • DOI
    10.1109/SCAM.2012.28
  • Filename
    6392098