Title
System E: Expansion Variables for Flexible Typing with Linear and Non-linear Types and Intersection Types
Abstract
Types are often used to control and analyze computer programs. Intersection types give great flexibility, but have been difficult to implement. The ! operator, used to distinguish between linear and non-linear types, has good potential for better resource-usage tracking, but has not been as flexible as one might want and has been difficult to use in compositional analysis. We introduce System E, a type system with expansion variables, linear intersection types, and the ! type constructor for creating non-linear types. System E is designed for maximum flexibility in automatic type inference and for ease of automatic manipulation of type information. Expansion variables allow postponing the choice of which typing rules to use until later constraint solving gives enough information to allow making a good choice. System E removes many difficulties that expansion variables had in the earlier System I and extends expansion variables to work with ! in addition to the intersection type constructor. We present subject reduction for call-by-need evaluation and discuss program analysis in System E.
Year
DOI
Venue
2004
10.1007/978-3-540-24725-8_21
Lecture Notes in Computer Science
Keywords
Field
DocType
program analysis,type system,type inference
Programming language,Nonlinear system,Subject reduction,Computer science,Type inference,Theoretical computer science,Operator (computer programming),Program analysis,Type family,Type constructor
Conference
Volume
ISSN
Citations 
2986
0302-9743
13
PageRank 
References 
Authors
0.61
16
4
Name
Order
Citations
PageRank
Sébastien Carlier1282.64
Jeff Polakow2826.37
J. B. Wells339825.09
A. J. Kfoury446147.34