Sequential Effect Systems with Control Operators

by   Colin S. Gordon, et al.

Sequential effect systems are a class of effect system that exploits information about program order, rather than discarding it as traditional commutative effect systems do. This extra expressive power allows effect systems to reason about behavior over time, capturing properties such as atomicity, unstructured lock ownership, or even general safety properties. While we now understand the essential denotational (categorical) models fairly well, application of these ideas to real software is hampered by the sheer variety of source level control flow constructs in real languages. Denotational approaches are general enough to accommodate any particular control flow construct, but provide no guidance on the details, let alone applications. We address this new problem by appeal to a classic idea: macro-expression of commonly-used programming constructs in terms of control operators. We give an effect system for a subset of Racket's tagged delimited control operators, as a lifting of an effect system for a language without direct control operators. This gives the first account of sequential effects in the presence of general control operators. Using this system, we also re-derive the sequential effect system rules for control flow constructs previously shown sound directly, and derive sequential effect rules for new constructs not previously studied in the context of source-level sequential effect systems. This offers a way to directly extend source-level support for sequential effect systems to real programming languages.


page 1

page 2

page 3

page 4


Polymorphic Iterable Sequential Effect Systems

Effect systems are lightweight extensions to type systems that can verif...

Monadic Style Control Constructs for Inference Systems

Recent advances in programming languages study and design have establish...

Temporal Verification with Answer-Effect Modification

Type-and-effect systems are a widely-used approach to program verificati...

Error Localization for Sequential Effect Systems (Extended Version)

We describe a new concrete approach to giving predictable error location...

Capturing the Future by Replaying the Past

Delimited continuations are the mother of all monads! So goes the slogan...

Labyrinth: Compiling Imperative Control Flow to Parallel Dataflows

Parallel dataflow systems have become a standard technology for large-sc...

Effects for Efficiency: Asymptotic Speedup with First-Class Control

We study the fundamental efficiency of delimited control. Specifically, ...

Please sign up or login with your details

Forgot password? Click here to reset