# Polymorphic Type, Region and Effect Inference

@article{Talpin1991PolymorphicTR, title={Polymorphic Type, Region and Effect Inference}, author={Jean-Pierre Talpin and Pierre Jouvelot}, journal={J. Funct. Program.}, year={1991}, volume={2}, pages={245-271} }

We 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. [... ] Key Method 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… Expand

## 252 Citations

The type and effect discipline

- Geology[1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science
- 1992

The type and effect discipline, a framework for reconstructing the principal type and the minimal effect of expressions in implicitly typed polymorphic functional languages that support imperative constructs, is introduced and outperforms other polymorphic type systems.

The Type and Effect Discipline

- Computer ScienceInf. Comput.
- 1994

This work defines both a dynamic and a static semantics for an ML-like language and proves that they are consistently related, and presents a reconstruction algorithm that computes the principal type and the minimal observable effect of expressions.

Implementation of the typed call-by-value λ-calculus using a stack of regions

- Computer SciencePOPL '94
- 1994

The translation is proved correct with respect to a store semantics, which models as a region-based run-time system for polymorphically typed call-by-value λ-calculus.

Region and effect inference for safe parallelism

- Computer ScienceAutomated Software Engineering
- 2019

In this paper, we present the first full regions-and-effects inference algorithm for explicitly parallel fork-join programs. We infer annotations equivalent to those in Deterministic Parallel Java…

Region and Effect Inference for Safe Parallelism (T)

- Computer Science2015 30th IEEE/ACM International Conference on Automated Software Engineering (ASE)
- 2015

This paper infer annotations inspired by Deterministic Parallel Java (DPJ) for a type-safe subset of C++ that gives strong safety guarantees and expresses the inference as a constraint satisfaction problem and develops, implement, and evaluate an algorithm for solving it.

Technical Report: Region and Effect Inference for Safe Parallelism

- Computer Science
- 2015

This paper infer annotations inspired by Deterministic Parallel Java (DPJ) for a type-safe subset of C++ for explicitly parallel fork-join programs and expresses the inference as a constraint satisfaction problem and develops, implement, and evaluate an algorithm for solving it.

Type inference and optimisation for an impure world

- Computer Science
- 2009

It is argued that it is more important for a compiler to be able to reason about the behaviour of a program, than for the language to be purely functional in a formal sense.

nu-Types for Effects and Freshness Analysis

- Computer ScienceICTAC
- 2009

We define a type and effect system for a λ -calculus extended with side effects, in the form of primitives for creating and accessing resources. The analysis correctly over-approximates the sequences…

A region inference algorithm

- Computer ScienceTOPL
- 1998

It is proved that the algorithm is sound with respect to the region inference rules and that it always terminates even though the area inference rules permit polymorphic recursion in regions.

Effects and effect inference for a core Java calculus

- Computer ScienceElectron. Notes Theor. Comput. Sci.
- 2003

## References

SHOWING 1-10 OF 35 REFERENCES

Types and Effects Towards the Integration of Functional and Imperative Programming.

- Computer Science
- 1987

The type and effect system makes it possible to embed functional program fragments within imperative programs, and vice versa, while retaining the benefits of the chosen programming style in each program fragment, and offers a clean solution to the problem of first-class polymorphism in an imperative language.

On determining lifetime and aliasing of dynamically allocated data in higher-order functional specifications

- Computer SciencePOPL '90
- 1989

The goal is validate program transformations that introduce imperative constructs such as destructive updatings, stack allocations and explicit deallocations in order to reduce the run-time memory management overhead.

Algebraic reconstruction of types and effects

- Computer SciencePOPL '91
- 1991

This paper presents the rst algorithm for reconstructing the types and e ects of expressions in the presence of rst class procedures in a polymorphic typed language and proves that it is sound and complete, and discusses its practical import.

Polymorphic type inference and assignment

- Computer SciencePOPL '91
- 1991

The type system given here leads to a better integration of imperative programming style with the purely applicative kernel of ML, and generic functions that allocate mutable data can safely be given fully polymorphic types.

A semantic model of reference counting and its abstraction (detailed summary)

- Computer ScienceLFP '86
- 1986

Most interpreters for functional languages (as well as Lisp) employ at some level in the implementation a notion of sharing, whether manifested indirectly through an environment or directly via…

Static dependent types for first class modules

- Computer ScienceLISP and Functional Programming
- 1990

Experience with an implementation of a new type system, built as an extension to the FX-87 programming language, shows that static dependent types can be used for building large systems.

Data Flow Analysis for Procedural Languages

- Computer ScienceJACM
- 1979

A language independent formulation of the problem, an interprocedural data flow algorithm, and a proof that the algorithm is correct are included, and several widespread assumptions become false or ambiguous.

The essence of ML

- Computer SciencePOPL '88
- 1988

It is proved that the important programming features of ML cannot be added to any impredicative language, such as the Girard-Reynolds calculus, without implicitly assuming a type of all types.

Detecting conflicts between structure accesses

- Computer SciencePLDI '88
- 1988

This paper describes a dataflow computation that produces a conservative description of the aliases visible at any point in a program that shows how alias graphs can be used to detect potential conflicts.