Our systems are now restored following recent technical disruption, and we’re working hard to catch up on publishing. We apologise for the inconvenience caused. Find out more

Recommended product

Popular links

Popular links


Compiling with Continuations

Compiling with Continuations

Compiling with Continuations

Andrew W. Appel , Princeton University, New Jersey
February 2007
Available
Paperback
9780521033114

Looking for an examination copy?

This title is not currently available for examination. However, if you are interested in the title for your course we can consider offering an examination copy. To register your interest please contact [email protected] providing details of the course you are teaching.

CAD$120.95
Paperback
USD
eBook

    This book shows how continuation-passing style is used as an intermediate representation to perform optimizations and program transformations. Continuations can be used to compile most programming languages. The method is illustrated in a compiler for the programming language Standard ML. Prior knowledge of ML, however, is not necessary, as the author carefully explains each concept as it arises. This is the first book to show how concepts from the theory of programming languages can be applied to the production of practical optimizing compilers for modern languages like ML. All the details of compiling are covered, including the interface to a runtime system and garbage collector.

    Reviews & endorsements

    "I recommend the book to language designers and implementors specializing in the functional paradigm." F.G. Pagan, Computing Reviews

    See more reviews

    Product details

    April 2011
    Adobe eBook Reader
    9780511880650
    0 pages
    0kg
    This ISBN is for an eBook version which is distributed on our behalf by a third party.

    Table of Contents

    • Acknowledgements
    • 1. Overview
    • 2. Continuation-passing style
    • 3. Semantics of the CPS
    • 4. ML-specific optimizations
    • 5. Conversion into CPS
    • 6. Optimization of the CPS
    • 7. Beta expansion
    • 8. Hoisting
    • 9. Common subexpressions
    • 10. Closure conversion
    • 11. Register spilling
    • 12. Space complexity
    • 13. The abstract machine
    • 14. Machine-code generation
    • 15. Performance evaluation
    • 16. The runtime system
    • 17. Parallel programming
    • 18. Future directions
    • Appendices
    • Bibliography
    • Index.
      Author
    • Andrew W. Appel , Princeton University, New Jersey