Author:
Talpin Jean-Pierre,Jouvelot Pierre
Abstract
AbstractWe present a new static system which reconstructs the types, regions and effects of expressions in an implicitly typed functional language that supports imperative operations on reference values. Just as types structurally abstract collections of concrete values, regions represent sets of possibly aliased reference values and effects represent approximations of the imperative behaviour on regions.We introduce a static semantics for inferring types, regions and effects, and prove that it is consistent with respect to the dynamic semantics of the language. We present a reconstruction algorithm that computes the types and effects of expressions, and assigns regions to reference values. We prove the correctness of the reconstruction algorithm with respect to the static semantics. Finally, we discuss potential applications of our system to automatic stack allocation and parallel code generation.
Publisher
Cambridge University Press (CUP)
Reference28 articles.
1. Talpin J. P. and Jouvelot P. 1991 b. The FX/CM Compiler Backend, or Taming Massive Parallelism with an Effect System. Research Report EMP-CRI-A208, Ecole Nationale Supérieure des Mines de Paris (Nov.).
2. Data Flow Analysis for Procedural Languages
3. A Machine-Oriented Logic Based on the Resolution Principle
4. * Lisp Reference Manual. 1977. Thinking Machines Corporation.
Cited by
100 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Error Localization for Sequential Effect Systems;Static Analysis;2023
2. An Algebraic Theory for Shared-State Concurrency;Programming Languages and Systems;2022
3. Polymorphic Iterable Sequential Effect Systems;ACM Transactions on Programming Languages and Systems;2021-03-31
4. A Lightweight Formalism for Reference Lifetimes and Borrowing in Rust;ACM Transactions on Programming Languages and Systems;2021-03-31
5. CallƐ: an effect system for method calls;Proceedings of the 2019 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software;2019-10-23