LFCS Seminar: 15 July 2020 - Matthew Flatt

Title: Continuation Marks: Design and Implementation


Continuation marks enable dynamic binding and context inspection in a language with proper handling of tail calls and first-class, multi-prompt, delimited continuations. The simplest and most direct use of continuation marks is to implement dynamically scoped  variables, such as the current output stream or the current exception handler. Other uses include stack inspection for debugging or security checks, serialization of an in-progress computation, and run-time elision of redundant checks.

By exposing continuation marks to users of a programming language, more kinds of language extensions can be implemented as libraries without further changes to the  compiler. At the same time, the compiler and runtime system must  provide an efficient implementation of continuation marks to ensure  that library-implemented language extensions are as effective as  changing the compiler. This talk describes the design of continuation marks and their implementation in Racket.

Affiliate: University of Utah

Jul 15 2020 -

LFCS Seminar: 15 July 2020 - Matthew Flatt

Speaker: Matthew Flatt

Blackboard Collaborate
Invitation Only