Abstract
We study the notion of binding-time analysis for logic programs. We formalise the unfolding aspect of an on-line partial deduction system as a Prolog program. Using abstract interpretation, we collect information about the run-time behaviour of the program. We use this information to make the control decisions about the unfolding at analysis time and to turn the on-line system into an off-line system. We report on some initial experiments.
Chapter PDF
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
R. Bol. Loop Checking in Partial Deduction. The Journal of Logic Programming, 16(1&2):25–46, May 1993.
M. Bruynooghe, M. Codish, and A. Mulkers. Abstracting unification: a key step in the design of logic program analyses. In Computer Science Today, pages 406–442. Springer-Verlag, LNCS Vol. 1000, 1995.
M. Bruynooghe, D. De Schreye, and B. Martens. A General Criterion for Avoiding Infinite Unfolding During Partial Deduction. New Generation Computing, 11(1):47–79, 1992.
M. Codish and B. Demoen. Deriving Polymorphic Type Dependencies for Logic Programs Using Multiple Incarnations of Prop. In B. Le Charlier, editor, Proceedings of the First International Symposium on Static Analysis, number 864 in LNCS, pages 281–297, Namur, Belgium, September 1994. Springer-Verlag.
M. Codish and B. Demoen. Analysing Logic Programs using “Prop”-ositional Logic Programs and a Magic Wand. Journal of Logic Programming, 25(3):249–274, December 1995.
M. Codish, B. Demoen, and K. Sagonas. Semantic-Based Program Analysis for Logic-Based Languages using XSB. K.U. Leuven TR CW 245. December 1996.
M. Codish and C. Taboch. A Semantic Basis for Termination Analysis of Logic Programs and its Realization using Symbolic Norm Constraints. In Proceedings of the Sixth International Conference on Algebraic and Logic Programming, number 1298 in LNCS, pages 31–45. Springer-Verlag, September 1997.
C. Consel and O. Danvy. Tutorial Notes on Partial Evaluation. In Proceedings of the ACM Conference on Principles of Programming Languages, pages 493–501, Charleston, South Carolina, January 1993. ACM Press.
P. Cousot and R. Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In Conference Record of the Fourth ACM Symposium on Principles of Programming Languages, pages 238–252, Los Angeles, California, January 1977. ACM.
S. Decorte and D. De Schreye. Termination Analysis: Some Practical Properties of the Norm and Level Mapping Space. TR, Dept. Comp. Science, K.U. Leuven.
S. Decorte and D. De Schreye. Demand-driven and Constraint-based Automatic Termination Analysis for Logic Programs. In L. Naish, editor, Proceedings of the Fourteenth International Conference on Logic Programming, pages 78–92, Leuven, Belgium, July 1997. The MIT Press.
D. Dussart. Topics in Program Specialisation and Analysis for Statically Typed Functional Languages. PhD thesis, Katholieke Universiteit Leuven, May 1997.
J. Gallagher and M. Bruynooghe. The Derivation of an Algorithm for Program Specialisation. New Generation Computing, 9(3,4):305–333, 1991.
C. A. Gurr. A Self-Applicable Partial Evaluator for the Logic Programming Language Gödel. PhD thesis, Department of Computer Science, University of Bristol.
N. D. Jones, C. K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Prentice Hall International Series in Computer Science, 1993.
N. D. Jones, P. Sestoft, and H. S0ndergaard. MIX: a Self-applicable Partial Evaluator for experiments in Compiler Generation. LISP and Symbolic Computation, 2(1):9–50, 1989.
J. J0rgensen and M. Leuschel. Efficiently Generating Efficient Generating Extensions in Prolog. In O. Danvy, R. Glück, and P. Thiemann, editors, Proceedings of the 1996 Dagstuhl Seminar on Partial Evaluation, number 1110 in LNCS, pages 238–262, Schloß Dagstuhl, February 1996. Springer-Verlag.
J. Komorowski. Partial Evaluation as a means for inferencing data structures in an Applicative Language: A Theory and Implementation in the case of Prolog. In Proceedings of the ACM Conference on Principles of Programming Languages, pages 255–267, Albuquerque, New Mexico, January 1982. ACM.
M. Leuschel. The ECCE partial deduction system and the DPPD library of benchmarks. Obtainable via http://www.cs.kuleuven.ac.be/~lpai, 1996.
M. Leuschel, B. Martens, and D. De Schreye. Controlling Generalisation and Polyvariance in Partial Deduction of Normal Logic Programs. ACM Trans. Prog. Lang. Syst., 20, 1998. To Appear.
M. Leuschel, B. Martens, and K. Sagonas. Preserving Termination of Tabled Logic Programs While Unfolding. In N. Fuchs, editor, Proceedings of LOPSTR'97: Logic Program Synthesis and Transformation, LNCS, Leuven, Belgium, July 1997.
N. Lindenstrauss and Y. Sagiv. Automatic Termination Analysis of Logic Programs. In L. Naish, editor, Proceedings of the Fourteenth International Conference on Logic Programming, pages 63–77, Leuven, Belgium, July 1997. The MIT Press.
E. Marchiori and F. Teusink. Proving Termination of Logic Programs with Delay Declarations. In J. W. Lloyd, editor, Proceedings of the 1995 International Logic Programming Symposium, pages 447–461, Portland, Oregon, December 1995.
K. Marriott and H. S0ndergaard. Precise and Efficient Groundness Analysis for Logic Programs. ACM Letters on Progr. Lang, and Syst., 2(1–4):181–196, 1993.
B. Martens and D. De Schreye. Automatic Finite Unfolding Using Well-Founded Measures. The Journal of Logic Programming, 28(2):89–146, August 1996.
J. Martin. Sonic Partial Deduction. Technical Report, Dept. Elec. and Comp. Sc, University of Southampton, January 1998.
T. Mogensen and A. Bondorf. Logimix: A self-applicable partial evaluator for Prolog. In K.-K. Lau and T. Clement, editors, Logic Program Synthesis and Transformation. Proceedings of LOPSTR'92, pages 214–227. Springer-Verlag, 1992.
L. Naish. Coroutining and the Construction of Terminating Logic Programs. Technical Report TR 92/5, Dept. Computer Science, University of Melbourne, 1992.
K. Sagonas, T. Swift, and D. S. Warren. XSB as an Efficient Deductive Database Engine. In Proceedings of the ACM SIGMOD International Conference on the Management of Data, pages 442–453, Minneapolis, Minnesota, May 1994. ACM.
D. Sahlin. Mixtus: An Automatic Partial Evaluator for Full Prolog. New Generation Computing, 12(1):7–51, 1993.
M. H. S0rensen and R. Glück. An Algorithm of Generalization in Positive Super-compilation. In J. W. Lloyd, editor, Proceedings of the 1995 International Logic Programming Symposium, pages 465–479, Portland, Oregon, December 1995.
V. F. Turchin. The Concept of a Supercompiler. ACM Trans. Prog. Lang. Syst., 8(3):292–325, July 1986.
P. Van Hentenryck, A. Cortesi, and B. Le Charlier. Evaluation of the Domain Prop. Journal of Logic Programming, 23(3):237–278, June 1995.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1998 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Bruynooghe, M., Leuschel, M., Sagonas, K. (1998). A polyvariant binding-time analysis for off-line partial deduction. In: Hankin, C. (eds) Programming Languages and Systems. ESOP 1998. Lecture Notes in Computer Science, vol 1381. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0053561
Download citation
DOI: https://doi.org/10.1007/BFb0053561
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-64302-9
Online ISBN: 978-3-540-69722-0
eBook Packages: Springer Book Archive