Design of Flexible Static Program Analyzers with PQL
نویسنده
چکیده
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 PQL, that facilitates the design of flexible SPAs. PQL is a conceptual level, source language-independent notation to specify program queries and program views. In PQL, we can query global program design as well as search for detail code patterns. PQL queries are answered automatically by a query evaluation mechanism built into an SPA. Program design models and PQL 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 in 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. Index terms program analysis for understanding, program query language, program modeling, reverse engineering, software maintenance, tool generation
منابع مشابه
Finding Application Errors Using PQL: a Program Query Language
A number of effective error detection tools have been built in recent years to check if a program conforms to certain design rules. An important class of design rules deals with sequences of events associated with a set of related objects. This paper presents a language called PQL (Program Query Language) that allows programmers to express such questions easily in an application-specific contex...
متن کاملStatic Verification of Non-Functional Software Requirements in the ISO-26262
The norm ISO-26262 aims at ascertaining the functional safety of Automotive Electric/Electronic Systems. It is not focused on purely functional system properties, but also demands to exclude nonfunctional safety hazards in case they are critical for a correct functioning of the system. Examples are violations of timing constraints in real-time software and software crashes due to runtime errors...
متن کاملRobust Design of Mixing Static and Dynamic Multiple Quality Characteristics
Increased market competition means that quality, cost and delivery time are crucial elements of modern production techniques. Taguchi’s robust design is the most powerful method available for reducing product cost, improving quality, and simultaneously reducing development time. Robust design aims to reduce the impact of noise on the product or process quality and leads to greater customer sati...
متن کاملReusable Metatheory for Program Analysis
The design and implementation of static analyzers have becoming increasingly systematic. In fact, for large classes of analyzers, design and implementation have remained seemingly (and now stubbornly) on the verge of full mechanization for several years. A stumbling block in full mechanization has been the ad hoc nature of soundness proofs accompanying each analyzer. While design and implementa...
متن کاملStatic Analysis by Abstract Interpretation of Sequential and Multithreaded Programs
In the realm of embedded critical systems, it is crucial to guarantee the correctness of programs before they are deployed. Static analyzers can help by detecting at compile-time potentially erroneous program behaviors: they perform sound over-approximations to achieve an efficient analysis while not missing any potential behavior. We discuss the systematic design of such analyzers using abstra...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- IEEE Trans. Software Eng.
دوره 24 شماره
صفحات -
تاریخ انتشار 1998