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...

Full description

Bibliographic Details
Main Author: Wagner, Luke A.
Other Authors: Stroustrup, Bjarne
Format: Others
Language:en_US
Published: 2010
Subjects:
C++
Online Access:http://hdl.handle.net/1969.1/ETD-TAMU-2009-08-908
http://hdl.handle.net/1969.1/ETD-TAMU-2009-08-908
id ndltd-tamu.edu-oai-repository.tamu.edu-1969.1-ETD-TAMU-2009-08-908
record_format oai_dc
spelling ndltd-tamu.edu-oai-repository.tamu.edu-1969.1-ETD-TAMU-2009-08-9082013-01-08T10:39:21ZTraversal, Case Analysis, and Lowering for C++ Program AnalysisWagner, Luke A.Program analysisC++TraversalTo 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).Stroustrup, Bjarne2010-01-14T23:55:22Z2010-01-16T00:17:53Z2010-01-14T23:55:22Z2010-01-16T00:17:53Z2009-082010-01-14BookThesisElectronic Thesisapplication/pdfhttp://hdl.handle.net/1969.1/ETD-TAMU-2009-08-908http://hdl.handle.net/1969.1/ETD-TAMU-2009-08-908en_US
collection NDLTD
language en_US
format Others
sources NDLTD
topic Program analysis
C++
Traversal
spellingShingle Program analysis
C++
Traversal
Wagner, Luke A.
Traversal, Case Analysis, and Lowering for C++ Program Analysis
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).
author2 Stroustrup, Bjarne
author_facet Stroustrup, Bjarne
Wagner, Luke A.
author Wagner, Luke A.
author_sort Wagner, Luke A.
title Traversal, Case Analysis, and Lowering for C++ Program Analysis
title_short Traversal, Case Analysis, and Lowering for C++ Program Analysis
title_full Traversal, Case Analysis, and Lowering for C++ Program Analysis
title_fullStr Traversal, Case Analysis, and Lowering for C++ Program Analysis
title_full_unstemmed Traversal, Case Analysis, and Lowering for C++ Program Analysis
title_sort traversal, case analysis, and lowering for c++ program analysis
publishDate 2010
url http://hdl.handle.net/1969.1/ETD-TAMU-2009-08-908
http://hdl.handle.net/1969.1/ETD-TAMU-2009-08-908
work_keys_str_mv AT wagnerlukea traversalcaseanalysisandloweringforcprogramanalysis
_version_ 1716503939203989504