|
Description:
|
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 ) . |