Title
Compilers and staging transformations
Abstract
Computations can generally be separated into stages, which are distinguished from one another by either frequency of execution or availability of data. Precomputation and frequency reduction involve moving computation among a collection of stages so that work is done as early as possible (so less time is required in later steps) and as infrequently as possible (to reduce overall time).We present, by means of examples, several general transformation techniques for carrying out precomputation transformations. We illustrate the techniques by deriving fragments of simple compilers from interpreters, including an example of Prolog compilation, but the techniques are applicable in a broad range of circumstances. Our aim is to demonstrate how perspicuous accounts of precomputation and frequency reduction can be given for a wide range of applications using a small number of relatively straightforward techniques.Related work in partial evaluation, semantically directed compilation, and compiler optimization is discussed.
Year
DOI
Venue
1986
10.1145/512644.512652
Symposium on Principles of Programming Languages
Keywords
Field
DocType
compiler optimization,frequency reduction,overall time,precomputation transformation,related work,broad range,wide range,prolog compilation,later step,general transformation technique,partial evaluation
Small number,Programming language,Precomputation,Partial evaluation,Computer science,Parallel computing,Theoretical computer science,Optimizing compiler,Compiler,Prolog,Interpreter,Computation
Conference
Citations 
PageRank 
References 
70
8.83
18
Authors
2
Name
Order
Citations
PageRank
Ulrik Jørring1708.83
William L. Scherlis234063.64