Skip to main content
Log in

An Early Use of Continuations and Partial Evaluation for Compiling Rules Written in First-Order Predicate Calculus

  • Published:
Higher-Order and Symbolic Computation

Abstract

This brief historical note describes research done in the period 1970-1973, and where continuations were introduced in a fairly pragmatic way together with partial evaluation in order to compile “rules” expressed as statements in first-order predicate calculus. Although the methods used at that time were quite straightforward, this work may shed some light on the early history of the concept of continuations. In particular, unlike other early contributions that addressed issues in mainstream programming languages, the present approach initially addressed implementation techniques for special-purpose languages.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  1. L. Beckman, A. Haraldsson, O. Oskarsson, and E. Sandewall. A partial evaluator, and its use as a programming tool. Artificial Intelligence, 7:319–357, 1976.

    Google Scholar 

  2. R.M. Burstall, J.S. Collins, and R.J. Popplestone. Programming in POP2. Edinburgh University Press, 1971.

  3. P. Emanuelsson. Performance Enhancement in a Well-structured Pattern Matcher through Partial Evaluation. PhD thesis, Linköping University, Sweden, 1980.

    Google Scholar 

  4. Y. Futamura. Partial evaluation of computer programs – an approach to a compiler-compiler. Systems, Computers, Controls 2, 5, pages 45–50, 1971.

    Google Scholar 

  5. A. Haraldsson. PCDB-a procedure generator for a predicate calculus data base. In Information Processing 1974, pages 575–579. North-Holland Publishing Co, 1974.

  6. Anders Haraldsson. A Program Manipulation System Based on Partial Evaluation. PhD thesis, Linköping University, Sweden, 1977.

    Google Scholar 

  7. C. Hewitt. Planner: A language for proving theorems in robots. In International Joint Conference on Artificial Intelligence, pages 295–301, 1971.

  8. H.J. Komorowski. A Specification of an Abstract Prolog Machine and its Application to Partial Evaluation. PhD thesis, Linköping University, Sweden, 1981.

    Google Scholar 

  9. H.J. Komorowski. Partial evaluation as a means for inferring data structures in an applicative language: a theory and implementation in the case of Prolog. In Proc. 9th Annual ACM Symposium on Principles of Programming Languages, Albuquerque, NM, 1982.

  10. H.J. Komorowski. Towards synthesis of programs in a partial deduction framework. In Workshop on Automating Software Design at IJCAI 1989, Detroit, MI, 1989.

  11. J. Komorowski. A prolegomenon to partial deduction. Fundamenta Informaticae, 18:41–64, 1993.

    Google Scholar 

  12. R. Kowalski. Predicate logic as a programming language. In Information Processing 1974, pages 569–574. North-Holland Publishing Co, 1974.

  13. J.C. Reynolds. Definitional interpreters for higher-order programming languages. In Proceedings of 25th ACM National Conference, pages 717–740, 1972.

  14. J.C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4), 1993.

  15. J.F. Rulifson. QA4: a procedural basis for intuitive reasoning. Technical report, AI Center, Stanford Research Institute, 1972.

  16. E. Sandewall. Lisp A, A lisp-like system for incremental computing. In Proc. Spring Joint Computer Conference, pages 375–384, 1968.

  17. E. Sandewall. Pcdb, a programming tool for management of a predicate calculus oriented data base. In International Joint Conference on Artificial Intelligence, pages 159–166, 1971.

  18. E. Sandewall. A proposed solution to the Funarg problem. SIGSAM Bulletin, (17), 1971.

  19. E. Sandewall. Conversion of predicate-calculus axioms, viewed as non-deterministic programs, to corresponding deterministic programs. In International Joint Conference on Artificial Intelligence, pages 230–234, 1973.

  20. E. Sandewall. Conversion of predicate-calculus axioms, viewed as non-deterministic programs, to corresponding deterministic programs. IEEE Transactions on Computers, C-25(4):342–346, April 1976.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Sandewall, E. An Early Use of Continuations and Partial Evaluation for Compiling Rules Written in First-Order Predicate Calculus. Higher-Order and Symbolic Computation 12, 105–113 (1999). https://doi.org/10.1023/A:1010072901408

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1023/A:1010072901408

Navigation