Preface
Published online by Cambridge University Press: 12 October 2009
Summary
The subject area of this book concerns the implementation of functional languages. The main perspective is that part of the implementation process amounts to
making computer science concepts explicit
in order to facilitate the application, and the development, of general frameworks for program analysis and code generation.
This is illustrated on a specimen functional language patterned after the λ-calculus:
Types are made explicit in Chapter 2 by means of a Hindley/Milner/Damas type analysis.
Binding times are made explicit in Chapter 3 using an approach inspired by the one for type analysis. The binding times of chief interest are compile-time and run-time.
Combinators are made explicit in Chapter 4 but only for run-time computations whereas the compile-time computations retain their λ-calculus syntax.
The advantages of this approach are illustrated in the remainder of the book where the emphasis also shifts from a ‘syntactic perspective’ to a more ‘semantic perspective’:
A notion of parameterized semantics is defined in Chapter 5 and this allows a wide variety of semantics to be given.
It is illustrated for code generation in Chapter 6. Code is generated for a structured abstract machine and the correctness proof exploits Kripke-logical relations and layered predicates.
It is illustrated for abstract interpretation in Chapter 7. We generalize Wadler's strictness analysis to general lists, show the correctness using logical relations, and illustrate the similarity between tensor products and Wadler's case analysis.
Finally, Chapter 8 discusses possible ways of extending the development.
- Type
- Chapter
- Information
- Two-Level Functional Languages , pp. xi - xiiPublisher: Cambridge University PressPrint publication year: 1992
- 1
- Cited by