TY - CHAP
T1 - Meta-circular abstract interpretation in prolog
AU - Codish, Michael
AU - Søndergaard, Harald
PY - 2002/1/1
Y1 - 2002/1/1
N2 - We give an introduction to the meta-circular approach to the abstract interpretation of logic programs. This approach is particularly useful for prototyping and for introductory classes on abstract interpretation. Using interpreters, students can immediately write, adapt, and experiment with interpreters and working dataflow analysers. We use a simple meta-circular interpreter, based on a "non-ground TP" semantics, as a generic analysis engine. Instantiating the engine is a matter of providing an appropriate domain of approximations, together with definitions of "abstract" unification and disjunction. Small changes of the interpreter let us vary both what can be "observed" by an analyser, and how fixed point computation is done. Amongst the dataflow analyses used to exemplify this approach are a parity analysis, groundness dependency analysis, call patterns, depth-k analysis, and a "pattern" analysis to establish most specific generalisations of calls and success sets.
AB - We give an introduction to the meta-circular approach to the abstract interpretation of logic programs. This approach is particularly useful for prototyping and for introductory classes on abstract interpretation. Using interpreters, students can immediately write, adapt, and experiment with interpreters and working dataflow analysers. We use a simple meta-circular interpreter, based on a "non-ground TP" semantics, as a generic analysis engine. Instantiating the engine is a matter of providing an appropriate domain of approximations, together with definitions of "abstract" unification and disjunction. Small changes of the interpreter let us vary both what can be "observed" by an analyser, and how fixed point computation is done. Amongst the dataflow analyses used to exemplify this approach are a parity analysis, groundness dependency analysis, call patterns, depth-k analysis, and a "pattern" analysis to establish most specific generalisations of calls and success sets.
UR - http://www.scopus.com/inward/record.url?scp=84887855736&partnerID=8YFLogxK
U2 - 10.1007/3-540-36377-7_6
DO - 10.1007/3-540-36377-7_6
M3 - Chapter
AN - SCOPUS:84887855736
SN - 9783540003267
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 109
EP - 134
BT - The Essence of Computation
PB - Springer Verlag
ER -