ACM Home Page
Please provide us with feedback. Feedback
Tutorial on specialisation of logic programs
Full text PdfPdf (1.12 MB)
Source ACM/SIGPLAN Workshop Partial Evaluation and Semantics-Based Program Manipulation archive
Proceedings of the 1993 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation table of contents
Copenhagen, Denmark
Pages: 88 - 98  
Year of Publication: 1993
ISBN:0-89791-594-1
Author
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 24,   Citation Count: 43
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/154630.154640
What is a DOI?

ABSTRACT

In this tutorial the specialisation of declarative logic programs is presented. The main correctness results are given, and the outline of a basic algorithm for partial evaluation of a logic program with respect to a goal. The practical considerations of gaining efficiency (and not losing any) are discussed. A renaming scheme for performing structure specialisation is then described, and illustrated on a well-known string matching example. The basic algorithm is enhanced by incorporating abstract interpretation. A two-phase specialisation is then described and illustrated, in which partial evaluation is followed by the detection and removal of useless clauses. This is shown for the specialisation of a proof procedure for first order logic. The specialisation of meta programs is very important in logic programming, and the ground representation for object programs has to be handled. Some techniques for doing this are described. Comparisons are made in the tutorial to similar work in other programming languages, and the similarities and differences between them and logic program specialisation is discussed.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
 
3
4
 
5
D.A. de Waal and J. Gallagher. Specialisation of a unification algorithm. In T. Clement and K.-K. Lau, editors, Logic Program Synthesis and Transformation, Manchester 1991, pages 205-221, Workshops in Computing, Springer-Verlag, 1992.
 
6
D.A. de Waal and J. Gallagher. Specialising a Theorem Prover. Technical Report CSTR-92-33, University of Bristol, November 1992.
 
7
H. Fujita. Art Algorithm for Partial Evaluation with Constraints. Technical Report TM-0484, ICOT, August 1991.
 
8
H. Fujita and K. Furukawa. A self-applicable partial evaluator and its use in incremental compilation. In D. Bjerner, Ershov A, and N. Jones, editors, Proc. of PEPM, Workshop on partial evaluation and mixed computation, 1988.
 
9
J. Gallagher. Static analysis for logic program specialisation. In M. Billaud et al., editor, WSA-92: Analyse Statique, pages 285-294, Universitfi Bordeaux i, 1992.
 
10
J. Gallagher. A System }or Specialising Logic programs. Technical Report TR-91-32, University of Bristol, November 1991.
 
11
J. Gallagher. Transforming logic programs by specialising interpreters. In ECAI.86, Proc. of the 7th European Conference on Artificial Intelligence, Brighton, England, pages 109-t22, 1986.
 
12
J. Gallagher and M. Bruynooghe. The derivation of an algorithm for program specialisation. New Generation Computing, 6(2), 1991.
 
13
J. Gallagher and M. Bruynooghe. Some low-level source transformations for logic programs. In M. Bruynooghe, editor, Proceedings of Meta90 Workshop on Meta Programming in Logic, Leuven, Belgium, 1990.
 
14
 
15
3. Gallagher and D.A. de Waal. Deletion of redundant unary type predicates from logic programs. In K.K. Lau and T. Clement, editors, Logic Program Synthesis and Trans}ormation, pages 151-167, Springer-Verlag, 1993.
 
16
J. Gallagher and D.A. de Waal. Regular Approximations of Logic Programs and Their Uses. Technical Report CSTR-92..06, University of Bristol, March 1992.
 
17
C. Gurr. Specialising the Ground Representation in the Logic progcarnming Language Gb'del. Technical Report, Department of Computer Science, University of Bristol, November 1992.
 
18
 
19
P.M. Hill and J.W. Lloyd. The GS"del report. Technical Report TR-91-02, University of Bristol, March 1991.
 
20
K. Kahn and M. Carisson. The compilation of prolog programs without the use of a prolog compiler. In International Conference on Fifth Generation Computer Systems, Tokyo, 1984.
21
 
22
H.J. Komorowski. Synthesis of Programs in the Framework of Partial Deduction. Technical Report 81, Department of Computer Science, /~bo Akademi, Lemmink~inengatan 14, SF-20520 Abo, Finland., 1989.
 
23
 
24
J. Lam. Control Structures in Partial Evaluation of Pure Prolog. Technical Report Masters Thesis, Department of Computational Science, University of Saskatchewan, 1989.
 
25
G. Levi and G. Sardu. "partial evaluation of rectaprograms in a multiple worlds logic language. In D. Bj0rner, Ershov A, and N. Jones, editors, Proc. of PEPM, Workshop on partial evaluation and mixed computation, 1988.
 
26
 
27
 
28
 
29
 
30
K. Marriott, L. Naish, and J-L. Lassez. Most specific logic programs. In Proceedings of the Fifth International Conference and Symposium on Logic Programming, Washington, August 1988.
 
31
T. Mogensen and A. Bondorf. Logimix: a selfapplicable partial evaluator for prolog. In K.K. Lau and T. Clement, editors, Logic Program Synthesis and Transformation, Springer-Verlag, 1993.
 
32
 
33
S. Safra and E.Y. Shapiro. Meta interpreters for real. In H-J. Kugler, editor, Proc. 1FIP'86, Dublin, North- Holland, 1986.
 
34
D. Sahlin. An Automatic Partial Evaluator for Full Prolog. PhD thesis, The Royal Institute of Technology, 1991.
 
35
36
37
 
38
L. Sterling. Incremental flavor-mixing of metainterpreters for expert system construction. In Proc. 3rd Int. Symp. on Logic programming, Salt Lake City, Utah, pages 20-27, 1986.
 
39
M.E. Stickel. A Prolog Technology Theorem Prover. In International Synposium on Logic Programming, Atlantic City, NJ, pages 211-217, Feb. 6-9 1984.
 
40
A. Takeuchi. Affinity between meta interpreters and partial evaluation. In H-J. Kugler, editor, Proc. IFIP'86, Dublin, North-Holland, 1986.
 
41
R. Venken. Partial evalu~.tion of prolog and its application to source-to-source transformation and query optimisation. In Proceedings of ECAI'84, Pisa, 1984.
 
42

CITED BY  43


REVIEW

"Kevin Denis Reilly : Reviewer"

Specialization of logic programs currently depends heavily on partial evaluation (PE) for theoretical foundations and core methods. For example, a “basic” PE algorithm based on the theory provides an opening for abstract interpreta  more...