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.
Similar content being viewed by others
References
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.
R.M. Burstall, J.S. Collins, and R.J. Popplestone. Programming in POP2. Edinburgh University Press, 1971.
P. Emanuelsson. Performance Enhancement in a Well-structured Pattern Matcher through Partial Evaluation. PhD thesis, Linköping University, Sweden, 1980.
Y. Futamura. Partial evaluation of computer programs – an approach to a compiler-compiler. Systems, Computers, Controls 2, 5, pages 45–50, 1971.
A. Haraldsson. PCDB-a procedure generator for a predicate calculus data base. In Information Processing 1974, pages 575–579. North-Holland Publishing Co, 1974.
Anders Haraldsson. A Program Manipulation System Based on Partial Evaluation. PhD thesis, Linköping University, Sweden, 1977.
C. Hewitt. Planner: A language for proving theorems in robots. In International Joint Conference on Artificial Intelligence, pages 295–301, 1971.
H.J. Komorowski. A Specification of an Abstract Prolog Machine and its Application to Partial Evaluation. PhD thesis, Linköping University, Sweden, 1981.
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.
H.J. Komorowski. Towards synthesis of programs in a partial deduction framework. In Workshop on Automating Software Design at IJCAI 1989, Detroit, MI, 1989.
J. Komorowski. A prolegomenon to partial deduction. Fundamenta Informaticae, 18:41–64, 1993.
R. Kowalski. Predicate logic as a programming language. In Information Processing 1974, pages 569–574. North-Holland Publishing Co, 1974.
J.C. Reynolds. Definitional interpreters for higher-order programming languages. In Proceedings of 25th ACM National Conference, pages 717–740, 1972.
J.C. Reynolds. The discoveries of continuations. Lisp and Symbolic Computation, 6(3/4), 1993.
J.F. Rulifson. QA4: a procedural basis for intuitive reasoning. Technical report, AI Center, Stanford Research Institute, 1972.
E. Sandewall. Lisp A, A lisp-like system for incremental computing. In Proc. Spring Joint Computer Conference, pages 375–384, 1968.
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.
E. Sandewall. A proposed solution to the Funarg problem. SIGSAM Bulletin, (17), 1971.
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.
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.
Author information
Authors and Affiliations
Rights 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
Issue Date:
DOI: https://doi.org/10.1023/A:1010072901408