The Community for Technology Leaders
RSS Icon
Subscribe
Issue No.03 - March (1998 vol.24)
pp: 197-215
ABSTRACT
<p><b>Abstract</b>—Static Program Analyzers (SPA) are interactive tools that enhance program understanding during maintenance by answering queries about programs. Depending on the maintenance task in hand, SPAs must process different source programs and answer different types of program queries. Flexibility is, therefore, a desirable property of SPAs. In this paper, we describe a program query language, called <it>PQL</it>, that facilitates the design of flexible SPAs. <it>PQL</it> is a conceptual level, source language-independent notation to specify program queries and program views. In <it>PQL</it>, we can query global program design as well as search for detail code patterns. <it>PQL</it> queries are answered automatically by a query evaluation mechanism built into an SPA. Program design models and <it>PQL</it> form the core of an SPA conceptual model. We based the SPA's architecture on this conceptual model. By separating the conceptual model from the implementation decisions, we can design SPAs that are customizable to the needs of the maintenance project at hand. Depending on criteria such as efficiency of query evaluation or simplicity of the SPA design, we can implement the same functional specifications of an SPA on a variety of program representations to meet the required criteria. Apart from its role in the design of SPAs, the conceptual model also allows us to rigorously study SPA functionality in the context of the underlying maintenance process and programmer behavior models, in isolation from tool implementation details</p>
INDEX TERMS
Program analysis for understanding, program query language, program modeling, reverse engineering, software maintenance, tool generation.
CITATION
Stan Jarzabek, "Design of Flexible Static Program Analyzers with PQL", IEEE Transactions on Software Engineering, vol.24, no. 3, pp. 197-215, March 1998, doi:10.1109/32.667879
6 ms
(Ver 2.0)

Marketing Automation Platform Marketing Automation Tool