Abstract
This paper introduces a novel type-and-effect calculus, first-class effects, where the computational effect of an expression can be programmatically reflected, passed around as values, and analyzed at run time. A broad range of designs "hard-coded" in existing effect-guided analyses - from thread scheduling, version-consistent software updating, to data zeroing - can be naturally supported through the programming abstractions. The core technical development is a type system with a number of features, including a hybrid type system that integrates static and dynamic effect analyses, a refinement type system to verify application-specific effect management properties, a double-bounded type system that computes both over-approximation of effects and their under-approximation. We introduce and establish a notion of soundness called trace consistency, defined in terms of how the effect and trace correspond. The property sheds foundational insight on "good" first-class effect programming.
| Original language | English |
|---|---|
| Pages (from-to) | 820-837 |
| Number of pages | 18 |
| Journal | ACM SIGPLAN Notices |
| Volume | 51 |
| Issue number | 10 |
| DOIs | |
| State | Published - Oct 19 2016 |
Keywords
- first-class effect
- hybrid typing
- type system
Fingerprint
Dive into the research topics of 'First-class effect reflection for effect-guided programming'. Together they form a unique fingerprint.Cite this
- APA
- Author
- BIBTEX
- Harvard
- Standard
- RIS
- Vancouver