A Transformation System for Developing Recursive Programs
Journal of the ACM (JACM)
Program Improvement by Source-to-Source Transformation
Journal of the ACM (JACM)
Programming in an Interactive Environment: the ``Lisp'' Experience
ACM Computing Surveys (CSUR)
Syntactic source to source transforms and program manipulation
Communications of the ACM
A case study of a new code generation technique for compilers
Communications of the ACM
A partial evaluator, and its use for compiling iterative statements in LISP
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
A system for program refinement
ICSE '79 Proceedings of the 4th international conference on Software engineering
Goal-directed program transformation
POPL '76 Proceedings of the 3rd ACM SIGACT-SIGPLAN symposium on Principles on programming languages
A bibliography on partial evaluation
ACM SIGPLAN Notices
Parameterized partial evaluation
PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Parameterized partial evaluation
ACM Transactions on Programming Languages and Systems (TOPLAS)
Partial Evaluation: Concepts and Applications
Partial Evaluation - Practice and Theory, DIKU 1998 International Summer School
An experiment in partial evaluation: the generation of a compiler generator
ACM SIGPLAN Notices
Language embeddings that preserve staging and safety
Nordic Journal of Computing
Hi-index | 0.00 |
In INTERLISP we find a number of embedded languages such as the iterative statement and the pattern match facility in the CLISP package, the editor and makefile languages and so forth. We will in this paper concentrate on the problem of extending the LISP language and discuss a method to compile such extensions. We propose the language to be implemented through an interpreter (written in LISP) and that compilation of statements in such an embedded language is done through partial evaluation. The interpreter is partially evaluated with respect to the actual statements, and an object program in LISP is obtained. This LISP code can further be compiled to machine code by the standard LISP compiler. We have implemented the iterative statement and a CLISP-like pattern matcher and used a program manipulation system to generate object programs in LISP. Comparisons will be made with the corresponding INTERLISP implementations, which use special purpose compilers in order to generate the LISP code.