Traversal, Case Analysis, and Lowering for C++ Program Analysis
To work effectively, programmers need tools to support their typical development activities, such as the creation, analysis, and transformation of source code. Analysis and transformation tools can be difficult to write for modern programming languages and, without a reusable framework, each tool mu...
Main Author: | |
---|---|
Other Authors: | |
Format: | Others |
Language: | en_US |
Published: |
2010
|
Subjects: | |
Online Access: | http://hdl.handle.net/1969.1/ETD-TAMU-2009-08-908 http://hdl.handle.net/1969.1/ETD-TAMU-2009-08-908 |
Summary: | To work effectively, programmers need tools to support their typical development
activities, such as the creation, analysis, and transformation of source code.
Analysis and transformation tools can be difficult to write for modern programming
languages and, without a reusable framework, each tool must separately implement
nontrivial algorithms like name lookup and type checking. This thesis describes an
extension to one such framework, named Pivot, that focuses on programs written in
C++. This extension, named Filter, assists the tool builder in traversal, case analysis,
and lowering of the data structure representing C++ programs. Comparisons described
in the thesis show a 2-4x code reduction when solving basic problems (e.g., searching
for uses of a given declaration) using the extension and a performance overhead that
drops below 2x for larger problems (e.g., checking C++ layout compatibility). |
---|