Show simple item record

dc.contributor.authorZhang, Yizhou
dc.date.accessioned2018-11-09T23:18:41Z
dc.date.available2018-11-09T23:18:41Z
dc.date.issued2018-11-09
dc.identifier.urihttps://hdl.handle.net/1813/60202
dc.description.abstractAlgebraic effect handlers offer a unified approach to expressing control-flow transfer idioms such as exceptions, iteration, and async/await. Unfortunately, previous attempts to make these handlers type-safe have failed to support the fundamental principle of modular reasoning for higher-order abstractions. We demonstrate that abstraction-safe algebraic effect handlers are possible by giving them a new semantics. The key insight is that code should only handle effects it is aware of. In our approach, the type system guarantees all effects are handled, but it is impossible for higher-order, effect-polymorphic code to accidentally handle effects raised by functions passed in; such effects tunnel through the higher-order, calling procedures polymorphic to them. By contrast, the possibility of accidental handling threatens previous designs for algebraic effect handlers. We prove that our design is not only type-safe, but also abstraction-safe. Using a logical-relations model that we prove sound with respect to contextual equivalence, we derive previously unattainable program equivalence results. Our mechanism offers a viable approach for future language designs aiming for effect handlers with strong abstraction guarantees.en_US
dc.description.sponsorshipNational Science Foundation (grant 1513797) NASA (grant NNX16AB09G)en_US
dc.language.isoen_USen_US
dc.relation.hasversionThis is a technical report accompanying "Abstraction-Safe Effect Handlers via Tunneling", appearing in POPL 2019.en_US
dc.subjectprogramming languagesen_US
dc.subjecttype systemsen_US
dc.subjecteffectsen_US
dc.titleAbstraction-Safe Effect Handlers via Tunneling: Technical Reporten_US
dc.typetechnical reporten_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record

Statistics