Skip to main content Accessibility help
×
  • Coming soon
  • Show more authors
  • Select format
  • Publisher:
    Cambridge University Press
    Publication date:
    01 December 2026
    10 December 2026
    ISBN:
    9781009767484
    9781009767514
    Dimensions:
    (244 x 170 mm)
    Weight & Pages:
    0.5kg, 247 Pages
    Dimensions:
    Weight & Pages:
Selected: Digital
Add to cart View cart Buy from Cambridge.org

Book description

An exploration of the design space and development of programming languages from the perspective of control structures: the language mechanisms that enable programs to control their execution flows. Starting with the 'goto' jumps of early programming languages and the emergence of structured programming in the 1960s, this book explores advanced control structures for imperative languages such as generators and coroutines, then develops alternate views of control in functional languages, first as continuations and their control operators, then as algebraic effects and effect handlers, as found in the OCaml language. Blending history, code examples, and theory, it offers advanced students, researchers, and programming language enthusiasts an original, comparative perspective on programming languages, as well as an extensive introduction to algebraic effects and other contemporary research topics.

Reviews

‘A story about how our ways of telling computers what should happen, when have evolved over three quarters of a century, told by a master programming language designer and implementer.’

Benjamin Pierce - University of Pennsylvania

‘Control structures are the nervous system of a programming language: they determine how computations are executed, interrupted, resumed, and interwoven. In this book, Xavier Leroy, the architect of the OCaml programming language, gives a comprehensive account of control structures, from the historic ‘goto’ statement to the state-of-the-art algebraic effects and handlers. Theory, practice and concrete examples are masterfully combined into a whole that will be valuable both to implementors of programming languages and to programmers who want to better understand the tools they use every day.’

Andrej Bauer - University of Ljubljana

Metrics

Full text views

Total number of HTML views: 0
Total number of PDF views: 0 *
Loading metrics...

Book summary page views

Total views: 0 *
Loading metrics...

* Views captured on Cambridge Core between #date#. This data will be updated every 24 hours.

Usage data cannot currently be displayed.

Accessibility standard: Unknown

Why this information is here

This section outlines the accessibility features of this content - including support for screen readers, full keyboard navigation and high-contrast display options. This may not be relevant for you.

Accessibility Information

Accessibility compliance for the PDF of this book is currently unknown and may be updated in the future.