A note on implementing Prolog in Lisp
Information Processing Letters
The implementation of the Icon programming language
The implementation of the Icon programming language
Structure and interpretation of computer programs
Structure and interpretation of computer programs
Describing Prolog by its interpretation and compilation
Communications of the ACM
ACM Transactions on Programming Languages and Systems (TOPLAS)
Implementation of PROLOG
ICON Programmng Language
Making control and data flow in logic programs explicit
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
The design and implementation of a goal-directed programming language.
The design and implementation of a goal-directed programming language.
Control mechanisms for generators in icon
Control mechanisms for generators in icon
LISP 1.5 Programmer's Manual
History of the Icon programming language
HOPL-II The second ACM SIGPLAN conference on History of programming languages
Simple translation of goal-directed evaluation
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Compiling Mercury to High-Level C Code
CC '02 Proceedings of the 11th International Conference on Compiler Construction
History of the Icon programming language
History of programming languages---II
Hi-index | 0.00 |
The implementation of the Icon programming language is more interesting and difficult than the implementation of many other programming languages because an expression in Icon can generate a sequence of results. The implementation therefore must support control backtracking in expression evaluation. There also are several novel control structures related to generators. Because expression evaluation is limited lexically, a full coroutine mechanism is not needed and expression evaluation can be handled in a stack-like fashion.The implementation of Icon consists of a virtual machine with a stack-based architecture and an interpreter that executes the virtual machine instructions. There have been several different interpreters for Icon's virtual machine. This paper describes a new approach in which the interpreter is called recursively whenever the context for expression evaluation changes. This recursive interpreter has the advantage of being conceptually clear and flexible without sacrificing efficiency.