## Type and effect systems (1999)

### Cached

### Download Links

- [www.cs.ucla.edu]
- [www.daimi.au.dk]
- [www.daimi.au.dk]
- [www.cs.ucla.edu]
- DBLP

### Other Repositories/Bibliography

Venue: | ACM Computing Surveys |

Citations: | 34 - 0 self |

### BibTeX

@INPROCEEDINGS{Nielson99typeand,

author = {Flemming Nielson and Hanne Riis Nielson},

title = {Type and effect systems},

booktitle = {ACM Computing Surveys},

year = {1999},

pages = {114--136},

publisher = {Springer-Verlag}

}

### Years of Citing Articles

### OpenURL

### Abstract

Abstract. The design and implementation of a correct system can benefit from employing static techniques for ensuring that the dynamic behaviour satisfies the specification. Many programming languages incorporate types for ensuring that certain operations are only applied to data of the appropriate form. A natural extension of type checking techniques is to enrich the types with annotations and effects that further describe intensional aspects of the dynamic behaviour.

### Citations

358 |
Principal type-schemes for functional programs
- Damas, Milner
- 1982
(Show Context)
Citation Context ...et of constraints for the meaning of the annotation variables. This suffices for adapting the established techniques for polymorphic type inference, by means of the classical algorithm W developed in =-=[6, 22]-=- for Hindley/Milner polymorphism, to the setting at hand. In this scheme one might have W(Γ, e) = (S, τ, ϕ, C) where e is the program to be typed, τ is the form of the resulting type and ϕ summarises ... |

235 | The SLam calculus: programming with secrecy and integrity
- Heintze, Riecke
- 1998
(Show Context)
Citation Context ...ether they are static (available at compile-time) or dynamic (available at run-time); these analyses form the basis of partial evaluation and can also be used as the basis for security analyses (e.g. =-=[12]-=-) that distinguish between secret and public information. Example 3. Binding Time Analysis. For binding time analysis we extend the language of Examples 1 and 2 with a let-construct: e ::= · · · | let... |

89 | A theory of qualified types
- Jones
- 1992
(Show Context)
Citation Context ...n variables with other annotations; this rule is usually used immediately after the axiom for variables. ⊓⊔ References for type systems with subtyping include [9, 10, 23] as well as the more advanced =-=[16, 37, 38]-=- that also deal with Hindley/Milner polymorphism (as found in Standard ML). To allow a general treatment of subtyping, these papers generally demand constraints to be an explicit part of the inference... |

85 | Abstract interpretation: A semantics-based tool for program analysis - Jones, Nielson - 1995 |

76 |
P.: Type inference with subtypes
- Fuh, Mishra
(Show Context)
Citation Context ...n in order to replace the bound annotation variables with other annotations; this rule is usually used immediately after the axiom for variables. ⊓⊔ References for type systems with subtyping include =-=[9, 10, 23]-=- as well as the more advanced [16, 37, 38] that also deal with Hindley/Milner polymorphism (as found in Standard ML). To allow a general treatment of subtyping, these papers generally demand constrain... |

63 | Higher-order concurrent programs with finite communication topology - Nielson, Nielson - 1994 |

51 | Implementation of the typed call-by-value -calculus using a stack of regions - Tofte, Talpin - 1994 |

47 | Control-flow analysis and type systems
- Heintze
- 1995
(Show Context)
Citation Context ...se types. One popular class of analyses that can be expressed using this technique consists of interprocedural control flow analyses which track the origins of where functions might have been defined =-=[7, 8, 11]-=-; this can be extended with components for tracking where functions are applied and thus has strong similarities to the classical use-definition and definition-use analyses of data flow analysis. Exam... |

44 | Strictness Analysis in Logical Form
- Jensen
- 1991
(Show Context)
Citation Context ...ctness analyses and classical data flow analyses can also be expressed as annotated type systems but to be useful they may require the type system to be extended with conjunction or disjunction types =-=[4, 5, 14, 15]-=- thereby touchingsupon the logical techniques. In annotated type systems, as well as in the type and effect systems considered below, the annotations are normally sets of some kind, but linking up wit... |

44 | Principal type schemes for functional programs with overloading and subtyping - Smith - 1994 |

37 | Specifying the correctness of binding-time analysis - Wand - 1993 |

36 |
Polymorphic binding-time analysis
- Henglein, Mossin
- 1994
(Show Context)
Citation Context ...ence; the abbreviation UCAI is often used for these properties. ⊓⊔ Subtyping and Polymorphism Another popular class of analyses that can be expressed by annotations is the binding time analyses (e.g. =-=[13]-=-) which distinguish data as to whether they are static (available at compile-time) or dynamic (available at run-time); these analyses form the basis of partial evaluation and can also be used as the b... |

32 |
P.: Polymorphic subtype inference: Closing the theory-practice gap
- Fuh, Mishra
- 1989
(Show Context)
Citation Context ...n in order to replace the bound annotation variables with other annotations; this rule is usually used immediately after the axiom for variables. ⊓⊔ References for type systems with subtyping include =-=[9, 10, 23]-=- as well as the more advanced [16, 37, 38] that also deal with Hindley/Milner polymorphism (as found in Standard ML). To allow a general treatment of subtyping, these papers generally demand constrain... |

24 | The type and e#ect discipline - Talpin, Jouvelot - 1992 |

20 | Optimizing lazy functional programs using flow inference
- Faxén
- 1995
(Show Context)
Citation Context ...se types. One popular class of analyses that can be expressed using this technique consists of interprocedural control flow analyses which track the origins of where functions might have been defined =-=[7, 8, 11]-=-; this can be extended with components for tracking where functions are applied and thus has strong similarities to the classical use-definition and definition-use analyses of data flow analysis. Exam... |

19 |
Type and Effect Systems: Behaviours for Concurrency
- Amtoft, Nielson, et al.
- 1999
(Show Context)
Citation Context ...curred in [27, 29] (not involving polymorphism) and in [2, 33, 34] (involving polymorphism); our presentation is mainly based on [33, 34] because the inference system is somewhat simpler than that of =-=[1]-=- (at the expense of making it harder to develop an inference algorithm); we refer to [1, Chapter 1] for an overview of some of the subtle technical details. An application to the validation of embedde... |

19 |
Disjunctive strictness analysis
- Jensen
- 1992
(Show Context)
Citation Context ...ctness analyses and classical data flow analyses can also be expressed as annotated type systems but to be useful they may require the type system to be extended with conjunction or disjunction types =-=[4, 5, 14, 15]-=- thereby touchingsupon the logical techniques. In annotated type systems, as well as in the type and effect systems considered below, the annotations are normally sets of some kind, but linking up wit... |

16 | Strictness logic and polymorphic invariance
- Benton
- 1992
(Show Context)
Citation Context ...ctness analyses and classical data flow analyses can also be expressed as annotated type systems but to be useful they may require the type system to be extended with conjunction or disjunction types =-=[4, 5, 14, 15]-=- thereby touchingsupon the logical techniques. In annotated type systems, as well as in the type and effect systems considered below, the annotations are normally sets of some kind, but linking up wit... |

11 | Type and behaviour reconstruction for higher-order concurrent programs
- Amtoft, Nielson, et al.
- 1997
(Show Context)
Citation Context ...uence the type information (as in Example 9), and there are inference rules for subeffecting and shape conformant subtyping. These ideas first occurred in [27, 29] (not involving polymorphism) and in =-=[2, 33, 34]-=- (involving polymorphism); our presentation is mainly based on [33, 34] because the inference system is somewhat simpler than that of [1] (at the expense of making it harder to develop an inference al... |

7 |
Strictness properties of lazy algebraic datatypes
- Benton
- 1993
(Show Context)
Citation Context |

6 | Towards a Denotational Theory of Abstract Interpretation - Nielson - 1987 |

3 | Ammann: Polymorphic subtypes for effect analysis: the dynamic semantics. This volume of SLNCS
- Amtoft, Nielson, et al.
- 1997
(Show Context)
Citation Context ...esult may need to exploit coinduction (e.g. [30]), and the notions of Kripke relations and Kripke-logical relations (see e.g. [28]) may be useful when using a denotational semantics [26]. We refer to =-=[3, 39, 40, 45]-=- for a number of applications of these techniques. The inference algorithm. The development of a syntactically sound and complete inference algorithm may be based on the ideas in [20, 41]. The simples... |

2 | Type and Eect Systems. Behaviours for Concurrency - Amtoft, Nielson, et al. - 1999 |

2 | Polymorphic subtyping for e#ect analysis: The dynamic semantics - Amtoft, Nielson, et al. - 1997 |

1 |
flow analysis
- Polyvariance
- 1997
(Show Context)
Citation Context ...se types. One popular class of analyses that can be expressed using this technique consists of interprocedural control flow analyses which track the origins of where functions might have been defined =-=[7, 8, 11]-=-; this can be extended with components for tracking where functions are applied and thus has strong similarities to the classical use-definition and definition-use analyses of data flow analysis. Exam... |