Cecil: a sequencing constraint language for automatic static analysis generation
- 1 March 1990
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 16 (3), 268-280
- https://doi.org/10.1109/32.48935
Abstract
A flexible and general mechanism for specifying problems relating to the sequencing of events and mechanically translating them into dataflow analysis algorithms capable of solving those problems is presented. Dataflow analysis has been used for quite some time in compiler code optimization. Most static analyzers have been custom-built to search for fixed and often quite limited classes of dataflow conditions. It is shown that the range of sequences for which it is interesting and worthwhile to search in actually quite broad and diverse. A formalism for specifying this diversity of conditions is created. It is shown that these conditions can be modeled essentially as dataflow analysis problems for which effective solutions are known. It is also shown how these solutions can be exploited to serve as the basis for mechanical creation of analyzers for these conditions.Keywords
This publication has 20 references indexed in Scilit:
- Cesar: a static sequencing constraint analyzerPublished by Association for Computing Machinery (ACM) ,1989
- Elimination algorithms for data flow analysisACM Computing Surveys, 1986
- Collecting and categorizing software error data in an industrial environmentJournal of Systems and Software, 1984
- An approach to software system modelling and analysisComputer Languages, 1979
- Abstract data types and software validationCommunications of the ACM, 1978
- Software Descriptions with Flow ExpressionsIEEE Transactions on Software Engineering, 1978
- Data Flow Analysis in Software ReliabilityACM Computing Surveys, 1976
- A Simple Algorithm for Global Data Flow Analysis ProblemsSIAM Journal on Computing, 1975
- Path ExpressionsPublished by Defense Technical Information Center (DTIC) ,1975
- An axiomatic basis for computer programmingCommunications of the ACM, 1969