Advertisement

Logic programming and logic grammars with first-order continuations

  • Paul Tarau
  • Veronica Dahl
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 883)

Abstract

Continuation passing binarization and specialization of the WAM to binary logic programs have been proven practical implementation techniques in the BinProlog system. In this paper we investigate the additional benefits of having first order continuations at source level. We devise a convenient way to manipulate them by introducing multiple-headed clauses which give direct access to continuations at source-level. We discuss the connections with various logic grammars, give examples of typical problem solving tasks and show how looking at the future of computation can improve expressiveness and describe complex control mechanisms without leaving the framework of binary definite programs.

Keywords

continuation passing binary logic programs logic grammars program transformation based compilation continuations as first order objects logic programming with continuations 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    S. Akl. The design and analysis of parallel algorithms. Prentice Hall, Englewood Cliffs, 1989.Google Scholar
  2. 2.
    J.-M. Andreoli and R. Pareschi. Linear objects: Logical processes with built-in inheritance. In D. Warren and P. Szeredi, editors, 7th Int. Conf. Logic Programming, Jerusalem, Israel, 1990. MIT Press.Google Scholar
  3. 3.
    J. Andrews, V. Dahl, and F. Popowich. A Relevance Logic Characterization of Static Discontinuity Grammars. Technical report, CSS/LCCR TR 91-12, Simon Fraser University, 1991.Google Scholar
  4. 4.
    P. Brisset. Compilation de λProlog. Thèse, Université de Rennes I, 1992.Google Scholar
  5. 5.
    W. Chen and D. S. Warren. Compilation of predicate abstractions in higher-order logic programming. In J. Maluszyński and M. Wirsing, editors, Proceedings of the 3rd Int. Symposium on Programming Language Implementation and Logic Programming, PLILP91, Passau, Germany, number 528 in Lecture Notes in Computer Science, pages 287–298. Springer Verlag, Aug. 1991.Google Scholar
  6. 6.
    A. Colmerauer. Metamorphosis Grammars, volume 63, pages 133–189. Springer-Verlag, 1978.Google Scholar
  7. 7.
    A. Colmerauer, H. Kanoui, R. Pasero, and P. Roussel. Un systeme de communication homme-machine en francais. Technical report, Groupe d'Intelligence Artificielle, Universite d'Aix-Marseille II, Marseille, 1973.Google Scholar
  8. 8.
    V. Dahl. Translating Spanish into logic through logic. American Journal of Computational Linguistics, 13:149–164, 1981.Google Scholar
  9. 9.
    V. Dahl. Discontinuous grammars. Computational Intelligence, 5(4):161–179, 1989.Google Scholar
  10. 10.
    J.-M. Jacquet and L. Monteiro. Comparative semantics for a parallel contextual logic programming language. In S. Debray and M. Hermenegildo, editors, Proceedings of the 1990 North American Conference on Logic Programming, pages 195–214, Cambridge, Massachusetts London, England, 1990. MIT Press.Google Scholar
  11. 11.
    J. W. Lloyd. Foundations of Logic Programming. Springer-Verlag, 1987.Google Scholar
  12. 12.
    J. Lobo, J. Minker, and A. Rajasekar. Extending the semantics of logic programs to disjunctive logic programs. In G. Levi and M. Martelli, editors, Proceedings of the Sixth International Conference on Logic Programming, pages 255–267, Cambridge, Massachusetts London, England, 1989. MIT Press.Google Scholar
  13. 13.
    J. Maluszyński. On the relationship between context-dependent grammars and multi-headed clauses., June 1994. Personal Communication.Google Scholar
  14. 14.
    D. Miller. A logic programming language with lambda-abstraction, function variables, and simple unification. J. Logic and Computation, 1(4):497–536, 1991.Google Scholar
  15. 15.
    D. A. Miller. Lexical scoping as universal quantification. In G. Levi and M. Martelli, editors, Proceedings of the Sixth International Conference on Logic Programming, pages 268–283, Cambridge, Massachusetts London, England, 1989. MIT Press.Google Scholar
  16. 16.
    L. Monteiro and A. Porto. Contextual logic programming. In G. Levi and M. Martelli, editors, Proceedings of the Sixth International Conference on Logic Programming, pages 284–299, Cambridge, Massachusetts London, England, 1989. MIT Press.Google Scholar
  17. 17.
    F. Pereira. Extraposition grammars. American Journal for Computational Linguistics, 7:243–256, 1981.Google Scholar
  18. 18.
    M. Proietti. On the definition of binarization in terms of fold/unfold., June 1994. Personal Communication.Google Scholar
  19. 19.
    M. Proietti and A. Pettorossi. Unfolding-definition-folding, in this order, for avoiding unnecessary variables in logic programs. In J. Maluszyński and M. Wirsing, editors, Proceedings of the 3rd Int. Symposium on Programming Language Implementation and Logic Programming, PLILP91, Passau, Germany, number 528 in Lecture Notes in Computer Science, pages 347–358. Springer Verlag, Aug. 1991.Google Scholar
  20. 20.
    P. Prusinkiewicz and J. Hanan. L-systems: from formalism to programming languages. Springer-Verlag, 1992.Google Scholar
  21. 21.
    D. W. Reed, D. W. Loveland, and B. T. Smith. An alternative characterization of disjunctive logic programs. In V. Saraswat and K. Ueda, editors, Logic Programming Proceedings of the 1991 International Symposium, pages 54–70, Cambridge, Massachusetts London, England, 1991. MIT Press.Google Scholar
  22. 22.
    J. Stoy. Denotational Semantics: the Scott-Strachey Approach to Programming Language Theory. Cambridge, MA. The MIT Press, 1977.Google Scholar
  23. 23.
    P. Tarau. Program Transformations and WAM-support for the Compilation of Definite Metaprograms. In A. Voronkov, editor, Logic Programming, RCLP Proceedings, number 592 in Lecture Notes in Artificial Intelligence, pages 462–473, Berlin, Heidelberg, 1992. Springer-Verlag.Google Scholar
  24. 24.
    P. Tarau and M. Boyer. Elementary Logic Programs. In P. Deransart and J. Małuszyński, editors, Proceedings of Programming Language Implementation and Logic Programming, number 456 in Lecture Notes in Computer Science, pages 159–173. Springer, Aug. 1990.Google Scholar
  25. 25.
    P. Tarau and K. De Bosschere. Memoing with Abstract Answers and Delphi Lemmas. In Y. Deville, editor, Logic Program Synthesis and Transformation, Springer-Verlag, Workshops in Computing, Louvain-la-Neuve, July 1993.Google Scholar
  26. 26.
    P. Wadler. Monads and composable continuations. Lisp and Symbolic Computation, pages 1–17, 1993.Google Scholar
  27. 27.
    M. Wand. Continuation-based program transformation strategies. Journal of the Association for Computing Machinery, 27(1):164–180, 1980.Google Scholar
  28. 28.
    D. H. D. Warren. Higher-order extensions to Prolog — are they needed? In D. Michie, J. Hayes, and Y. H. Pao, editors, Machine Intelligence 10. Ellis Horwood, 1981.Google Scholar
  29. 29.
    D. S. Warren. The XOLDT System. Technical report, SUNY Stony Brook, electronic document: ftp sbcs.sunysb.edu, 1992.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1994

Authors and Affiliations

  • Paul Tarau
    • 1
  • Veronica Dahl
    • 2
  1. 1.Département d'InformatiqueUniversité de MonctonMonctonCanada
  2. 2.Logic Programming Group Department of Computing SciencesSimon Fraser UniversityBurnabyCanada

Personalised recommendations