Skip to main content
Article thumbnail
Location of Repository

Compiling Exceptions Correctly

By Graham Hutton and Joel Wright


Exceptions are an important feature of modern programming languages, but their compilation has traditionally been viewed as an advanced topic. In this article we show that the basic method of compiling exceptions using stack unwinding can be explained and verified both simply and precisely, using elementary functional programming techniques. In particular, we develop a compiler for a small language with exceptions, together with a proof of its correctness

Publisher: Springer Lecture Notes in Computer Science
Year: 2004
OAI identifier:
Provided by: Nottingham ePrints

Suggested articles


  1. (1990). A Functional Theory of Exceptions. doi
  2. (1999). A Semantics For Imprecise Exceptions. doi
  3. (1990). An Abstract View of Programming Languages.
  4. (2001). Asynchronous Exceptions In Haskell.
  5. (1992). Calculating Compilers.
  6. (1986). Denotational Semantics: A Methodology for Language Development. Allyn and Bacon,
  7. (2003). Haskell 98 Language and Libraries: The Revised Report.
  8. (2001). Modular Compilers and Their Correctness Proofs.
  9. (2003). Program Construction: Calculating Implementations from Specifications.
  10. (2000). QuickCheck: A Lightweight Tool for Random Testing of Haskell Programs.
  11. (1994). State in Haskell.
  12. The C++ Programming Language, Third Edition.
  13. (1997). The Definition of Standard ML (Revised).
  14. (1992). The Essence of Functional Programming. doi
  15. (2000). The Java Language Specification, Second Edition.

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.