The Impact of Structure Analysis on Prolog Compilation

Structure analyses derive (possibly recursive) descriptions of the shape of data structures. We investigate the use of structure analysis in compiling Prolog. We implement a structure analyzer for Prolog by extending previous type graph analyses, and evaluate its precision and performance on a set of realistic benchmarks. We then attempt to quantify the use of the derived structure information for optimizing compilation.

[1]  Andreas Krall,et al.  Incremental Global Compilation of Prolog with the Vienna Abstract Machine , 1995, ICLP.

[2]  Thomas Lindgren,et al.  Control flow analysis of Prolog (extended remix) , 1995 .

[3]  Peter Van Roy,et al.  1983-1993: The Wonder Years of Sequential Prolog Implementation , 1994, J. Log. Program..

[4]  Paul N. Hilfinger,et al.  Analysis of recursive types in Lisp-like languages , 1992, LFP '92.

[5]  Pascal Van Hentenryck,et al.  An Abstract Interpretation Framework which Accurately Handles Prolog Search-Rule and the Cut , 1994, ILPS.

[6]  S. Debray Eecient Dataaow Analysis of Logic Programs , 1992 .

[7]  Peter Van Roy,et al.  The Wonder Years of Sequential Prolog Implementation , 1996 .

[8]  Gerda Janssens,et al.  Deriving Descriptions of Possible Values of Program Variables by Means of Abstract Interpretation , 1990, J. Log. Program..

[9]  Robert A. MacLachlan,et al.  The Python compiler for CMU Common Lisp , 1992, LFP '92.

[10]  Andrew Taylor,et al.  High Performance Prolog Implementation , 1991 .

[11]  Patrick Cousot,et al.  Static determination of dynamic properties of programs , 1976 .

[12]  Thomas W. Getzinger The Costs and Benefits of Abstract Interpretation-driven Prolog Optimization , 1994, SAS.

[13]  Saumya K. Debray,et al.  A Simple Approach to Supporting Untagged Objects in Dynamically Typed Languages , 1997, J. Log. Program..

[14]  Thomas Lindgren,et al.  Type Graphs in Practice , 1997 .

[15]  Peter Van Roy,et al.  Can Logic Programming Execute as Fast as Imperative Programming? , 1990 .

[16]  Pascal Van Hentenryck,et al.  Type analysis of Prolog using type graphs , 1994, PLDI '94.

[17]  analyzerThomas Lindgren,et al.  The precision of a simple structure , 1997 .

[18]  Pascal Van Hentenryck,et al.  Combinations of abstract domains for logic programming , 1994, POPL '94.

[19]  Thomas Lindgren Polyvariant Detection of Uninitialized Arguments of Prolog Predicates , 1996, J. Log. Program..

[20]  Nevin Heintze,et al.  Practical Aspects of Set Based Analysis , 1992, JICSLP.