Results 1 -
5 of
5
An Optimizing Compiler for Lexically Scoped Lisp
- In Proceedings of the SIGPLAN '82 Symposium on Compiler Construction
, 1982
"... 1 ..."
Destination-driven code generation
, 1990
"... Destination-driven code generation is a simple top-down technique that allows the code generated for a program phrase to depend upon its context in an abstract syntax tree. The context is encapsulated in a data destination and a control destination. The data destination specifies where the value com ..."
Abstract
-
Cited by 10 (1 self)
- Add to MetaCart
Destination-driven code generation is a simple top-down technique that allows the code generated for a program phrase to depend upon its context in an abstract syntax tree. The context is encapsulated in a data destination and a control destination. The data destination specifies where the value computed by an expression is to be stored, while the control destination specifies where program execution is to resume after computation of the value. Together, the destinations allow a code generator to specify data and control flow dependencies between subcomputations. As a result, these subcomputations can be "wired" together in an efficient manner. We illustrate the technique by presenting a code generator for a subset of the programming language C. This technique has been used in the implementation of an incremental compiler for the Scheme programming language that generates code for one of several computer architectures.
The Nimble Type Inferencer for Common Lisp-84
- Tech. Rept., Nimble Comp
, 1990
"... data types model the semantic intent of the programmer with respect to individual variable values, so that global properties of these individual values (e.g., evenness or primeness of an integer value) are maintained. The assert construct allows for the specification of complex relationships among s ..."
Abstract
- Add to MetaCart
data types model the semantic intent of the programmer with respect to individual variable values, so that global properties of these individual values (e.g., evenness or primeness of an integer value) are maintained. The assert construct allows for the specification of complex relationships among several variables. However, since we are interested in improving run-time efficiency, we will assume that the program is already semantically correct, and will therefore concern ourselves only with the determination of tight lattice bounds on the values of variables. Performing type inference requires proving many small theorems about programs, and therefore runs the risk of being confused with the more difficult task of theorem-proving for the purpose of proving programs correct relative to some external criteria. While some of the techniques may be similar to both tasks, the goals are completely different. For example, it is considered acceptable and routine for correctness provers to inte...
Lucid, Inc.
"... We outline the components of a retargetable cross-compiler for the Common Lisp language. A description is given of a method for modeling the various hardware features in the compiler’s database, and a breakdown is shown of the compiler itself into various machine-independent and machine-dependent mo ..."
Abstract
- Add to MetaCart
We outline the components of a retargetable cross-compiler for the Common Lisp language. A description is given of a method for modeling the various hardware features in the compiler’s database, and a breakdown is shown of the compiler itself into various machine-independent and machine-dependent modules. A novel feature of this development is the dynamic nature of the retargeting: Databases for multiple hardware architectures are a standard part of the compiler, and the internal interfaces used by the compiler are such that the machine-dependent modules may be instantly switched from one to another. Examples of generated code in several environments will be given to demonstrate the high quality of the output available, even under this very modular approach. 1.
Lisp-in-Lisp: High Performance and Portability
"... Lisp remains the primary programming language for artificial intelligence research, and, as new computer architectures are developed, the timely availability of a high-quality Lisp on these machines is essential. Until recently every Lisp implementation has had either a relatively large assembly lan ..."
Abstract
- Add to MetaCart
Lisp remains the primary programming language for artificial intelligence research, and, as new computer architectures are developed, the timely availability of a high-quality Lisp on these machines is essential. Until recently every Lisp implementation has had either a relatively large assembly language core or extensive microcode support. We have been working on a Common Lisp [Steele 1982] for the S-1 Mark IIA

