Affiliation:
1. University of Maryland, College Park, MD
Abstract
This paper presents a generalization of standard effect systems that we call
contextual effects
. A traditional effect system computes the effect of an expression
e
. Our system additionally computes the effects of the computational context in which
e
occurs. More specifically, we computethe effect of the computation that has already occurred(the
prior effect
) and the effect of the computation yet to take place (the
future effect
).
Contextual effects are useful when the past or future computation of the program is relevant at various program points. We present two substantial examples. First, we show how prior and future effects can be used to enforce
transactional version consistency
(TVC), a novel correctness property for dynamic software updates. TV Censures that programmer-designated transactional code blocks appear to execute entirely at the same code version, even if a dynamic update occurs in the middle of the block. Second, we show how future effects can be used in the analysis of multi-threaded programs to find thread-shared locations. This is an essential step in applications such as data race detection.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
16 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Error Localization for Sequential Effect Systems;Static Analysis;2023
2. Automated Temporal Verification for Algebraic Effects;Programming Languages and Systems;2022
3. Dynamic software updating: a systematic mapping study;IET Software;2020-09-02
4. Challenges in Dynamic Software Updating;TEM Journal;2020-02-28
5. Alto;Proceedings of the 15th International Conference on Managed Languages & Runtimes - ManLang '18;2018