Specialisation of Prolog and FCP programs using abstract interpretation

John Gallagher, Michael Codish, Ehud Shapiro

Research output: Contribution to journalArticlepeer-review

33 Scopus citations

Abstract

This paper presents an approach to specialising logic programs which is based on abstract interpretation. Program specialisation involves two stages, the construction of an abstract computation tree and a program construction stage. For the tree construction stage, abstract OLDT resolution is defined and used to construct a complete and finite tree corresponding to a given logic program and a goal. In the program construction stage, a specialised program is extracted from this tree. We focus on two logic programming languages: sequential Prolog and Flat Concurrent Prolog. Although the procedural reading of concurrent logic programs is very different from that of sequential programs, the techniques presented provide a uniform approach to the specialisation of both languages. We present the results for Prolog rigorously, and extend them less formally to Flat Concurrent Prolog. There are two main advantages of basing program specialisation on abstract interpretation. Firstly, termination can be ensured by using abstract interpretations over finite domains, while performing a complete flow analysis of the program. Secondly, correctness of the specialised program is closely related to well-defined consistency conditions on the concrete and abstract interpretations.

Original languageEnglish
Pages (from-to)159-186
Number of pages28
JournalNew Generation Computing
Volume6
Issue number2-3
DOIs
StatePublished - 1 Sep 1988
Externally publishedYes

Keywords

  • Abstract Interpretation
  • Concurrent Logic Programming
  • Flat Concurrent Prolog
  • Logic Programming
  • OLDT Resolution
  • Program Specialisation
  • Prolog

Fingerprint

Dive into the research topics of 'Specialisation of Prolog and FCP programs using abstract interpretation'. Together they form a unique fingerprint.

Cite this