Date of Award
12-2011
Document Type
Dissertation
Degree Name
Doctor of Philosophy (PhD)
Legacy Department
Computer Science
Committee Chair/Advisor
Malloy, Brian A
Committee Member
von Oehsen , James B
Committee Member
Hallstrom , Jason A
Committee Member
Srimani , Pradip K
Abstract
In this thesis, we describe our system, Hylian, for statement-level analysis,
both static and dynamic, of a C++ application. We begin by extending the
GNU gcc parser to generate parse trees in XML format for each of the
compilation units in a C++ application. We then provide verification that the
generated parse trees are structurally equivalent to the code in the
original C++
application. We use the generated parse trees, together with an augmented
version of the gcc test suite, to recover a grammar for the C++ dialect that
we parse. We use the recovered grammar to generate a schema for further
verification of the parse trees and evaluate the coverage provided by our
C++ test suite. We then extend the parse tree, for each compilation unit, with
semantic information to form an abstract semantic graph, ASG, and then link
the ASGs for all of the compilation units into a unified ASG for the entire
application under study. In addition, to relieve the cognitive burden of
information that may inundate a developer, we describe our development of
extensions to Hylian to build abbreviated abstract semantic graphs, which
incorporate information about user code, but not about compiler provided
library code. Finally, we describe the various approaches that we adopted to
provide assurance for the developer that the ASGs that Hylian builds,
correctly represent the program under study.
Recommended Citation
Duffy, Edward, "The Design & Implementation of an Abstract Semantic Graph for Statement-Level Dynamic Analysis of C++ Applications" (2011). All Dissertations. 832.
https://open.clemson.edu/all_dissertations/832