DeepAI
Log In Sign Up

Sequential Effect Systems with Control Operators

11/29/2018
by   Colin S. Gordon, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

08/06/2018

Polymorphic Iterable Sequential Effect Systems

Effect systems are lightweight extensions to type systems that can verif...
11/25/2002

Monadic Style Control Constructs for Inference Systems

Recent advances in programming languages study and design have establish...
07/21/2022

Temporal Verification with Answer-Effect Modification

Type-and-effect systems are a widely-used approach to program verificati...
09/18/2018

Labyrinth: Compiling Imperative Control Flow to Parallel Dataflows

Parallel dataflow systems have become a standard technology for large-sc...
10/28/2017

Capturing the Future by Replaying the Past

Delimited continuations are the mother of all monads! So goes the slogan...
07/01/2020

Effects for Efficiency: Asymptotic Speedup with First-Class Control

We study the fundamental efficiency of delimited control. Specifically, ...
03/07/2022

IOLLVM: enhance version of OLLVM

Code obfuscation increases the difficulty of understanding programs, imp...