Abstract Interpretation is a general methodology for building tools performing static analysis of programs. We present in this report a new abstract interpretation framework for full Prolog - i.e. taking into account the system predicates asserta, assertz and retract. The Prolog programs can thus modify themselves dynamically, what is at the origin of new difficulties. We expose the methodological aspects of our solution which consists of a general approach widely applicable and that was shown very effective for quite large logic programs. The new framework still allows to integrate traditional analyses (e.g. mode and type), determinacy analysis, functionality analysis and cardinality analysis. To achieve it, we propose a new approach where the abstract domain captures information about not only modes, types, number of solutions, cut and termination, but also about the 'dynamic context' upon which a literal is executed.
|Date of Award||1995|
|Supervisor||Baudouin LE CHARLIER (Supervisor)|