| Program Analysis & Logic Programming |
The underlying approach is to base the formal semantics of CLAIR on Structured Operational Semantics [Plo81] while doing the implementation in Prolog. One of the advantages of this combination is that there is a close link between the formal specification and the implementation making it relatively easy to extend the system so as to support other language features. In addition, one can see, with relatively little effort, theory at work: a grammar becomes a parser, static semantics rules directly translate into a type checker, and with dynamic semantics rules you have an interpreter for your language.
It is planned to use CLAIR with the PPL (which already has an interface for Prolog) so as to support research into the static analysis of C programs for numerical information.
[Plo81] Gordon Plotkin.
A structural approach to operational semantics.
Technical Report DAIMI FN-19, Computer Science Department,
University of Aarhus, Denmark, 1981.
[NecMR02] G.C. Necula, S. McPeak, S.P. Rahul and W. Weimer,
CIL: Intermediate Language and Tools for
Analysis and Transformation of C Programs,
in Computational Complexity,
pages 213-228,
2002
Lecture Notes in Computer Science, 2304,
Springer, 2002.