Exploiting the Clang AST for Analysis of C++ Applications

In this paper, we describe our methodology for leveraging the Clang parser front-end to address the problem of tool development. We describe our approach and demonstrate its utility by computing some common metrics for three version releases of a popular, open source video game, Aleph One, a continuation of Marathon, a game produced by Bungie Software. We describe our results for applying two commonly used metrics to the three version releases and we describe an interesting contradiction in the two metrics when applied to successive version releases of Aleph One.

[1]  RAINER KOPPLER A Systematic Approach to Fuzzy Parsing , 1997, Softw. Pract. Exp..

[2]  Capers Jones,et al.  Function points as a universal software metric , 2013, SOEN.

[3]  Leon Moonen,et al.  Generating robust parsers using island grammars , 2001, Proceedings Eighth Working Conference on Reverse Engineering.

[4]  Brian A. Malloy,et al.  Grammar Recovery from Parse Trees and Metrics-Guided Grammar Refactoring , 2009, IEEE Transactions on Software Engineering.

[5]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[6]  Michel Dagenais,et al.  Parsing C++ despite missing declarations , 1999, Proceedings Seventh International Workshop on Program Comprehension.

[7]  Chris F. Kemerer,et al.  Improving the Reliability of Function Point Measurement: An Empirical Study , 1992, IEEE Trans. Software Eng..

[8]  Mark Hennessy,et al.  gccXfront: exploiting gcc as a front end for program comprehension tools via XML/XSLT , 2003, 11th IEEE International Workshop on Program Comprehension, 2003..

[9]  Cyril S. Ku,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[10]  Brian A. Malloy,et al.  Metric-based analysis of context-free grammars , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[11]  Nicholas A. Kraft,et al.  Structural information based term weighting in text retrieval for feature location , 2013, 2013 21st International Conference on Program Comprehension (ICPC).

[12]  Brian A. Malloy,et al.  A Metric Evaluation of Game Application Software , 2005 .

[13]  Letha H. Etzkorn,et al.  Configuring latent Dirichlet allocation based feature location , 2014, Empirical Software Engineering.

[14]  Jeffrey G. Gray,et al.  An information retrieval process to aid in the analysis of code clones , 2009, Empirical Software Engineering.

[15]  Fadi P. Deek,et al.  Open Source: The GNU project , 2007 .

[16]  Letha H. Etzkorn,et al.  Source Code Retrieval for Bug Localization Using Latent Dirichlet Allocation , 2008, 2008 15th Working Conference on Reverse Engineering.

[17]  Chris Lattner,et al.  LLVM: AN INFRASTRUCTURE FOR MULTI-STAGE OPTIMIZATION , 2000 .

[18]  Brian A. Malloy,et al.  A tool chain for reverse engineering C++ applications , 2007, Sci. Comput. Program..

[19]  Anas N. Al-Rabadi,et al.  A comparison of modified reconstructability analysis and Ashenhurst‐Curtis decomposition of Boolean functions , 2004 .

[20]  Brian A. Malloy,et al.  A metrics suite for grammar-based software , 2004, J. Softw. Maintenance Res. Pract..