מיכאל קודיש

אקדמי בכיר

Specialisation of Prolog and FCP programs using abstract interpretation

John Gallagher, Michael Codish, Ehud Shapiro

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.

שפת פרסום אנגלית
דפים 159-186
כתב עת New Generation Computing
כרך 6
נושא מספר 2-3
סטטוס פרסום פורסם - 01.09.1988

Keywords

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

ASJC Scopus subject areas

Software
Theoretical Computer Science
Hardware and Architecture
Computer Networks and Communications
גישה למסמך
10.1007/BF03037136
קבצים וקישורים אחרים
Link to publication in Scopus