Type systems

The study of type systems has emerged as one of the most active areas of research in programming languages, with applications in software engineering, language design, high-performance compiler implementation, and security. This chapter discusses the motivations and history of type systems and their role in programming language design.

[1]  Pierre Jouvelot,et al.  The type and effect discipline , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[2]  John C. Reynolds,et al.  Towards a theory of type structure , 1974, Symposium on Programming.

[3]  David B. MacQueen Using dependent types to express modular structure , 1986, POPL '86.

[4]  Mariangiola Dezani-Ciancaglini,et al.  A new type assignment for λ-terms , 1978, Arch. Math. Log..

[5]  Bengt Nordström,et al.  Programming in Martin-Löf's Type Theory , 1990 .

[6]  Xavier Leroy,et al.  Security properties of typed applets , 1998, POPL '98.

[7]  R. Gandy The Simple Theory of Types , 1977 .

[8]  Jean-Yves Girard,et al.  Linear Logic , 1987, Theor. Comput. Sci..

[9]  Luca Cardelli,et al.  Basic Polymorphic Typechecking , 1987, Sci. Comput. Program..

[10]  Martín Abadi,et al.  Secrecy by typing in security protocols , 1999, JACM.

[11]  Carl A. Gunter Semantics of programming languages: structures and techniques , 1993, Choice Reviews Online.

[12]  P. Martin-Lof,et al.  Constructive mathematics and computer programming , 1984, Philosophical Transactions of the Royal Society of London. Series A, Mathematical and Physical Sciences.

[13]  Niklaus Wirth,et al.  PASCAL User Manual and Report , 1974, Lecture Notes in Computer Science.

[14]  M. Coppo,et al.  Functional Characterization of Some Semantic Equalities inside Lambda-Calculus , 1979, ICALP.

[15]  Harold Abelson,et al.  Revised5 report on the algorithmic language scheme , 1998, SIGP.

[16]  Giorgio Ghelli,et al.  Coherence of Subsumption, Minimum Typing and Type-Checking in F<= , 1992, Math. Struct. Comput. Sci..

[17]  Gerald J. Sussman,et al.  Scheme: A Interpreter for Extended Lambda Calculus , 1998, High. Order Symb. Comput..

[18]  Craig Schaffert,et al.  CLU Reference Manual , 1984, Lecture Notes in Computer Science.

[19]  Peter Buneman,et al.  Theoretical Aspects of Object-Oriented Programming , 1994 .

[20]  Bengt Nordström,et al.  The ALF Proof Editor and Its Proof Engine , 1994, TYPES.

[21]  Luca Cardelli,et al.  A Semantics of Multiple Inheritance , 1984, Inf. Comput..

[22]  Jens Palsberg Efficient Inference of Object Types , 1995, Inf. Comput..

[23]  Frank Pfenning,et al.  Elf: A Meta-Language for Deductive Systems (System Descrition) , 1994, CADE.

[24]  J. B. Wells Typability and type checking in the second-order Λ-calculus are equivalent and undecidable (Preliminary Draft) , 1993 .

[25]  Luca Cardelli,et al.  An Extension of System F with Subtyping , 1994, Inf. Comput..

[26]  Mitchell Wand,et al.  Complete Type Inference for Simple Objects , 1987, LICS.

[27]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[28]  George C. Necula,et al.  Safe, Untrusted Agents Using Proof-Carrying Code , 1998, Mobile Agents and Security.

[29]  Hugo Herbelin,et al.  The Coq proof assistant : reference manual, version 6.1 , 1997 .

[30]  Martín Abadi,et al.  A Theory of Objects , 1996, Monographs in Computer Science.

[31]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[32]  Gottlob Frege,et al.  Begriffsschrift, eine der arithmetischen nachgebildete Formelsprache des reinen Denkens , 1879 .

[33]  Luca Cardelli,et al.  Modula-3 Report (revised) , 1992 .

[34]  Luca Cardelli,et al.  A semantic basis for quest , 1990, Journal of Functional Programming.

[35]  John C. Reynolds,et al.  Types, Abstraction and Parametric Polymorphism , 1983, IFIP Congress.

[36]  John C. Mitchell,et al.  Coercion and type inference , 1984, POPL.

[37]  Luca Cardelli,et al.  Subtyping recursive types , 1991, POPL '91.

[38]  Furio Honsell,et al.  A framework for defining logics , 1993, JACM.

[39]  Scott F. Smith,et al.  Sound polymorphic type inference for objects , 1995, OOPSLA.

[40]  A. Church The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies) , 1985 .

[41]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[42]  George C. Necula,et al.  Safe kernel extensions without run-time checking , 1996, OSDI '96.

[43]  Karl Crary,et al.  From system F to typed assembly language , 1999, TOPL.

[44]  John C. Reynolds,et al.  Preliminary design of the programming language Forsythe , 1988 .

[45]  Gérard Huet,et al.  Logical Foundations of Functional Programming , 1990 .

[46]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[47]  J. Girard,et al.  Proofs and types , 1989 .

[48]  Xavier Leroy,et al.  Manifest types, modules, and separate compilation , 1994, POPL '94.

[49]  Mads Tofte,et al.  Type Inference for Polymorphic References , 1990, Inf. Comput..

[50]  John W. Backus,et al.  The history of FORTRAN I, II, and III , 1978, SIGP.

[51]  John C. Mitchell,et al.  Abstract types have existential type , 1988, TOPL.

[52]  Harry G. Mairson,et al.  The complexity of type inference for higher-order lambda calculi , 1991, POPL '91.

[53]  Didier Rémy,et al.  Type checking records and variants in a natural extension of ML , 1989, POPL '89.

[54]  Alexander Aiken,et al.  Type inclusion constraints and type inference , 1993, FPCA '93.

[55]  Luca Cardelli,et al.  On understanding types, data abstraction, and polymorphism , 1985, CSUR.

[56]  Andrew Kennedy,et al.  Dimension Types , 1994, ESOP.

[57]  Martín Abadi,et al.  A core calculus of dependency , 1999, POPL '99.

[58]  Hendrik Pieter Barendregt,et al.  Introduction to generalized type systems , 1991, Journal of Functional Programming.

[59]  K. Rustan M. Leino,et al.  Extended static checking , 1998, PROCOMET.

[60]  J. V. Tucker,et al.  Basic Simple Type Theory , 1997 .

[61]  Mark Lillibridge,et al.  A type-theoretic approach to higher-order modules with sharing , 1994, POPL '94.

[62]  Robin Milner,et al.  Principal type-schemes for functional programs , 1982, POPL '82.

[63]  Fritz Henglein,et al.  AnnoDomini in Practice: A Type-Theoretic Approach to the Year 2000 Problem , 1999, TLCA.

[64]  John C. Mitchell,et al.  Type Systems for Programming Languages , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[65]  Robin Milner,et al.  Definition of standard ML , 1990 .

[66]  John C. Mitchell,et al.  Foundations for programming languages , 1996, Foundation of computing series.

[67]  Benjamin C. Pierce,et al.  Bounded quantification is undecidable , 1992, POPL '92.

[68]  Benjamin C. Pierce,et al.  Types and programming languages: the next generation , 2003, 18th Annual IEEE Symposium of Logic in Computer Science, 2003. Proceedings..

[69]  Robert Harper,et al.  TIL: a type-directed optimizing compiler for ML , 1996, PLDI '96.

[70]  George C. Necula,et al.  Proof-carrying code , 1997, POPL '97.

[71]  J. E. L. Peck,et al.  Revised report on the algorithmic language ALGOL 68 , 2004, Acta Informatica.

[72]  David A. Schmidt The structure of typed programming languages , 1994, Foundations of computing series.

[73]  Luca Cardelli,et al.  Extensible records in a pure calculus of subtyping , 1994 .

[74]  Friedrich L. Bauer,et al.  Revised report on the algorithm language ALGOL 60 , 1963, CACM.