% type theory, abstract data types, subtyping, types in programming languages % $Id: datatypes.bib,v 1.25 1999/07/27 17:17:21 leavens Exp $ @Unpublished{Abadi-Cardelli-Plotkin93, Key = "Abadi \& Cardelli \& Plotkin", Author = "Mart\'{\i}n Abadi and Luca Cardelli and Gordon D. Plotkin", Title = "Types for the Scott Numerals", Month = Feb, Year = 1993, Note = "Obtained from authors", Annote = "2 references." } @InCollection{Abadi-Cardelli94, Key = "Abadi \& Cardelli", Author = {Mart\'{\i}n Abadi and Luca Cardelli}, Title = "A Theory of Primitive Objects --- Untyped and First-Order Systems", BookTitle = "Theoretical Aspects of Computer Software", Publisher = "Springer-Verlag", Year = 1994, Editor = "Masami Hagiya and John C. Mitchell", Series = LNCS, Volume = 789, Pages = "296-320", Month = Apr, Annote = "19 references." } @InProceedings{Abadi-Cardelli94b, Key = "Abadi \& Cardelli", Author = "Mart\'{\i}n Abadi and Luca Cardelli", Title = "A Semantics of Object Types", BookTitle = "Ninth Annual IEEE Symposium on Logic in Comptuer Science, Paris, France", Year = 1994, Pages = "332-341", Organization = IEEE, Address = "Los Alamitos, CA", Month = Jul, Annote = "28 references." } @InProceedings{Abadi-Cardelli94c, Key = "Abadi \& Cardelli", Author = {M. Abadi and L. Cardelli}, Title = {A theory of primitive objects: second-order systems}, BookTitle = {Proc. of European Symposium on Programming}, Editor = "D. Sannella", Year = {1994}, Publisher = {Springer Verlag}, Address = NY, Series = LNCS, Volume = 788, Pages = "1-25" } @InProceedings{Abadi-Cardelli94d, Key = "Abadi \& Cardelli", Author = "Mart\'{\i}n Abadi and Luca Cardelli", Title = "A Semantics of Object Types", BookTitle = "Ninth Annual IEEE Symposium on Logic in Computer Science, Paris, France", Year = 1994, Pages = "332-341", Organization = "IEEE", Address = "Los Alamitos, CA", Month = Jul, Annote = "28 references." } @InCollection{Abadi-Cardelli95, Key = "Abadi \& Cardelli", Author = "Mart\'{\i}n Abadi and Luca Cardelli", Title = "On Subtyping and Matching", Series=LNCS, Publisher="Springer-Verlag", Address=NY, Editor="Walter Olthoff", Number=952, Booktitle="ECOOP '95: Object-Oriented Programming 9th European Conference, Aarhus, Denmark", Year=1995, Pages = "145-167", Annote="16 references" } @InProceedings{Abadi-Cardelli95b, Key = "Abadi \& Cardelli", author = "M. Abadi and L. Cardelli", title = "An imperative object calculus", editor = "P. D. Mosses and M. Nielsen and M. I. Schwartzbach", series = LNCS, booktitle = "TAPSOFT'95: Theory and Practice of Software Development", publisher = "Springer-Verlag", number = 915, year = 1995, month = May, pages = "471-485", annote = "26 references." } @Article{Abadi-Cardelli95c, Key = "Abadi \& Cardelli", author = "M. Abadi and L. Cardelli", title = "An imperative object calculus", journal = "Theory and Practice of Object Systems", volume = 1, number = 3, year = 1995, pages = "151-166" } @Book{Abadi-Cardelli96, author = "Mart\'{\i}n Abadi and Luca Cardelli", title = "A Theory of Objects", publisher = "Springer-Verlag", year = 1996, key = "Abadi \& Cardelli", series = "Monographs in Computer Science", address = NY, annote = "128 references." } @InProceedings{Abadi-Pierce-Plotkin89, Key="Abadi \& Pierce \& Plotkin", Author="Mart\'{i}n Abadi and Benjamin Pierce and Gordon Plotkin", Title="Faithful Ideal Models for Recursive Polymorphic Types", BookTitle="Fourth Annual Symposium on Logic in Computer Science, Pacific Grove, California", Organization=IEEE, Month=Jun, Year=1989, Pages="216-225", Annote="7 references." } @TechReport{Abadi-etal89, Key="Abadi, {\em et al.}", Author="Mart\'{\i}n Abadi and Luca Cardelli and Benjamin C. Pierce and Gordon D. Plotkin", Title="Dynamic Typing in a Statically Typed Language", Month=Jun, Year=1990, Institution=DECSRC, Number=47, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note="A revised version appears in ACM TOPLAS, Vol 13, Num 2 (April, 1991), pages 237-268.", Annote="34 references." } @InProceedings{Abadi-etal90, Key="Abadi, {\em et al.}", Author="Mart\'{\i}n Abadi and Luca Cardelli and Pierre-Louis Curien and Jean-Jacques L\`{e}vy", Title="Explicit Substitutions", BookTitle="Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, San Francisco, California", Publisher=ACM, Month=Jan, Year=1990, Pages="31-46", Note="Also Digital Equipment Corporation, Systems Research Center, Research Report 54, February 1990", Annote="13 references." } @Article{Abadi-etal91, Key = "Abadi, {em et al}", Author = "Mart\'{\i}n Abadi and Luca Cardelli and Benjamin Pierce and Gordon Plotkin", Title = "Dynamic Typing in a Statically Typed Language", Journal = TOPLAS, Year = 1991, Volume = 13, Number = 2, Month = Apr, Pages = "237-268", Annote = "36 references." } @TechReport{Abadi-etal93, Key="Abadi, {\em et al.}", Author="Mart\'{\i}n Abadi and Luca Cardelli and Pierre-Louis Curien", Title="Formal Parametric Polymorphism", Number=109, Month=Jul, Year=1993, Institution=DECSRC, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note="Order from src-report@src.dec.com", Annote="20 references." } @InProceedings{Abadi-etal99, key = {Abadi, {\em et al.}}, author = {Mart\'{\i}n Abadi and Anindya Banerjee and Nevin Heintze and Jon G. Riecke}, title = {A Core Calculus of Dependency}, booktitle = {Conference Record of POPL 99: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas}, year = 1999, organization = ACM, address = NY, month = Jan, pages = {147-160}, annote = {40 references.} } @TechReport{Abadi93, Key="Abadi", Author={Mart\'{\i}n Abadi}, Title="Baby Modula-3 and a Theory of Objects", Month=Feb, Year=1993, Institution=DECSRC, Number=95, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note="Order from src-report@src.dec.com", Annote="95 references." } @Article{Abadi94, author = {Mart\'{\i}n Abadi}, title = "Baby Modula-3 and a Theory of Objects", key = "Abadi", journal = "Journal of Functional Programming", year = 1994, volume = 4, number = 2, pages = "249-283", month = Apr, annote = "26 references." } @Article{Abdali-Cherry-Soiffer86, Key="Abdali \& Cherry \& Soiffer", Author="S. Kamal Abdali and Guyt W. Cherry and Neil Soiffer", Title="A Smalltalk System for Algebraic Manipulation", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="277-283", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Parameterized classes protocol views and categories are added to Smalltalk and used to build a algebraic manipulation system. Parameterized classes are templates for parameter subclasses that are dynamically created and local to part of a program. Parameters can be functions, e.g. equal for set elements, but are usually categories. A category is a class whose instances encapsulate the operations of some view of a set of objects. Categories form a repository for generic methods. There can be many views of the same domain. One can also form views from other categories. Optional methods can be attached to a category for efficiency; if an optional method isn't supplied, a generic method is used in its place. Categories form a multigraph. Categories that extend other categories can be implemented particularly efficiently. 12 references." } @InProceedings{Abiteboul-Kanellakis-Waller90, Key="Abiteboul \& Kanellakis \& Waller", Author="Serge Abiteboul and Paris C. Kanellakis and Emmanuel Waller", Title="Method Schemas (Preliminary Report)", BookTitle="Principles of Data Base Systems, Nashville", Organization=ACM, Year=1990, Pages="16-27", Annote="Method schemas are a simple model for object-oriented programming. Consistency problem is undecidable in general, but decidable for monadic and/or recursion-free method schemas. 20 references." } @TechReport{Abiteboul-etal92, Key= "Abiteboul, {\em et al}", Author="Serge Abiteboul, Paris Kanellakis, Sridhar Ramaswamy and Emmanual Waller", Title="Method Schemas", Number="CS-92-33", Institution="Department of Computer Science, Brown University", Month=Jul, Year=1992 } @InProceedings{Adams-Rees88, Key="Adams \& Rees", Author="Adams and Rees", Title="Object-oriented Programming in Scheme", Organization=ACM, BookTitle="Conference Record of the 1988 ACM Symposium on LISP and Functional Programming, Snowbird, Utah", Year=1988, Month=Jul, Pages="277-288" } @InProceedings{Agesen-Freund-Mitchell97, key = {Agesen \& Freund \& Mitchell}, author = {Ole Agesen and Stephen N. Freund and John C. Mitchell}, title = {Adding Type Parameterization to the Java Language}, BookTitle = "Conference Proceedings of OOPSLA '97, Atlanta", Series = SIGPLAN, Volume = "32(10)", Month = Oct, Year = 1997, organization = ACM, pages = {49-65}, annote = {22 references.} } @InCollection{Agesen-Palsberg-Schwartzbach93, Key="Agesen \& Palsberg \& Schwartzbach", Author="Ole Agesen and Jens Palsberg and Michael I. Schwartzbach", Title="Type Inference of SELF: Analysis of Objects with Dynamic and Multiple Inheritence", Series=LNCS, Publisher="Springer-Verlag", Address=NY, Editor="Oscar M. Nierstrasz", Number=707, Note="ECOOP '93 - Object-Oriented Programming 7th European Conference, Germany, July 1993. Proceedings", Pages="247-267", Annote="15 references" } @InCollection{Agesen95, Key="Agesen", Author="Ole Agesen", Title="The Cartesian Product Algorithm: Simple and Precise Typing of Parametric Polymorphism.", Series=LNCS, Publisher="Springer-Verlag", Address=NY, Editor="Walter Olthoff", Number=952, Note="ECOOP '95 - Object-Oriented Programming 9th European Conference, Aarhus, Denmark", Year = 1995, Pages="2-26", Annote="25 references" } @Article{Agrawal-DeMichiel-Lindsay91, Key="Agrawal \& DeMichiel \& Lindsay", Author = "Rakesh Agrawal and Lindga G. DeMichiel and Bruce G. Lindsay", Title = "Static Type Checking of Multi-Methods", Journal = SIGPLAN, Volume = 26, Number = 11, Month = Nov, Year = 1991, Pages = "113-128", Note = "OOPSLA '91 Conference Proceedings, Andreas Paepcke (editor), October 1991, Phoenix, Arizona", Annote = "13 references." } @Article{Agrawl-Garg84, Key="Agrawl \& Garg", Author="Mukul Babu Agrawal and Vijay Kumar Garg", Title="Dimensional Analysis in Pascal", Journal=SIGPLAN, Year=1984, Month=Mar, Volume=19, Number=3, Pages="7-11", Annote="Claims dimensional analysis needs extensions to type structure and makes a proposal for extensions to Pascal. 3 references." } @InProceedings{Aiken-Wimmers-Lakshman94, Key = {Aiken \& Wimmers \& Lakshman}, Author = {Alexander Aiken and Edward L. Wimmers and T. K. Lakshman}, Title = "Soft Typing with Conditional Types", BookTitle = "Conference Record of POPL '94: 21ST ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Portland, Oregon", Month = Jan, Year = 1994, Organization = ACM, Address = NY, Pages = "163-173", Annote = "23 references." } @InCollection{Ait-Kaci-Garrigue93, Key = "Ait-Kaci \& Garrigue", Author = "H. Ait-Kaci and J. Garrigue", Title = "Label-Selective $\lambda$-Calculus Syntax and Confluence", BookTitle = "Foundations of Software Technology and Theorectical Computer Science", Publisher = "Springer-Verlag", Year = 1993, Editor = "R. K. Shyamasundar", Series = LNCS, Volume = 761, Pages = "24-40", Month = Oct, Annote = "13 references." } @TechReport{Ait-Kaci83, Key="Ait-Kaci", Author="H. Ait-Kaci", Title="Outline of a Calculus of Type Subsumptions", Number="CIS-83-34", Institution="Department of Computer and Information Science, The Moore School of Electrical Engineering, University of Pennsylvania", Month=Dec, Year=1983 } @PhDThesis{Ait-Kaci84, Key="Ait-Kaci", Author="Hassan Ait-Kaci", Title="A Lattice Theoretic Approach to Computation Based on a Calculus of Partially Ordered Type Structures", School="University of Pennsylvania", Year=1984, Annote="76 references." } @InProceedings{Ait-Kaci85a, Key="Ait-Kaci", Author="Hassan Ait-Kaci", Title="Logic and Inheritance", BookTitle="Conference Record of the Thirteenth Annual ACM Symposium on Principles of Programming Languages, St. Petersberg Beach, Fla.", Organization=ACM, Month=Jan, Year=1986, Pages="219-228", Annote="11 References" } @InProceedings{Ait-Kaci85b, Key="Ait-Kaci", Author={Hassan A\"{\i}t-Kaci}, Title="Integrating Data Type Inheritance Into Logic Programming", BookTitle="Persistence and Data Types: Papers for the Appin Workshop", Month=Aug, Year=1985, Organization="Universities of Glasgow and St. Andrews, Departments of Computer Science", Note="Persistent Programming Research Report 16", Pages="391-405", Annote="12 references." } @Article{Ait-Kaci86, Key="Ait-Kaci", Author={Hassan A\"{\i}t-Kaci}, Title="An Algebraic Semantics Approach to the Effective Resolution of Type Equations", Journal=TCS, Volume=45, Pages="293-351", Year=1986 } @InProceedings{Alagic97, key = {Alagi\'{c}}, author = {Suad Alagi\'{c}}, title = {The {ODMG} Object Model: Does it Make Sense?}, BookTitle = "Conference Proceedings of OOPSLA '97, Atlanta", Series = SIGPLAN, Volume = "32(10)", Month = Oct, Year = 1997, organization = ACM, pages = {253-270}, annote = {28 references.} } @Article{Albano-Cardelli-Orsini85, Key="Albano \& Cardelli \& Orsini", Author="Antonio Albano and Luca Cardelli and Renzo Orsini", Title="Galileo: A Strongly-Typed, Interactive Conceptual Language", Journal=TODS, Year=1985, Month=Jun, Volume=10, Number=2, Pages="230-260", Annote="Flexible type system to model database structure and semantic integrity constraints, type hierarchies for specialization, modules and abstraction mechanisms. Support for conceptual modeling. Galileo's classes define relation-like objects. Transactions. 34 references." } @InProceedings{Albano-etal85, Key="Albano, {\em et al.}", Author="A. Albano and F. Giannotti and R. Orsini and D. Pedreschi", Title="The Type System of Galileo", BookTitle="Persistence and Data Types: Papers for the Appin Workshop", Month=Aug, Year=1985, Organization="Universities of Glasgow and St. Andrews, Departments of Computer Science", Note="Persistent Programming Research Report 16", Pages="191-208", Annote="11 references." } @InProceedings{Albano-etal91, Key="Albano, {\em et al.}", Author="Antonio Albano and Giorgio Ghelli and Renzo Orsini", Title="Objects for a database programming language", BookTitle="Database Programming languages; bulk types and persistent data", Month=Aug, Year=1991, Organization="Proceedings of the Third Intl Workshop", Publisher="Morgan-Kaufmann Publishers Inc", Address="San Mateo, CA", Pages="236-253" } @Article{Albano83, Key="Albano", Author="Antonio Albano", Title="Type Hierarchies and Semantic Data Models", Journal=SIGPLAN, Year=1983, Month=Jun, Volume=18, Number=6, Pages="178-186", Note="Proceedings of the SIGPLAN '83 Symposium on Programming Language Issues in Software Systems, San Francisco, CA", Annote="Two kinds of type constructors in Galileo, inherited as in Smalltalk or completely defined as in CLU. Type hierarchy with multiple inheritance. 34 references." } @InCollection{Allen87, Key = "Allen", Author = "Stuart Allen", Title = "A Non-Type-Theoretic Definition of Martin-Lof's Types", BookTitle = "Symposium on Logic in Computer Science, Ithaca, NY", Publisher = IEEE, Year = 1987, Pages = "215-221", Month = Jun, Annote = "3 references." } @InCollection{Almeida97, author = {Paulo Sergio Almeida}, title = {Balloon Types: Controlling Sharing of State in Data Types}, booktitle = {ECOOP '97 --- Object-Oriented Programming 11th European Conference, Jyv\"{a}skyl\"{a}, Finland}, key = {Almeida}, publisher = {Springer-Verlag}, year = 1997, editor = {Mehmet Ak\c{s}it and Satoshi Matsuoka}, volume = 1241, series = LNCS, address = NY, month = Jun, pages = {32-59}, annote = {The ability to share state is a first-class property of a data type. 33 references.} } @Article{Althoff81, Key="Althoff", Author="Althoff, Jr., James C.", Journal="BYTE", Title="Building Data Structures in the Smalltalk-80 System", Year=1981, Pages="230-278", Volume=6, Number=8, Month=Aug, Annote="Discusses list structures and the utility of inheritance in building them. 4 references." } @TechReport{Amadio-Cardelli90, Key = "Amadio \& Cardelli", Author = "Roberto M. Amadio and Luca Cardelli", Title = "Subtyping Recursive Types", Institution = "Digital Systems Research Center", Year = 1990, Number = "62", Address = "Palo Alto, Ca 94301", Month = Aug, Note = "See also the 1991 POPL proceedings.", Annote = "27 references." } @Article{Amadio-Cardelli93, Key = "Amadio \& Cardelli", Author = "Roberto M. Amadio and Luca Cardelli", Title = "Subtyping Recursive Types", Journal = TOPLAS, Year = 1993, Volume= 15, Number = 4, Month = Sep, Pages= "575-631", Annote = "29 references." } @Article{America-Linden90, Key="America \& van der Linden", Author="Pierre America and Frank van der Linden", Title="A Parallel Object-Oriented Language with Inheritance and Subtyping", Journal=SIGPLAN, Volume=25, Number=10, Month=Oct, Year=1990, Pages="161-168", Note="{\em OOPSLA ECOOP '90 Proceedings}, N. Meyrowitz (editor).", Annote="26 references." } @InProceedings{America87, Key="America", Author="Pierre America", Title="Inheritance and Subtyping in a Parallel Object-Oriented Language", BookTitle="ECOOP '87, European Conference on Object-Oriented Programming, Paris, France", Editor="Jean Bezivin and others", Publisher="Springer-Verlag", Address=NY, Month=Jun, Year=1987, Pages="234-242", Note="Lecture Notes in Computer Science, Volume 276", Annote="Behavioral subtyping. One definition of subtypes based on implications between invariants of the types. Contravariant rule as necessary. 18 references." } @TechReport{America89, Key="America", Author="Pierre America", Title="A Behavioural Approach to Subtyping in Object-Oriented Programming Languages", Institution="Philips Research Laboratories", Address="Nederlandse Philips Bedrijven B. V.", Number=443, Month=Jan, Year=1989, Note="Superseded by a later version in April 1989" } @TechReport{America89b, Key="America", Author="Pierre America", Title="A Behavioural Approach to Subtyping in Object-Oriented Programming Languages", Institution="Philips Research Laboratories", Address="Nederlandse Philips Bedrijven B. V.", Number=443, Month=Apr, Year=1989, Note="Revised from the January 1989 version", Annote="Definition of subtypes for mutable types based on implications between pre- and post-contitions mediated by a transfer function. Distinction between subtyping and inheritance. 11 references." } @InCollection{America91, Key = "America", Author = "Pierre America", Title = "Designing an Object-Oriented Programming Language with Behavioural Subtyping", BookTitle = "Foundations of Object-Oriented Languages, REX School/Workshop, Noordwijkerhout, The Netherlands, May/June 1990", Publisher = "Springer-Verlag", Year = 1991, Editor = "J. W. de Bakker and W. P. de Roever and G. Rozenberg", Series = LNCS, Volume = 489, Pages = "60-90", Address = NY, Annote = "Design and other aspects of POOL. 16 references." } @InProceedings{Aponte93, Key="Aponte", Author="Maria Virginia Aponte", Title="Extending Record Typing to Type Parametric Modules with Sharing", BookTitle=" Conference record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, South Carolina", Organization=ACM, Year=1993, Month=Jan, Pages="465-478", Annote="13 references" } @Article{Appelbe-Ravn84, Key="Appelbe \& Ravn", Author="William F. Appelbe and A. P. Ravn", Title="Encapsulation Constructs in Systems Programming Languages", Journal=TOPLAS, Year=1984, Month=Apr, Volume=6, Number=2, Pages="129-158", Annote="Comparative discussion of encapsulation constructs. Extensions to Ada. Need for both packages and abstract data types as separate mechanisms. Type checking and multiple implementations. 16 references." } @InProceedings{Arbib-Manes80, Key="Arbib \& Manes", Author="M. Arbib and E. Manes", Title="The Greatest Fixpoint Approach to Data Types", Address="Dortmund, West Germany", BookTitle="Proc. 3rd Workshop Meeting on Categorical and Algebraic Methods in Computer Science and System Theory", Year=1980 } @Article{Arbib-Manes82, Key="Arbib \& Manes", Author="Michael A. Arbib and Ernest G. Manes", Title="Parameterized Data Types do not Need Highly Constrained Parameters", Journal="Information and Control", Month=Feb, Year=1982, Volume=52, Number=2, Pages="139-158", Annote="Focuses on greatest fixpoints. 16 references." } @InCollection{Astesiano-Costa81, Key="Astesiano \& Costa", Author="E. Astesiano and G. Costa", Title="Reducing Types in Applicative Languages with Structured Data", BookTitle="Formalization of Programming Concepts, International Colloquium, Peniscola, Spain, April 1981", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=107, Editor="J. Diaz and I. Ramos", Year=1981, Pages="210-217", Annote="Hierarchy of reducing types and insensitivity property for the non-reducing types. 11 references." } @Book{Atkinson-Buneman-Morrison88, Key="Atkinson \& Buneman \& Morrison", Author="Malcolm P. Atkinson and Peter Buneman and Ronald Morrison", Title="Data Types and Persistence", Publisher="Springer-Verlag", Address=NY, Year=1988, Annote="Proceedings of the Appin Workshop, 1985. Hundreds of references." } @Article{Atkinson-Buneman87, Key="Atkinson \& Buneman", Author="Malcolm P. Atkinson and O. Peter Buneman", Title="Types and Persistence in Database Programming Languages", Journal=ACMCS, Volume=19, Number=2, Month=June, Year=1987, Pages="105-190", Annote="Focus on the problem of providing a uniform type system and mechanisms for data to persist. Polymorphism, type inheritance, object identity, and choice of structures to represent sets of similar values. 163 references." } @TechReport{Atkinson-Chisholm-Cockshott81, Key="Atkinson \& Chisholm and \& Cockshott", Author="Malcolm Atkinson and Ken Chisholm and Paul Cockshott", Title="PS-Algol: an Algol with a Persistent Heap", Institution="Department of Computer Science, University of Edinburgh", Year=1981, Month=Dec, Type="Internal Report", Number="CSR-94-81", Annote="Persistent heap. 22 references." } @InProceedings{Atkinson-Morrison85, Key="Atkinson-Morrison", Author="Malcolm P. Atkinson and Ronald Morrison", Title="Types, Bindings and Parameters in a Persistent Environment", BookTitle="Persistence and Data Types: Papers for the Appin Workshop", Month=Aug, Year=1985, Organization="Universities of Glasgow and St. Andrews, Departments of Computer Science", Note="Persistent Programming Research Report 16", Pages="1-24", Annote="29 references." } @Article{Atkinson-Morrison85a, Key="Atkinson \& Morrison", Author="Malcolm P. Atkinson and Ronald Morrison", Title="Procedures as Persistent Data Objects", Journal=TOPLAS, Volume=7, Number=4, Month=Oct, Year=1985, Pages="539-559", Annote="Persistent first-class procedures are sufficient to implement data protection, views, abstract data types, and separate compilation. 32 references." } @InCollection{Atkinson-etal84, Key="Atkinson, {\em et al.}", Author="M. P. Atkinson and P. Bailey and W. P. Cockshott and K. J. Chisholm and R. Morrison", Title="Progress with Persistent Programming", BookTitle="Databases - Role and Structure: An Advanced Course", Editor="P. M. Stocker, P. M. D. Gray and M. P. Atkinson.", Publisher="Cambridge University Press", Address="Cambridge, England", Year=1984, Pages="245-310", Annote="Database programming languages and issues in languages and databases. 93 references." } @TechReport{Atkinson-etal84b, Key="Atkinson, {\em et al.}", Author="M. P. Atkinson and W. P. Cockshott and P. Bailey and K. J. Chisholm and R. Morrison", Title="PS-Algol Reference Manual", Institution="Departments of Computer Science, Universities of Edinburgh and St. Andrews", Year=1984, Month=Jan, Number="PPR-4-83", Annote="Persistence, first class procedures. 14 references." } @Article{Atkinson86, Key="Atkinson", Author="Robert G. Atkinson", Title="Hurricane: An Optimizing Compiler for Smalltalk", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="151-158", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Type declaration and inference as applied to compiling efficient code for Smalltalk-80. Programmers must tell the system the class or set of classes to which each instance or class variable will belong. 9 references." } @InProceedings{Augustsson99, key = {Augustsson}, author = {Lennart Augustsson}, title = {Cayenne --- a language with dependent types}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '98)", Series = SIGPLAN, Volume = "34(1)", Month = Jun, Year = 1999, organization = ACM, pages = {239-250}, annote = {A Haskell variant with dependent types. 27 references.} } @InCollection{Backhouse-Hoogendijk93, Key = "Backhouse \& Hoogendijk", Author = "Roland Backhouse and Paul Hoogendijk", Title = "Elements of a relational theory of datatypes", BookTitle = "Formal Program Development", Publisher = "Springer-Verlag", Year = 1993, Editor = "Bernhard Moeller and Helmut Partsch and Steve Schuman", Series = LNCS, Volume = 755, Pages = "7-42", Address = NY, Month = Jul, Annote = "27 references." } @Article{Backhouse-etal89, Key="Backhouse, {\em et al.}", Author="Roland Backhouse and Paul Chisholm and Grant Malcolm and Erik Saaman", Title="Do-it-Yourself Type Theory", Journal="Formal Aspects of Computing", Volume=1, Number=1, Month="January -- March", Year=1989, Pages="19-84", Annote={Martin-L\"{o}f's type theory as a basis for program development. 62 references.} } @InCollection{Backhouse89, Key="Backhouse", Author="R. C. Backhouse", Title="Constructive Type Theory -- An Introduction", Booktitle="Constructive Methods in Computing Science", Series="NATO ASI Series", Volume="F55", Editor="Manfred Broy", Publisher="Springer-Verlag", Address=NY, Pages="9-60", Year=1989, Annote="Martin-Lof style type theory. 21 references." } @Article{Bailes87, Key="Bailes", Author="Paul A. Bailes", Title="G: a functional language with generic abstract data types", Journal="Computer Languages", Volume=12, Number=2, Month=Aug, Year=1987, Pages="69-94" } @Article{Bakel92, Key="Bakel", Author="Steffan van Bakel", Title= "Complete restrictions of the intersection type discipline", Journal=TCS, Year=1992, Month=Aug, Volume=102, Number=1, Pages="135-163" } @Article{Bar-David92, Key = "Bar-David", Author = "Tsvi Bar-David", Title = "Practical Consequences of Formal Definitions of Inheritance", Journal = JOOP, Year = 1992, Volume = 5, Number = 4, Month = "Jul/Aug", Pages = "43-49", Annote = "5 references." } @Article{Barendregt-Coppo-Dezani-Ciancaglini83, Key="Barendregt \& Coppo \& Dezani-Ciancaglini", Author="Henk Barendregt and Mario Coppo and Mariangiola Dezani-Ciancaglini", Title="A Filter Lambda Model and the Completeness of Type Assignment", Journal=JSL, Volume=48, Number=4, Month=Dec, Year=1983, Pages="931-940", Annote="Extends syntax and semantics of Curry types so that filters in the resulting type structure form a domain. 12 references." } @InCollection{Barendregt-Hemerik90, Key="Barendregt \& Hemerik", Author="Henk Barendregt and Kees Hemerik", Title="Types in Lambda Calculi and Programming Languages", BookTitle="ESOP '90 3rd European Symposium on Programming, Copenhagen, Denmark", Month=May, Year=1990, Pages="1-35", Editor="N. Jones", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=432, Annote="42 references." } @Article{Barendregt91, Key = "Barendregt", Author = "Henk Barendregt", Title = "Introduction to generalized type systems", Journal = "Journal of Functional Programming", Year = 1991, Volume = 1, Number = 2, Month = Apr, Pages = "125-154", Annote = "42 references." } @Article{Barendsen-Smetsers96, key = "Barendensen \& Smetsers", title = "Uniqueness typing for functional languages with graph rewriting semantics", author = "Erik Barendsen and Sjaak Smetsers", pages = "579-612", journal = "Mathematical Structures in Computer Science", month = Dec, year = 1996, volume = 6, number = 6, annote = "Full technical presentation of the (polymorphic) uniqueness type derivation system in natural deduction style." } @PhDThesis{Baroody78, Key="Baroody", Author="Baroody, Jr., Anthony James", Title="The Evaluation of Abstract Data Types as an Implementation Tool for Database Management Systems", School="University of Wisconsin - Madison", Year=1978 } @TechReport{Baumgartner-Russo93, Key="Baumgartner \& Russo", Author="Gerald Baumgartner and Vincent F. Russo", Title="Signatures: A C++ Extension for Type Abstraction and Subtype Polymorphism", Year="1993", Month="September", Number="CSD-TR-93-059", Institution="Department of Computer Science, Purdue University ", Annote="No references." } @Article{Baumgartner-Russo97, Key = "Baumgartner \& Russo", Author = "Gerald Baumgartner and Vincent F. Russo", Title = "Implementing Signatures for {C++}", journal = TOPLAS, year = 1997, volume = 19, number = 1, month = Jan, pages = {153-187}, annote = {Structual subtyping for C++. 26 references.} } @Article{Beaven-Stansifer93, Key = "Beaven \& Stansifer", Author = "Mike Beaven and Ryan Stansifer", Title = "Explaining Type Errors in Polymorphic Languages", Journal = "ACM Letters on Programming Languages and Systems", Year = 1993, Volume = 2, Number = "1-4", Month = "March-December", Pages = "17-30", Annote = "9 references." } @InProceedings{Bell-Bellegarde-Hook97, key = {Bell \& Bellegarde \& Hook}, author = {Jeffrey M. Bell and Fran\c{c}oise Bellegarde and James Hook}, title = {Type-driven Defunctionalization}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '97)", Series = SIGPLAN, Volume = "32(8)", Month = Aug, Year = 1997, organization = ACM, pages = {25-37}, annote = {Turning higher-order functions into function with data as arguments in a way that preserves typability. 13 references.} } @TechReport{Bennett82, Key="Bennett", Author="John K. Bennett", Title="A Comparison of Four Object-Oriented Systems", Year="1982", Number="82-11-03", Institution="Department of Computer Science, University of Washington", Annote="64 references." } @Article{Benton-Bierma-DePaiva98, author = {P. N. Benton and G. M. Bierma and V. C. V. De Paiva}, title = {Computational types from a logical perspective}, journal = {Journal of Functional Programming}, year = 1998, key = {Benton \& Bierma \& De Paiva}, volume = 8, number = 2, month = Mar, pages = {177-193}, annote = {26 references.} } @InCollection{Bergstra-Tucker80, Key="Bergstra \& Tucker", Author="J. A. Bergstra and J. V. Tucker", Title="A Characterization of Computable Data Types by Means of a Finite, Equational Specification Method", BookTitle="Automata, Languages and Programming, Seventh Colloquium, Noordwijkerhout", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=85, Editor="J. W. de Bakker and J. van Leeuwen", Year=1980, Pages="76-90", Annote="Algebraic characterization of the computable data types and data structures. 11 references." } @InCollection{Bert-Soler81, Key="Bert \& Soler", Author="Didier Bert and Roger Soler", Title="About Data Type Genericity", BookTitle="Formalization of Programming Concepts, International Colloquium, Peniscola, Spain, April 1981", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=107, Editor="J. Diaz and I. Ramos", Year=1981, Pages="231-243", Annote="Extends Strachey-Scott model categorically to give semantics to abstract data types. 21 references." } @InCollection{Bertino-Guerrini95, Key = "Bertino \& Guerrini", Author = "Elisa Bertino and Biovanna Guerrini", Title = "Objects with Multiple Most Specific Classes", Series=LNCS, Publisher="Springer-Verlag", Address=NY, Editor="Walter Olthoff", Number=952, Note="ECOOP '95 - Object-Oriented Programming 9th European Conference, Aarhus, Denmark", Pages="102-126", Year=1995, Annote="16 references" } @TechReport{Bieman-Baker88, Key="Bieman \& Baker", Author="James M. Bieman and Albert L. Baker", Title="Assertions in Executable Specifications: an Approach Using Dynamic Typing (Extended Abstract)", Institution="Department of Computer Science, Iowa State University", Address="Ames, Iowa", Number="88-20" } @InProceedings{Biswas95, Key = {Biswas}, Author = {Sandip K. Biswas}, Title = "Higher-Order Functors with Transparent Signatures", BookTitle = "Conference Record of POPL '95: 22nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, Calif.", Month = Jan, Year = 1995, Organization = ACM, Address = NY, Pages = "154-163", Annote = "Functors in ML. 11 references." } @TechReport{Black-Hutchinson90, Key = "Black \& Hutchinson", Author = "Andrew P. Black and Norman C. Hutchinson", Title = "Typechecking Polymorphism in Emerald", Institution = "Department of Computer Science; The University of Arizona", Year = 1990, Number = "TR 90-34", Address = "Tucson, AZ 85721", Month = Dec, Annote="Only checks syntactic part of substitutability condition. Contravariant rules. Proof of safety sketeched. Distinguishes between conformity (for assignments, parameters), and matching for checking type parameters against requirements. 13 references." } @TechReport{Black-Hutchinson91, Key = "Black \& Hutchinson", Author = "Andrew P. Black and Norman Hutchinson", Title = "Typechecking Polymorphism in Emerald", Institution = "Digital Equipment Corporation, Cambridge Research Lab", Year = 1991, Number = "CRL 91/1 (Revised)", Address = "Cambridge, Mass.", Month = Jul, Annote="13 references." } @Article{Black-Palsberg93, Key = "Black \& Palsberg", Author = {Andrew Black and Jens Palsberg}, Title = {Foundations of Object-Oriented Languages: Workshop Report}, Journal = SIGPLAN, Year = 1994, Volume = 29, Number = 3, Month = Mar, Pages = "3-11", Note = {The bibliography was truncated in the published version. Obtain the full report by anonymous ftp from {\tt crl.dec.com} in {\tt pub/DEC/sigplan94.ps.Z}.} } @Book{Blair-etal91, Key = "Blair, {\em et al.}", Editor = "Gordon Blair and John Gallagher and David Hutchison and Doug Shepherd", Title = "Object-Oriented Languages, Systems and Applications", Publisher = "Pitman Publishing", Year = 1991, Address = "London", Note = "ISBN 0-273-03132-5", Annote = "Excellent advanced introduction to object-oriented languages. Good framework for describing systems. Many recent references." } @Article{Bloom-Zdonik87, Key="Bloom \& Zdonik", Author="Toby Bloom and Stanley Zdonik", Title="Issues in the Design of Object-Oriented Database Programming Languages", Journal=SIGPLAN, Volume=22, Number=12, Month=Dec, Year=1987, Pages="441-451", Note="OOPSLA '87 Conference Proceedings, Norman Meyrowitz (editor), October 1987, Orlando, Florida.", Annote="36 references." } @Article{Blum-Parisi-Presicce83, Key="Blum \& Parisi-Presicce", Author="Edward K. Blum and Fancesco Parisi-Presicce", Title="Implementation of Data Types by Algebraic Methods", Journal="Theoretical Computer Science", Volume=27, Number=2, Month=Oct, Year=1983, Pages="304-330", Annote="Theoretical treatment. 45 references." } @InProceedings{Bobrow-Stefik82, Key="Bobrow \& Stefik", Author="D. G. Bobrow and M. J. Stefik", Title="Loops--Data and Object Oriented Programming for Interlisp", BookTitle="Discussion Papers European Conference on AI, Orsay, France", Organization="?", Month=Jul, Year=1982 } @TechReport{Bobrow-etal85, Key="Bobrow, {\em et al.\/}", Author="D. G. Bobrow and K. Kahn and G. Kiczales and L. Masinter and M. Stefik and F. Zdybel", Title="CommonLoops: Merging Common Lisp and Object-oriented Programming", Institution="Xerox Palo Alto Research Center: Intelligent Systems Laboratory", Number="ISL-85-8", Month=Aug, Year=1985 } @Article{Bobrow-etal86, Key="Bobrow, {\em et al.\/}", Author="Daniel G. Bobrow and Kenneth Kahn and George Kiczales and Larry Masinter and Mark Stefik and Frank Zdybel", Title="CommonLoops: Merging Lisp and Object-Oriented Programming", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="17-29", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="CommonLoops integrates functions and generic invocation by providing syntax that is the same as a function call for generic calls. Method lookup can be based on the class of more than one argument. The ``most specific'' method is called if there is a conflict, determined by the leftmost type specifiers which differ; this can be redefined by users of meta-objects. Multi-methods can use type specifier information to access the slots (instance variables) of arguments to the method. Default methods versus functions. Meta-objects allow CommonLoops to implement most other inheritance and generic invocation mechanisms, and allows them to be combined; CommonLoops thus has an extensible inheritance mechanism. Behavior can be specified for individual objects. Method combination based on run-super uses Lisp as the combination language. Meta-classes determine how multiple inheritance conflicts are resolved for instance variables and how component classes are ordered. Inheritance of instance variables can be overridden in a subclass. Discussion of implementation techniques. Comparision with Loops, Smalltalk-80, and new Flavors. 16 references." } @Unpublished{Bobrow-etal87, Key="Bobrow, {\em et al.\/}", Author="Daniel G. Bobrow and Linda G. DeMichiel and Richard P. Gabriel and Sonya Keene and Gregor Kiczales and David A. Moon", Title="Common Lisp Object System Specification", Year=1987, Number="87-002", Note="Draft Standard", Annote="Standard programmer interface for object-oriented programming in Common Lisp. Largely based on Common Loops." } @TechReport{Boehm-Demers-Donahue80, Key="Boehm \& Demers \& Donahue", Author="H. Boehm and A. Demers and J. Donahue", Title="An Informal Description of Russell", Institution="Department of Computer Science, Cornell University", Year=1980, Month=Oct, Number="TR 80-430", Annote="Stack-based language with few built-in types but powerful combining forms. Has closures and type constructing operations for forming new data types. Types treated as values. Substitution principle insures that syntactically identical denotations evaluate to the same value." } @TechReport{Boehm-Demers-Donahue85, Key="Boehm \& Demers \& Donahue", Author="Hans-Juergen Boehm and Alan Demers and James Donahue", Title="A Programmer's Introduction to Russell", Institution="Department of Computer Science, Rice University", Year=1985, Month=Mar, Number="COMP TR85-16", Annote="11 references." } @Article{Boehm-Demers-Donahue86, Key="Boehm \& Demers \& Donahue", Author="Hans-J. Boehm and Alan Demers and James Donahue", Title="Letter to the editor", Journal=SIGPLAN, Volume=21, Number=1, Month=Jan, Year=1986, Pages="17-18", Annote="Discussion of Russell in response to Harland, et al. Notes the following type checking problem for dynamic type checking systems that have functional types: how to check the assignment to a variable that is supposed to hold functions that return prime integers. 4 references." } @Article{Boehm-Demers86, Key="Boehm \& Demers", Author="Hans-Juergen Boehm and Alan Demers", Title="Implementing Russell", Journal=SIGPLAN, Volume=21, Number=7, Month=Jul, Year=1986, Pages="186-195", Note="Proceedings of the SIGPLAN '86 Symposium on Compiler Construction, Palo Alto, California, June 25-27, 1986.", Annote="Discussion of the type inference done in the Russell compiler and separate compilation. 26 references." } @PhDThesis{Boehm83, Key="Boehm", Author="H. Boehm", Title="A Logic for the Russell Programming Language", School="Cornell University", Year=1983, Note="To appear as a University of Washington technical report." } @Article{Boehm89, Key = "Boehm", Author = "Hans-J. Boehm", Title = "Type Inference in the Presence of Type Abstraction", Journal = SIGPLAN, Year = 1989, Volume = 24, Number = 7, Month = Jul, Pages = "192-206", Note = "Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation, Portland, Oregon, June", Annote = "32 references." } @InCollection{Bono-Patel-Shmatikov99, key = {Bono \& Patel \& Shmatikov}, author = {Viviana Bono and Amit Patel and Vitaly Shmatikov}, title = {A Core Calculus of Classes and Mixins}, booktitle = {ECOOP '99 --- Object-Oriented Programming 13th European Conference, Lisbon Portugal}, publisher = {Springer-Verlag}, year = 1999, editor = {Rachid Guerraoui}, volume = 1628, series = LNCS, address = NY, month = Jun, pages = {43-66}, annote = {45 references.} } @InProceedings{Borning-Ingalls82a, Key="Borning \& Ingalls", Author="Alan H. Borning and Daniel H. H. Ingalls", Title="A Type Declaration and Inference System for Smalltalk", BookTitle="Conference Record of the Ninth Annual ACM Symposium on Principles of Programming Languages, Albuquerque, New Mexico", Organization=ACM, Month=Jan, Year=1982, Pages="133-141", Note="Also Washington University Department of Computer Science, TR-81-08-02a.", Annote="14 references." } @InProceedings{Borning-Ingalls82b, Key="Borning \& Ingalls", Author="Alan H. Borning and Daniel H. H. Ingalls", Title="Multiple Inheritance in Smalltalk-80", BookTitle="Proceedings of the National Conference on Artificial Intelligence", Organization="American Association for Artificial Intelligence", Pages="234-237", Year=1982, Note="Also Univ. of Washington Tech. Rep. 82-06-02.", Annote="Motivation for multiple inheritance is to avoid duplication of code when one class implements the methods of two or more classes. For example, the class transcript implements the protocols of both windows and writestreams. Classes may have any number of superclasses but any class is always an instance of just one class, thus its rep is inherited from just one class. It is an error if a message name is inherited from more than one superclass. Multiple inheritance makes the need for pools of semi-global variables go away. 10 references." } @Article{Borning81, Key="Borning", Author="Alan H. Borning", Title="The Programming Language Aspects of ThingLab, A Constraint-Oriented Simulation Laboratory", Journal=TOPLAS, Volume=3, Number=4, Month=Oct, Pages="353-387", Year=1981, Annote="Uses constraints instead of types. ThingLab is a graphical simulation laboratory built on Smalltalk. 17 references." } @InProceedings{Bourdoncle-Merz97, key = "Bourdoncle \& Merz", title = "Type-Checking Higher-Order Polymorphic Multi-Methods", author = "Fran{\c{c}}ois Bourdoncle and Stephan Merz", pages = "302-315", booktitle = "Conference Record of {POPL '97}: the 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages", organization = ACM, address = NY, annote = "41 references." } @Article{Boute80, Key="Boute", Author="Raymond T. Boute", Title="Simplifying Ada by Removing Limitations", Journal=SIGPLAN, Volume=15, Number=2, Month=Feb, Pages="17-29", Year=1980, Annote="Argues for type variables, against name equivalence. Ideas of Stoy, etc. Views type correctness as static verification that type manipulations are correct, not that all types are known at compile time. 15 references." } @Article{Boyd83, Key="Boyd", Author="Stowe Boyd", Title="Free and Bound Generics: Two Techniques for Abstract Data Types in Modular C", Journal=SIGPLAN, Volume=19, Number=3, Month=Mar, Year=1983, Pages="12-20", Annote="Distinguishes general versions of a data type from specific ones. Trade-offs in efficiency. Automatic conversion between free and bound generics. 15 references." } @InProceedings{Boyland-Castagna97, Key = {Boyland \& Castagna}, Author = {John Boyland and Giuseppe Castagna}, Title = {Parasitic Methods: Implementation of Multi-Methods for {Java}}, BookTitle = {Conference Proceedings of OOPSLA '97, Atlanta}, Year = 1997, month = Oct, Pages = "66-76", Series = SIGPLAN, organization = ACM, volume = "32(10)", annote = "A way to add multimethods to single dispatch languages, like Java. 15 references." } @Article{Bracha-Griswold93, Key = "Bracha \& Griswold", Author = "Gilad Bracha and David Griswold", Title = "Strongtalk: Typechecking Smalltalk in a Production Environment", Journal = SIGPLAN, Volume = 28, Number = 10, Month = Oct, Year = 1993, Pages = "215-230", Note = "{\em OOPSLA '93 Proceedings}, Andreas Paepcke (editor).", Annote = "Type checking for Smalltalk. 26 references." } @TechReport{Bracha-Lindstrom91, Key = "Bracha \& Lindstrom", Author = "Gilad Bracha and Gary Lindstrom", Title = "Modularity Meets Inheritance", Institution = "Department of Computer Science, University of Utah", Year = 1991, Number = "UUCS-91-017", Address = "Salt Lake City, Utah", Month = Oct, Annote = "33 references." } @InProceedings{Bracha-etal98, Key = "Bracha, {\em et al.}", Author = "Gilad Bracha and Martin Odersky and David Stoutamire and Philip Wadler", Title = "Making the Future Safe for the Past: Adding Genericity to the {Java} Programming Language", BookTitle = "OOPSLA '98 Conference Proceedings", Series=SIGPLAN, Volume="33(10)", Month=Oct, Year=1998, Pages="183-200", Annote = "The GJ language. 24 references." } @InCollection{Breazu-Tannen-Meyer87, Key = "Breazu-Tannen \& Meyer", Author = "Breazu-Tannen-Meyer", Title = "Polymorphism is Conservative over Simple Types", BookTitle = "Symposium on Logic in Computer Science, Ithaca, NY", Publisher = IEEE, Year = 1987, Pages = "7-17", Month = Jun, Annote = "24 references." } @InProceedings{Brosgol77, Key="Brosgol", Author="B. M. Brosgol", Title="Some Issues in Data Types and Type Checking", Pages="102-130", BookTitle="Design and Implementation of Programming Languages", Publisher="Springer-Verlag", Address=NY, Year=1977, Editor="J. H. Williams and D. A. Fischer", Annote="Implementation issues for data types, concentrating on the tradeoffs involved and interactions of features. 34 references." } @InProceedings{Bruce-Cardelli-Pierce96, key = "Bruce \& Cardelli \& Pierce", author = "Kim B. Bruce and Luca Cardelli and Benjamin C. Pierce", title = "Comparing Object Encodings", booktitle = "Invited lecture at Third Workshop on Foundations of Object Oriented Languages (FOOL 3)", year = 1996, month = Jul, note = "Available electronically through {\tt http://www.cs.williams.edu/\discretionary{}{}{}$\sim$kim/\discretionary{}{}{}FOOL/\discretionary{}{}{}Abstracts.html}", } @InCollection{Bruce-Crabtree-Kanapathy93, Key = "Bruce \& Crabtree \& Kanapathy", Author = "Kim B. Bruce and Jonathan Crabtree and Gerald Kanapathy", Title = "An Operational Semantics for TOOPLE: A Statically-Typed Object-Oriented Programming Language", BookTitle = "Mathematical Foundations of Programming Semantics 9th International Conference, New Orleans, LA, USA, Proceedings", Publisher = "Springer-Verlag", Year = 1993, Editor = "S. Brookes and M. Main and A. Melton and M. Mislove and D. Schmidt", Series = LNCS, Volume = 802, Pages = "603-626", Address = NY, Month = Apr, Annote = "25 references." } @Article{Bruce-DiCosmo-Longo92, Key="Bruce \& Di Cosmo \& G. Longo", Author="K. Bruce and R. Di Cosmo and G. Longo", Title="Provable isomorphisms of Types", Journal="Mathematical Structures in Computer Science", Volume=2, Number=2, Year="1992", Pages="231-247" } @Unpublished{Bruce-Gent93, Key="Bruce \& Gent", Author="Kim B. Bruce and Robert van Gent", Title="{TOIL}: Imperative Object Oriented languages can be type-safe too", Year=1993, Note="Obtained by annonymous ftp from angus.cs.williams.edu", Annote="No references" } @InProceedings{Bruce-Longo88, Key="Bruce \& Longo", Author="Kim B. Bruce and Giuseppe Longo", Title="A Modest Model of Records, Inheritance, and Bounded Quantification", BookTitle="Third Annual Symposium on Logic in Computer Science", Pages="38-51", Publisher=IEEE, Month=Jul, Year=1988, Editor="Y. Gurevich" } @Article{Bruce-Longo90, Key="Bruce \& Longo", Author="K. Bruce and G. Longo", Title="A modest model of records, inheritance and bounded quantification", Journal="Information and Computation", Year=1990, Volume=87, Number="1/2", Pages="196-240" } @InProceedings{Bruce-Mitchell92, Key = "Bruce \& Mitchell", Author = "Kim Bruce and John C. Mitchell", Title = "{PER} models of subtyping, recursive types and higher-order polymorphism", BookTitle = "Conference Record of the Nineteenth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages", Year = 1992, Pages = "316-327", Organization = ACM, Month = Jan, Annote = "34 references." } @InCollection{Bruce-Petersen-Fiech97, key = {Bruce \& Petersen \& Fiech}, author = {Kim B. Bruce and Leaf Petersen and Adrian Fiech}, title = {Subtyping is Not a Good ``Match'' for Object-Oriented Languages}, booktitle = {ECOOP '97 --- Object-Oriented Programming 11th European Conference, Jyv\"{a}skyl\"{a}, Finland}, publisher = {Springer-Verlag}, year = 1997, editor = {Mehmet Ak\c{s}it and Satoshi Matsuoka}, volume = 1241, series = LNCS, address = NY, month = Jun, pages = {104-127}, annote = {26 references.} } @InCollection{Bruce-Riecke88, Key="Bruce \& Riecke", Author="Kim B. Bruce and Jon G. Riecke", Title="The Semantics of Miranda's Algebraic Types", BookTitle="Mathematical Foundations of Programming Language Semantics 3rd Workshop, Tulane University, New Orleans, Lousiana, USA, April 1987", Editor="M. Main and A. Melton and M. Mislove and D. Schmidt", Series=LNCS, Volume=298, Publisher="Springer-Verlag", Address=NY, Year=1988, Pages="455-475", Annote="20 references." } @Unpublished{Bruce-Schuett-vanGent94, Key = "Bruce \& Schuett \& vanGent", Author = "Kim B. Bruce and Angela Schuett and Robert van Gent", Title = "A type-safe polymorphic object-oriented language", Note = "Obtain by anonymous ftp from cs.williams.edu in pub/kim/PolyTOIL.dvi", Month = Jul, Year = 1994 } @InCollection{Bruce-Schuett-vanGent95, Key = "Bruce \& Schuett \& vanGent", Author = "Kim B. Bruce and Angela Schuett and Robert van Gent", Title = "A type-safe polymorphic object-oriented language", Series=LNCS, Publisher="Springer-Verlag", Address=NY, Editor="Walter Olthoff", Number=952, Note="ECOOP '95 - Object-Oriented Programming 9th European Conference, Aarhus, Denmark", Pages="27-51", Year=1995, Annote="27 references." } @Article{Bruce-Wegner86, Key="Bruce \& Wegner", Author="Kim B. Bruce and Peter Wegner", Title="An Algebraic Model of Subtypes in Object-Oriented Languages (Draft)", Journal=SIGPLAN, Volume=21, Number=10, Month=Oct, Year=1986, Annote="A type T1 is a subtype of T2 iff there is a coercer function from T1 to T2 that preserves the structure of the types. 13 references." } @Unpublished{Bruce-Wegner87, Key="Bruce \& Wegner", Author="Kim B. Bruce and Peter Wegner", Title="Algebraic and Lambda Calculus Models of Subtype and Inheritance (Extended Abstract)", Year=1987, Note="Working paper?", Annote="Uses order sorted algebras for coercers. 13 references." } @InCollection{Bruce-Wegner90, Key="Bruce \& Wegner", Author="Kim B. Bruce and Peter Wegner", Title="An Algebraic Model of Subtype and Inheritance", BookTitle="Advances in Database Programming Languages", Editor="Francois Ban\c{c}ilhon and Peter Buneman", Pages="75-96", Month=Aug, Publisher="Addison-Wesley", Address="Reading, Mass.", Year=1990, Annote="Uses order sorted algebras for coercers. 7 references." } @Article{Bruce-etal93, Key = "Bruce, {\em et al.}", Author = "Kim B. Bruce and Jon Crabtree and Thomas P. Murtagh and Robert van Gent and Allyn Dimock and Robert Muller", Title = "Safe and decidable type checking in an object-oriented language", Journal = SIGPLAN, Volume = 28, Number = 10, Month = Oct, Year = 1993, Pages = "29-46", Note = "{\em OOPSLA '93 Proceedings}, Andreas Paepcke (editor).", Annote = "Type checking inheritance in TOOPLE. 24 references." } @Article{Bruce-etal95, Key = "Bruce, {\em et al.}", Author = "Kim Bruce and Luca Cardelli and Giuseppe Castagna and The Hopkins Object Group and Gary T. Leavens and Benjamin Pierce", Title = "On Binary Methods", Journal = "Theory and Practice of Object Systems", Publisher = "John, Wiley and Sons, Inc.", Year = 1995, Address = NY, Pages = "221-242", Volume = 1, Number = 3, Annote = "53 references." } @TechReport{Bruce-etal95a, Key = "Bruce, {\em et al.}", Author = "Kim Bruce and Luca Cardelli and Giuseppe Castagna and The Hopkins Object Group and Gary T. Leavens and Benjamin Pierce", Title = "On Binary Methods", Year = 1995, Month = Dec, Institution = "Department of Computer Science, Iowa State University", Address = "Ames, Iowa, 50011", Number = "95-08a", URL = "ftp://ftp.cs.iastate.edu/pub/techreports/TR95-08/TR.ps.Z", Note = "Appears in {\it Theory and Practice of Object Systems}. Volume 1, Number 3. Available by anonymous ftp from ftp.cs.iastate.edu, and by e-mail from almanac@cs.iastate.edu" } @TechReport{Bruce92, Key="Bruce", Author="Bruce, K.", Title="A paradigmatic object-oriented programming language: design, static typing and semantics", Institution="Williams College", Number="CS-92-01, revised", Note="To appear in Journal of Functional Programming", Year="1993" } @InProceedings{Bruce93, Key="Bruce", Author="Bruce, K.", Title="Safe Type Checking in a Statically Typed Object-Oriented Programming Language", BookTitle="Proc. ACM Symp. on Principles of Programming Languages", Year="1993", Pages="285-298" } @Article{Bruce94, Key = "Bruce", Author = {K. B. Bruce}, Title = {A Paradigmatic Object-Oriented Programming Language: Design, Static Typing and Semantics}, Journal = "Journal of Functional Programming", Volume = 4, Number = 2, Month = Apr, Year = 1994, Pages = "127-206" } @Article{Budd91b, Key = "Budd", Author = "Timothy A. Budd", Title = "Generalized arithmetic in C++", Journal = JOOP, Year = 1991, Volume = 3, Number = 6, Month = Feb, Pages = "11-22", Annote = "4 references." } @InProceedings{Buechi-Weck98, key = {B\"{u}chi \& Weck}, author = {Martin B\"{u}chi and Wolfgang Weck}, title = {Compound Types for {Java}}, BookTitle = "OOPSLA '98 Conference Proceedings", Series = SIGPLAN, Volume = "33(10)", Month = Oct, Year = 1998, organization = ACM, pages = {362-373}, annote = {36 references.} } @InCollection{Buneman84, Key="Buneman", Author="Peter Buneman", Title="Can We Reconcile Programming Languages and Databases?", BookTitle="Databases - Role and Structure: An Advanced Course", Editor="P. M. Stocker, P. M. D. Gray and M. P. Atkinson.", Publisher="Cambridge University Press", Address="Cambridge, England", Year=1984, Pages="225-243", Annote="The problems of integrating programming languages and databases. The basic problem is a mismatch of data types. 33 references." } @InProceedings{Buneman85, Key="Buneman", Author="Peter Buneman", Title="Data Types for Data Base Programming", BookTitle="Persistence and Data Types: Papers for the Appin Workshop", Month=Aug, Year=1985, Organization="Universities of Glasgow and St. Andrews, Departments of Computer Science", Note="Persistent Programming Research Report 16", Pages="295-307", Annote="Deriving records, indexes and sets from a single type: a partial function. 18 references." } @TechReport{Burstall-Lampson84, Key="Burstall \& Lampson", Author="R. Burstall and B. Lampson", Title="A Kernel Language for Modules and Abstract Data Types", Institution=DECSRC, Month=Sep, Year=1984, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note="An version of this appeared in G. Kahn, D. B. MacQueen and G. Plotkin (eds.), Semantics of Data Types: International Symposium, Sophia-Antipolis, France, June, 1984, Springer-Verlag LNCS Volume 173, pages 1-50.", Annote="Pebble and its details. Pebble treats types as values and declarations as types. Dependent product types correspond to existential types and dependent arrow types correspond to universal types. 20 references." } @InProceedings{Burstall84, Key="Burstall", Author="Rod Burstall", Title="Programming with Modules as Typed Functional Programming", BookTitle="Fifth Generation Computing Systems 1984", Month=Nov, Year=1984, Pages="103-112", Publisher=North-Holland, Address=NY, Annote="Explains the motivation for the type system of Pebble and its details. Pebble treats types as values and declarations as types. Dependent product types correspond to existential types and dependent arrow types correspond to universal types. 30 references." } @Article{Burton90, Key="Burton", Author="F. Warren Burton", Title="Type Extension Through Polymorphism", Journal=TOPLAS, Volume=12, Number=1, Month=Jan, Year=1990, Pages="135-138", Annote="One can get a function that accepts subtypes of a given record type by allowing for the extension at design time: having a type parameter for the missing fields of a tuple. 7 references." } @Article{Butterworth-Otis-Stein91, Key = "Butterworth \& Otis \& Stein", Author = "Paul Butterworth and Allen Otis and Jacob Stein", Title = "The GemStone Object Database Management System", Journal = CACM, Year = 1991, Volume = 34, Number = 10, Month = Oct, Pages = "64-77", Annote = "11 references." } @TechReport{Canning-Hill-Olthoff88, Key="Canning \& Hill \& Olthoff", Author="Peter Canning and Walter L. Hill and Walter Olthoff", Title="Towards a Kernel Language for Object-Oriented Programming", Number="STL-88-21", Institution="Software Technology Laboratory, Hewlett-Packard Laboratories", Address="Palo Alto, Calif.", Month=Sep, Year=1988, Annote="28 references." } @InProceedings{Canning-etal89a, Key="Canning, {\em et al.}", Author="Peter Canning and William Cook and Walter Hill and John Mitchell and Walter Olthoff", Title="F-Bounded Polymorphism for Object-Oriented Programming", BookTitle="Fourth International Conference on Functional Programming and Computer Architecture", Month=Sep, Year=1989, Organization=ACM, Note="Also technical report STL-89-5, from Software Technology Laboratory, Hewlett-Packard Laboratories" } @Article{Canning-etal89b, Key="Canning, {\em et al.}", Author="Peter Canning and William Cook and Walter Hill and Walter Olthoff", Title="Interfaces for Strongly-Typed Object-Oriented Programming", Journal=SIGPLAN, Volume=24, Number=10, Month=Oct, Year=1989, Pages="457-467", Note="OOPSLA '89 Conference Proceedings, Norman Meyerowitz (editor), October 1989, New Orleans, Louisiana. Also technical report STL-89-6 (revision 1), from Software Technology Laboratory, Hewlett-Packard Laboratories", Annote="33 references." } @Unpublished{Cardelli, Key="Cardelli", Author="Luca Cardelli", Title="The Amber Machine", Annote="An intermediate language for compiling, in the tradition of the SECD Machine, specialized for the Amber Language. 7 references." } @TechReport{Cardelli-Leroy90, Key="Cardelli \& Leroy", Author="Luca Cardelli and Xavier Leroy", Title="Abstract Types and the Dot Notation", Institution=DECSRC, Month=Mar, Year=1990, Number=56, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note="Order from src-report@src.dec.com", Annote="16 references." } @TechReport{Cardelli-Longo90a, Key="Cardelli \& Longo", Author="Luca Cardelli and Giuseppe Longo", Title="A Semantic Basis for Quest", Month=Feb, Year=1990, Institution=DECSRC, Number=55, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note="Order from src-report@src.dec.com", Annote="Concentrates on modeling quantifiers and subtyping. 43 references." } @InProceedings{Cardelli-Longo90b, Key="Cardelli \& Longo", Author="Luca Cardelli and Giuseppe Longo", Title="A Semantic Basis for Quest", BookTitle="Proceedings of the 1990 ACM Conference on LISP and Functional Programming, Nice, France", Organization=ACM, Month=Jun, Year=1990, Pages="30-43", Note="Extended abstract of DEC SRC technical report 55", Annote="Concentrates on modeling quantifiers and subtyping. 43 references." } @InProceedings{Cardelli-MacQueen85, Key="Cardelli \& MacQueen", Author="Luca Cardelli and David MacQueen", Title="Persistence and Type Abstraction", BookTitle="Persistence and Data Types: Papers for the Appin Workshop", Month=Aug, Year=1985, Organization="Universities of Glasgow and St. Andrews, Departments of Computer Science", Note="Persistent Programming Research Report 16", Pages="?", Annote="8 references." } @InCollection{Cardelli-Mitchell89a, Key="Cardelli \& Mitchell", Author="Luca Cardelli and John C. Mitchell", Title="Operations on Records (Summary)", BookTitle="Mathematical Foundations of Programming Semantics, 5th International Conference, Tulane University", Editor="M. Main and A. Melton and M. Mislove and D. Schmidt", Month=Mar, Year=1989, Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=442, Pages="22-52", Annote="25 references." } @TechReport{Cardelli-Mitchell89b, Key="Cardelli \& Mitchell", Author="Luca Cardelli and John C. Mitchell", Title="Operations on Records", Month=Aug, Year=1989, Institution=DECSRC, Number=48, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note="Order from src-report@src.dec.com", Annote="25 references." } @Article{Cardelli-Wegner85, Key="Cardelli \& Wegner", Author="Luca Cardelli and Peter Wegner", Title="On Understanding Types, Data Abstraction and Polymorphism", Journal=ACMCS, Volume=17, Number=4, Month=Dec, Year=1985, Pages="471-522", Annote="Model of typed, polymorphic programming languages. Existential and bounded quantification. Lambda calculus based model of type systems. The language Fun. 44 references." } @InProceedings{Cardelli-etal89a, Key="Cardelli, {\em et al.}", Author="Luca Cardelli and Jim Donahue and Mick Jordan and Bill Kalsow and Greg Nelson", Title="The Modula-3 Type System", Organization=ACM, BookTitle="Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Month=Jan, Year=1989, Pages="202-212", Annote="Includes subtypes. Strong arguments for structural subtyping and structural type equivalence rules. 15 references." } @TechReport{Cardelli-etal91, Key = "Cardelli, {\em et al.}", Author = "Luca Cardelli and Simone Martini and John C. Mitchell and Andre Scedrov", Title = "An Extension of System F with Subtyping", Institution = DECSRC, Year = 1991, Number = 80, Month = Dec, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note = "Extended abstract in Theoretical Aspects of Computer Software, T. Ito and A. R. Meyer (editors), LNCS Vol 526. To appear in Information and Control.", Annote = "26 references." } @Article{Cardelli-etal94, Key = "Cardelli, {\em et al.}", Author = "Luca Cardelli and Simone Martini and John C. Mitchell and Andre Scedrov", Title = "An Extension of System F with Subtyping", journal = "Information and Computation", year = 1994, volume = 109, number = "1/2", pages = "4-56", month = "Feb" } @Article{Cardelli83, Key="Cardelli", Author="Luca Cardelli", Title="ML under Unix", Journal="Polymorphism: The ML/LCF/Hope Newsletter", Volume="I", Number=3, Month=Dec, Year=1983, Annote="3 references." } @InCollection{Cardelli84a, Key="Cardelli", Author="Luca Cardelli", Title="A Semantics of Multiple Inheritance", BookTitle="Semantics of Data Types: International Symposium, Sophia-Antipolis, France", Publisher="Springer-Verlag", Address=NY, Editor="G. Kahn, D. B. MacQueen and G. Plotkin", Series=LNCS, Volume=173, Month=Jun, Year=1984, Pages="51-66", Note="A revised version of this paper appears in {\em Information and Computation}, volume 76, numbers 2/3, pages 138--164, February/March 1988.", Annote="18 references." } @InCollection{Cardelli84b, Key="Cardelli", Author="Luca Cardelli", Title="Amber", BookTitle="Combinators and functional programming languages : Thirteenth Spring School of the LITP, Val d'Ajol, France, May 6-10, 1985", Year=1986, Publisher="Springer-Verlag", Volume=242, Series=LNCS, Editor="Guy Cousineau and Pierre-Louis Curien, and Bernard Robinet", Number="Also AT\&T Bell Laboratories Technical Memorandum TM 11271-840924-10" } @TechReport{Cardelli86, Key="Cardelli", Author="Luca Cardelli", Title="A Polymorphic $\lambda$-calculus with Type:Type", Institution=DECSRC, Number=10, Month=May, Year=1986, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note="Order from src-report@src.dec.com", Annote="34 references." } @Article{Cardelli87, Key="Cardelli", Author="Luca Cardelli", Title="Basic Polymorphic Typechecking", Journal="Science of Computer Programming", Volume=8, Number=2, Month=Apr, Year=1987, Pages="147-172" } @InProceedings{Cardelli88, Key="Cardelli", Author="Luca Cardelli", Title="Structural Subtyping and the Notion of Power Type", BookTitle="Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, San Diego, Calif.", Organization=ACM, Month=Jan, Year=1988, Pages="70-79", Annote="Structural subtyping rules. Power types are the types of all subtypes; they allow bounded quantification. His ``abstract types'' are simply dependent product types. 14 references." } @Article{Cardelli88b, Key="Cardelli", Author="Luca Cardelli", Title="A Semantics of Multiple Inheritance", Journal="Information and Computation", Volume=76, Number="2/3", Month="February/March", Year=1988, Pages="138-164", Note="A revised version of the paper that appeared in the 1984 Semantics of Data Types Symposium, LNCS 173, pages 51--66.", Annote="20 references." } @InCollection{Cardelli88c, Key="Cardelli", Author="Luca Cardelli", Title="Typechecking Dependent Types and Subtypes", BookTitle="Foundations of Logic and Functional Programming, Workshop Proceedings, Trento, Italy, (Dec. 1986)", Editor="M. Boscarol and L Carlucci Aiello and G Levi", Series=LNCS, Volume=306, Pages="45-57", Year=1988, Annote="Type system based on dependent types. Sketch of some type checking techniques. 13 references." } @TechReport{Cardelli89, Key="Cardelli", Author="Luca Cardelli", Title="Typeful Programming", Month=May, Year=1989, Institution=DECSRC, Number=45, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note="A revised version published in {\em Formal Description of Programming Concepts}, E.J. Neuhold and M. Paul (eds.), (Springer-Verlag 1991).", Annote="Discussion of type checking in general. The language Quest." } @InCollection{Cardelli91, Key = "Cardelli", Author = "Luca Cardelli", Title = "Typeful Programming", BookTitle = "Formal Description of Programming Concepts", Publisher = "Springer-Verlag", Year = 1991, Editor = "E. J. Neuhold and M. Paul", Series = "IFIP State-of-the-Art Reports", Pages = "431-507", Address = NY, Annote = "ISBN 0-387-53961-1. 52 references." } @TechReport{Cardelli92a, Key="Cardelli", Author="Luca Cardelli", Title="Extensible Records in a Pure Calculus of Subtyping", Month=Jan, Year=1992, Institution=DECSRC, Number=81, Address="130 Lytton Avenue, Palo Alto, CA 94301", Note="Order from src-report@src.dec.com", Annote="Calculus of second-order extensible records. 21 references." } @Unpublished{Cardelli92b, Key = "Cardelli", Author = "Luca Cardelli", Title = "Typed Foundations of Object-oriented Programming", Note = "POPL '92 Tutorial", Annote = "30 references.", Month = Jan, Year = 1992 } @TechReport{Cardelli93, Key = "Cardelli", Author = "Luca Cardelli", Title = "An Implementation of F$_{<:}$", Institution = DECSRC, Year = 1993, Number = 97, Address = "130 Lytton Avenue, Palo Alto, California 94301", Month = Feb, Note="Order from src-report@src.dec.com", Annote = "16 references." } @InProceedings{Cardelli97, key = {Cardelli}, author = {Luca Cardelli}, title = {Program Fragments, Linking, and Modularization}, booktitle = {Conference Record of POPL 97: The 24TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Paris, France}, year = 1997, organization = ACM, address = NY, month = Jan, pages = {266-277-}, annote = {Separate compilation and linking. 21 references.} } @InCollection{Cardone-Coppo90, Key = "Cardone-Coppo", Author = "Felice Cardone and Mario Coppo", Title = "Two Extension of Curry's Type Inference System", BookTitle = "Logic and Computer Science", Publisher = "Academic Press", Year = 1990, Editor = "P. Odifreddi", Series = "APIC Series", Volume = 31, Pages = "19-75", Address = NY, Annote = "Recursive types and intersection types. 12 references." } @Article{Cardone-Coppo91, Key = "Cardone \& Coppo", Author = "Felice Cardone and MarioCoppo", Title = "Type Inference with Recursive Types: Syntax and Semantics", Journal = "Information and Computation", Year = 1991, Volume = 92, Number = 1, Month = May, Pages = "48-80" } @Article{Cardone91, Key = "Cardone", Author = "Felice Cardone", Title = "Recursive Types for Fun", Journal = TCS, Year = 1991, Volume = 83, Number = 1, Month = Jun, Pages = "29-56" } @InCollection{Cardone92, Key = "Cardone", Author = "Felice Cardone", Title = "An Algebraic Approach to the Interpretation of Recursive Types", BookTitle = "CAAP '92, 17th Colloquium on Trees in Algebra and Programming, Rennes, France, February 1992, Proceedings", Publisher = "Springer-Verlag", Year = 1992, Editor = "Jean-Claude Raoult", Series = LNCS, Address = NY, Volume = 581, Pages = "66-85", Annote = "26 references" } @TechReport{Carnese84, Key="Carnese", Author="Daniel J. Carnese", Title="Multiple Inheritance in Contemporary Programming Languages", Year=1984, Institution=MITLCS, Number="TR-328", Month=Sep, Annote="Explains the mechanisms for multiple inheritance in the Flavors, Traits, Smalltalk and Loops mechanisms. 117 references." } @Article{Cartwright-Fagan91, Key = "Cartwright \& Fagan", Author = "Robert Cartwright and Mike Fagan", Title = "Soft Typing", Journal = SIGPLAN, Year = 1991, Volume = 26, Number = 6, Month = Jun, Pages = "278-292", Note = "Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation (Toronto, Canada)", Annote = "Generalization of static and dynamic typing. Type checker inserts run-time checks into suspect programs. 25 references. " } @Article{Cartwright-Felleisen96, key = {Cartwright \& Felleisen}, author = {Robert Cartwright and Matthias Felleisen}, title = "Program Verification Through Soft Typing", journal = ACMCS, volume = 28, number = 2, pages = "349-351", month = Jun, year = 1996, annote = "6 references." } @InProceedings{Cartwright-Steele98, Key = "Cartwright \& Steele", Author = "Robert Cartwright and Guy L. {Steele Jr.}", Title = "Compatible Genericity with Run-time Types for the {Java} Programming Language", BookTitle = "OOPSLA '98 Conference Proceedings", Series=SIGPLAN, Volume="33(10)", Month=Oct, Year=1998, Pages="201-215", Annote = "8 references." } @InCollection{Caseau-Perron93, Key="Caseau \& Perron", Author="Yves Caseau and PLaurent Perron", Title="Attaching Second-Order Types to Methods in an Object-Oriented Language", Journal=LNCS, Publisher="Springer-Verlag", Address=NY, Editor="Oscar M. Nierstrasz", Number=707, Note="ECOOP '93 - Object-Oriented Programming 7th European Conference, Germany, July 1993. Proceedings", Pages="142-160", Annote="30 references" } @Article{Caseau93, Key = "Caseau", Author = "Yves Caseau", Title = "Efficient Handling of Multiple Inheritance Hierarchies", Journal = SIGPLAN, Volume = 28, Number = 10, Month = Oct, Year = 1993, Pages = "271-287", Note = "{\em OOPSLA '93 Proceedings}, Andreas Paepcke (editor).", Annote = "20 references." } @InProceedings{Castagna-Ghelli-Longo92, Key = "Castagna \& Ghelli \& Longo", Author = "Giuseppe Castagna and Giorgio Ghelli and Giuseppe Longo", Title = "A Calculus for Overloaded Functions with Subtyping", BookTitle= "ACM Conference on LISP and Functional Programming", Year = 1992, Pages = "182-192", Organization =ACM, Month = Jun, Note = "To appear in {\it Information and Computation}.", Annote= "23 references." } @InProceedings{Castagna-Ghelli-Longo93, Author = {G. Castagna and G. Ghelli and G. Longo}, Title = {A semantics for $\lambda$\&-{\em early}: a calculus with overloading and early binding}, BookTitle = {International Conference on Typed Lambda Calculi and Applications}, Year = {1993}, Editor = {M. Bezem and J.F. Groote}, Publisher = {Springer-Verlag}, Series = LNCS, Number = {664}, Pages = {107-123}, Address = {Utrecht, The Netherlands}, Month = Mar, Note = {TLCA'93} } @article{Castagna-Ghelli-Longo95, title = {A Calculus for Overloaded Functions with Subtyping}, author = {Giuseppe Castagna and Giorgio Ghelli and Giuseppe Longo}, pages = {115--135}, journal = "Information and Computation", month = Feb, year = 1995, volume = 117, number = 1, URL = {ftp://theory.lcs.mit.edu/pub/iandc/iandc.bib}, note = "A preliminary version appeared in {\em ACM Conference on LISP and Functional Programming\/}, June 1992 (pp.\ 182--192)" } @Article{Castagna-Leavens95, key = "Castagna \& Leavens", author = "Giuseppe Castagna and Gary T. Leavens", title = "Foundations of Object-Oriented Languages (2nd Workshop report)", journal = SIGPLAN, year = 1995, volume = 30, number = 2, pages = "5-11", month = Feb, annote = "21 references." } @InProceedings{Castagna-Pierce94, Key = {Castagna \& Pierce}, Author = {Giuseppe Castagna and Benjamin C. Pierce}, Title = "Decideable Bounded Quantification", BookTitle = "Conference Record of POPL '94: 21ST ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Portland, Oregon", Month = Jan, Year = 1994, Organization = ACM, Address = NY, Pages = "151-162", Annote = "25 references." } @InCollection{Castagna93, Key = "Castagna", Author = "G. Castagna", Title = "A Meta-Language for Typed Object-Oriented Languages", BookTitle = "Foundations of Software Technology and Theoretical Computer Science", Publisher = "Springer-Verlag", Year = 1993, Editor = "R. K. Shyamasundar", Series = LNCS, Volume = 761, Pages = "52-71", Month = Oct, Annote = "10 references." } @InProceedings{Castagna93b, Author = {G. Castagna}, Title = {${F}_{\leq}^{\&}$ : integrating parametric and "ad hoc" second order polymorphism}, BookTitle = {Proc.\ of the 4th International Workshop on Database Programming Languages}, Year = {1993}, Publisher = {Springer-Verlag}, Address = {New York City}, Series = {Workshops in Computing}, Month = Sep, Note = {To appear} } @TechReport{Castagna94, Key = "Castagna", Author = {G. Castagna}, Title = {Covariance and contravariance: conflict without a cause}, Institution = {LIENS}, Year = {1994}, Number = {liens-94-18}, Month = Oct, Note = {Available by anonymous ftp from {\tt ftp.ens.fr} in file {\tt /pub/dmi/users/castagna/covariance.dvi.Z}. To appear in ACM TOPLAS, volume 17, number 3, March 1995.} } @Article{Castagna95, Author = {Giuseppe Castagna}, Title = {Covariance and contravariance: conflict without a cause}, Journal = TOPLAS , Year = 1995, Volume = 17, Number = 3, Pages = {431-447} } @Article{Castagna95b, Key = "Castagna", Author = "Giuseppe Castagna", Title = "A Meta-Language for Typed Object-Oriented Languages", Volume = 151, Number = 2, Pages = "297-352", Publisher = "Elsevier Science", Month = Nov, Year = 1995 } @Article{Castagna96, Author = {Giuseppe Castagna}, Title = "Integration of Parametric and ``ad hoc'' Second Order Polymorphism in a Calculus with Subtyping", Journal = "Formal Aspects of Computing", Year = 1996, Volume = 8, Number = 3, Pages = "247-293", Annote = "38 references." } @Book{Castagna97, author = {Giuseppe Castagna}, title = {Object-Oriented Programming: A Unified Foundation}, publisher = {Birkhauser}, year = 1997, key = {Castagna}, series = {Progress in Theoretical Computer Science}, address = {Boston}, annote = {Many references.} } @InProceedings{Chambers-Leavens94, Key = "Chambers \& Leavens", Author = "Craig Chambers and Gary T. Leavens", Title = "Typechecking and Modules for Multi-Methods", BookTitle = "OOPSLA '94 Conference Proceedings", Series=SIGPLAN, Volume="29(10)", Month=Oct, Year=1994, Pages="1-15", Annote = "Over 47 references." } @TechReport{Chambers-Leavens94c, Key = "Chambers \& Leavens", Author = "Craig Chambers and Gary T. Leavens", Title = "Typechecking and Modules for Multi-Methods", Institution = "Department of Computer Science, Iowa State University", Year = 1994, Number = "94-03a", Address = "226 Atanasoff Hall, Ames, Iowa 50011", Month = Aug, URL = "ftp://ftp.cs.iastate.edu/pub/techreports/TR94-03/TR.ps.Z", Note = "Available by anonymous ftp from ftp.cs.iastate.edu, and by e-mail from almanac@cs.iastate.edu. Also University of Washington Department of Computer Science and Engineering TR number 94-03-01. A shorter version appears in the {\em OOPSLA '94 Conference Proceedings}, pages 1--15.", Annote = "Over 47 references." } @TechReport{Chambers-Leavens95, Key = "Chambers \& Leavens", Author = "Craig Chambers and Gary T. Leavens", Title = "Typechecking and Modules for Multi-Methods", Institution = "Department of Computer Science, Iowa State University", Year = 1995, Number = "95-19", Address = "226 Atanasoff Hall, Ames, Iowa 50011", Month = Aug, URL = "ftp://ftp.cs.iastate.edu/pub/techreports/TR95-19/TR.ps.Z", Note = "Available by anonymous ftp from ftp.cs.iastate.edu, and by e-mail from almanac@cs.iastate.edu. Also University of Washington Department of Computer Science and Engineering TR number 95-08-05. To appear in {\em ACM TOPLAS}.", Annote = "Over 47 references." } @Article{Chambers-Leavens95b, author = "Craig Chambers and Gary T. Leavens", title = "Typechecking and Modules for Multi-Methods", key = "Chambers \& Leavens", journal = "TOPLAS", year = 1995, volume = 17, number = 6, pages = "805-843", month = Nov, annote = "56 references." } @InProceedings{Chambers-Leavens96, Key = "Chambers \& Leavens", Author = "Craig Chambers and Gary T. Leavens", Title = "{BeCecil}, A Core Object-Oriented Language with Block Structure and Multimethods: Semantics and Typing", booktitle = {The Fourth International Workshop on Foundations of Object-Oriented Languages, {FOOL 4}, Paris, France}, Year = 1996, Month = Dec, note = {The proceedings are on-line at the URL http://www.cs.williams.edu/\verb|~|kim/FOOL/FOOL4.html}, annote = {Many references.}, URL = "http://www.cs.indiana.edu/hyplan/pierce/fool/chambers.ps.gz" } @TechReport{Chambers-Leavens97, Key = "Chambers \& Leavens", Author = "Craig Chambers and Gary T. Leavens", Title = "{BeCecil}, A Core Object-Oriented Language with Block Structure and Multimethods: Semantics and Typing", Institution = "Department of Computer Science, Iowa State University", Year = 1997, Number = "96-17a", Address = "226 Atanasoff Hall, Ames, Iowa 50011", Month = Apr, URL = "ftp://ftp.cs.iastate.edu/pub/techreports/TR96-17/TR.ps.gz", Note = "Available by anonymous ftp from ftp.cs.iastate.edu, and by e-mail from almanac@cs.iastate.edu. Also University of Washington Department of Computer Science and Engineering TR number UW-CSE-96-12-02.", Annote = "Many references." } @Article{Chambers-Ungar-Lee89, Key="Chambers \& Ungar \& Lee", Author="Craig Chambers and David Ungar and Elgin Lee", Title="An Efficient Implementation of {Self}, a Dynamically-Typed Object-Oriented Language Based on Prototyypes", Journal=SIGPLAN, Volume=24, Number=10, Month=Oct, Year=1989, Pages="49-70", Note="OOPSLA '89 Conference Proceedings, Norman Meyerowitz (editor), October 1989, New Orleans, Louisiana.", Annote="34 references." } @Article{Chambers-Ungar90, Key="Chambers \& Ungar", Author="Craig Chambers and David Ungar", Title="Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs", Journal=SIGPLAN, Volume=25, Number=6, Month=Jun, Year=1990, Pages="150-164", Note="Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, White Plains, NY", Annote="24 references." } @InProceedings{Chen-Hudak-Odersky92, Key = "Chen \& Hudak \& Odersky", Author = "Kung Chen and Paul Hudak and Martin Odersky", Title = "Parametric Type Classes", BookTitle= "ACM Conference on LISP and Functional Programming", Year = 1992, Pages = "170-181", Organization =ACM, Month = Jun, Annote= "19 references." } @InCollection{Chen-Odersky94, Key = "Chen \& Odersky", Author = "Kung Chen and Martin Odersky", Title = "A Type System for a Lambda Calculus with Assignments", BookTitle = "Theoretical Aspects of Computer Software", Publisher = "Springer-Verlag", Year = 1994, Editor = "Masami Hagiya and John C. Mitchell", Series = LNCS, Volume = 789, Pages = "347-364", Month = Apr, Annote = "20 references." } @Article{Claybrook-Claybrook85, Key="Claybrook \& Claybrook", Author="Billy G. Claybrook and Anne-Marie Claybrook", Title="Defining Database Views as Data Abstractions", Journal=IEEETSE, Volume="SE-11", Number=1, Month=Jan, Year=1985, Pages="3-14", Annote="How database view realized as data abstractions can be specified and implemented. 25 references." } @InProceedings{Cline-Lea90a, Key="Cline and Lea", Author="Marshall P. Cline and Doug Lea", Title="The Behavior of {C++} Classes", BookTitle="Proceedings of the Symposium on Object Oriented Programming Emphasizing Practical Applications, Marist College", Year=1990, Annote="5 references." } @UnPublished{Cline-Lea90b, Key="Cline and Lea", Author="Marshall P. Cline and Doug Lea", Title="Using Annotated C++", Month=Aug, Year=1990, Note="Obtained from the first author. Submitted to {\em C++ at Work '90}." } @Article{Cmelik-Gehani88, Key="Cmelik \& Gehani", Author="Robert F. Cmelik and Narain Gehani", Title="Dimensional Analysis with C++", Journal="IEEE Software", Month=May, Year=1988, Volume=5, Number=3, Pages="21-27", Annote="9 references." } @Article{Cohen91, Key = "Cohen", Author = "Norman H. Cohen", Title = "Type-Extension Type Tests Can Be Performed In Constant Time", Journal = TOPLAS, Year = 1991, Volume = 13, Number = 4, Month = Oct, Pages = "626-629", Annote = "2 references." } @TechReport{Compagnoni-Pierce93, Key="Compagnoni \& Pierce", Author="Adriana B. Compagnoni and Benjamin C. Pierce", Title="Multiple Inheritance via Intersection Types", Institution="University of Edinburg", Number="ECS-LFCS-93-275", Month="August", Year=1993, Annote="50 references." } @InCollection{Constable-Smith87, Key = "Constable \& Smith", Author = "Robert L. Constable and Scott Fraser Smith", Title = "Partial Objects in Constructive Type Theory", BookTitle = "Symposium on Logic in Computer Science, Ithaca, NY", Publisher = IEEE, Year = 1987, Pages = "183-193", Month = Jun, Annote = "35 references." } @TechReport{Constable-Zlatin81, Key="Constable \& Zlatin", Author="Robert L. Constable and Daniel R. Zlatin", Title="Report on the Type Theory (V3) of the Programming Logic PL/CV3", Institution="Department of Computer Science, Cornell University", Year=1981, Month=Apr, Number="TR 81-454", Annote="91 references." } @InCollection{Constable-Zlatin82, Key="Constable \& Zlatin", Author="Robert L. Constable and Daniel R. Zlatin", Title="The Type Theory of PL/CV3", BookTitle="Logics of Programs, Workshop, Yorktown Heights, New York, May 1981", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Editor="Dexter Kozen", Volume=131, Year=1982, Pages="72-93", Annote="16 references." } @Article{Constable-Zlatin84, Key="Constable \& Zlatin", Author="Robert L. Constable and Daniel R. Zlatin", Title="The Type Theory of PL/CV3", Journal=TOPLAS, Volume=6, Number=1, Month=Jan, Year=1984, Pages="94-117", Annote="32 references." } @Book{Constable-etal86, Key="Constable, {\em et al.}", Author="Robert L. Constable and S. Allen and h. Bromely and W. Cleveland and others", Title="Implementing Mathematics with the Nuprl Development System", Publisher=Prentice-Hall, Address="Englewood Cliffs, NJ", Year=1986, Annote="Hundreds of references." } @TechReport{Constable80a, Key="Constable", Author="Robert L. Constable", Title="Programs as Types", Institution="Department of Computer Science, Cornell University", Year=1980, Month=May, Number="TR 80-423", Annote="Constructive type theory leading to a logic of programs. The data types include specifications. 37 references." } @InProceedings{Constable80b, Key="Constable", Author="Robert L. Constable", Title="Programs and Types", BookTitle="21st IEEE Symp. on Foundations of Computer Science, Syracuse, New York", Publisher="IEEE", Year=1980, Pages="118-128", Annote="Propositions are types, that is, types are both first and second order statements, both specifications and data types. 59 references." } @TechReport{Constable82, Key="Constable", Author="Robert L. Constable", Title="Intentional Analysis of Functions and Types", Institution="University of Edinburgh", Type="Edinburgh Computer Science Report", Year=1982, Number="118-87" } @TechReport{Constable83, Key = "Constable", Author = "R. L. Constable", Title = "Mathematics as Programming", Institution = "Department of Computer Science, Cornell University", Year = 1983, Number = "TR 83-565", Address = "Ithaca, New York 14853", Month = Jul, Annote = "27 references." } @InCollection{Constable85, Key="Constable", Author="Robert L. Constable", Title="Constructive Mathematics as a Programming Logic I: Some Principles of Theory", BookTitle="Topics in the Theory of Computation", Editor="Marek Karpinski and Jan van Leeuwen", Publisher="Elsevier North-Holland, Inc.", Series="Annals of Discrete Mathematics", Number=24, Address=NY, Year=1985, Pages="21-37", Annote="38 references." } @InCollection{Constable89, Key="Constable", Author="Robert L. Constable", Title="Assigning Meaing to Proofs: a semantic basis for problem solving environments", Booktitle="Constructive Methods in Computing Science", Series="NATO ASI Series", Volume="F55", Editor="Manfred Broy", Publisher="Springer-Verlag", Address=NY, Pages="63-91", Year=1989, Annote="Nuprl proof developement system. Good tutorial on constructive type theory and the Curry-Howard isomorphism. 23 references." } @InProceedings{Cook-Hill-Canning90, Key="Cook \& Hill \& Canning", Author="William R. Cook and Walter L. Hill and Peter S. Canning", Title="Inheritance is Not Subtyping", BookTitle="Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, San Francisco, California", Month=Jan, Year=1990, Pages="125-135", Note="Also STL-89-17, Software Technology Laboratory, Hewlett-Packard Laboratories, Palo Alto, Calif., July 1989", Annote="9 references." } @InProceedings{Cook89b, Key="Cook", Author="W. R. Cook", Title="A Proposal for Making Eiffel Type-safe", BookTitle="{ECOOP'89}, European Conference on Object-Oriented Programming, British Computer Society Workshop Series", Editor="Stephen Cook", Month=Jul, Year=1989, Pages="57-70", Publisher="Cambridge University Press", Annote="8 references." } @Article{Cook89c, Key = "Cook", Author = "W. R. Cook", Title = "A Proposal for Making Eiffel Type-safe", Journal = "The Computer Journal", Year = 1989, Volume = 32, Number = 4, Month = Aug, Pages = "305-311" } @InCollection{Cook91, Key = "Cook", Author = "William R. Cook", Title = "Object-Oriented Programming Versus Abstract Data Types", BookTitle = "Foundations of Object-Oriented Languages, REX School/Workshop, Noordwijkerhout, The Netherlands, May/June 1990", Publisher = "Springer-Verlag", Year = 1991, Editor = "J. W. de Bakker and W. P. de Roever and G. Rozenberg", Series = LNCS, Volume = 489, Pages = "151-178", Address = NY, Annote = "45 references." } @Article{Cook92, Key = "Cook", Author = "W. R. Cook", Title = "Interfaces and Specifications for the {Smalltalk-80} Collection Classes", Journal = SIGPLAN, Month = Oct, Year = 1992, Volume = 27, Number = 10, Pages = "1-15", Note = "{\em OOPSLA '92 Proceedings}, Andreas Paepcke (editor).", Annote = "21 references." } @InCollection{Coppo-Dezani-Ciancaglini-Venneri80, Key="Coppo \& Dezani-Ciancaglini \& Venneri", Author="M. Coppo and M. Dezani-Ciancaglini and B. Venneri", Title="Principal Type Schemes and lambda-Calculus Semantics", BookTitle="To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism", Editor="J. P. Seldin and J. R. Hindley", Publisher="Academic Press, Inc.", Address=NY, Year=1980, Pages="535-560", Annote="13 references." } @InCollection{Coppo-Giannini92, Key = "Coppo \& Giannini", Author = "M. Coppo and P. Giannini", Title = "A Complete Type Inference Algorithm for Simple Intersection Types", BookTitle = "CAAP '92, 17th Colloquium on Trees in Algebra and Programming, Rennes, France, February 1992, Proceedings", Publisher = "Springer-Verlag", Year = 1992, Editor = "Jean-Claude Raoult", Series = LNCS, Address = NY, Volume = 581, Pages = "102-123", Annote = "22 references" } @InCollection{Coppo80, Key="Coppo", Author="Mario Coppo", Title="An Extended Polymorphic Type System for Applicative Languages", BookTitle="Mathematical Foundations of Computer Science, Proceedings of the Ninth Symposium, Rydzyna, Poland", Publisher="Springer-Verlag", Editor="P. Demb\'{i}nski", Series=LNCS, Volume=88, Year=1980, Pages="194-204", Annote="Extends ML-like typing. 17 references." } @Article{Coppo83, Key="Coppo", Author="Mario Coppo", Title="On the Semantics of Polymorphism", Journal="Acta Informatica", Volume=20, Number=2, Month=Nov, Year=1983, Pages="159-170", Annote="Semantic characterization of terms which can be assigned a type. 16 references." } @UnPublished{Coquand-Huet84, Key="Coquand \& Huet", Author="Thierry Coquand and Gerard Huet", Title="A Theory of Constructions", Month=Jun, Year=1984, Note="Paper presented at the International Symposium on Semantics of Data Types, Sophia-Antipolis, but not published in the proceedings." } @TechReport{Coquand-Huet85a, Key="Coquand \& Huet", Author="T. Coquand and G. Huet", Title="Constructions: a Higher Order Proof System for Mechanizing Mathematics", Institution="INRIA", Address="Rocquencourt, France", Number=401, Month=May, Year=1985 } @InCollection{Coquand-Huet85b, Key="Coquand \& Huet", Author="T. Coquand and G. Huet", Title="Constructions: a Higher Order Proof System for Mechanizing Mathematics", BookTitle="EUROCAL '85, (European Converence on Computer Algebra; Linz, Austria)", Editor="Bruno Buchberger", Series=LNCS, Volume=203, Month=Apr, Year=1985, Pages="151-184", Annote="Early version of the calculus of constructions. Many mathematical examples. 57 references." } @Article{Coquand-Huet88, Key="Coquand \& Huet", Author="Thierry Coquand and G\'{e}rard Huet", Title="The Calculus of Constructions", Journal="Information and Computation", Volume=76, Number="2/3", Month="February/March", Year=1988, Pages="95-120", Annote="48 references." } @Article{Cormack-Wright90, Key="Cormack \& Wright", Author="G. V. Cormack and A. K. Wright", Title="Type-dependent Parameter Inference", Journal=SIGPLAN, Volume=25, Number=6, Month=Jun, Year=1990, Pages="127-136", Note="Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, White Plains, NY", Annote="27 references." } @InProceedings{Cousot97, key = {Cousot}, author = {Patrick Cousot}, title = {Types as Abstract Interpretation}, booktitle = {Conference Record of POPL 97: The 24TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Paris, France}, year = 1997, organization = ACM, address = NY, month = Jan, pages = {316-331}, annote = {41 references.} } @Article{Cox84, Key="Cox", Author="Brad J. Cox", Title="Message/Object Programming: An Evolutionary Change in Programming Technology", Journal="IEEE Software", Month=Jan, Year=1984, Volume=1, Number=1, Pages="50-61", Annote="Argues for hybrid languages with both object-oriented and procedure-oriented constructs. Description of benefits of object-oriented style. Integration of objects in language and operating system as in Hydra. 7 references." } @Book{Cox86, Key="Cox", Author="Brad J. Cox", Title="Object Oriented Programming: an Evolutionary Approach", Publisher=Addison-Wesley, Address="Reading, Mass.", Year=1986, Annote="Discusses Objective-C." } @Article{Crary-Harper-Puri99, key = {Crary \& Harper \& Puri}, author = {Karl Crary and Robert Harper and Sidd Puri}, title = {What is a Recursive Module?}, journal = SIGPLAN, year = 1999, volume = 34, number = 5, month = May, pages = {50-63}, note = {Proceedings of the 1999 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).}, annote = {23 references.} } @InProceedings{Crary-Walker-Morrisett99, key = {Crary \& Walker \& Morrisett}, author = {Karl Crary and David Walker and Greg Morrisett}, title = {Typed Memory Management in a Calculus of Capabilities}, booktitle = {Conference Record of POPL 99: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas}, year = 1999, organization = ACM, address = NY, month = Jan, pages = {262-275}, annote = {41 references.} } @InProceedings{Crary-Weirich-Morrisett99, key = {Crary \& Weirich \& Morrisett}, author = {Karl Crary and Stephanie Weirich and Greg Morrisett}, title = {Intensional Polymorphism in Type-Erasure Semantics}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '98)", Series = SIGPLAN, Volume = "34(1)", Month = Jun, Year = 1999, organization = ACM, pages = {301-312}, annote = {Supports the ability to dispatch to different routines baed on run-time types. 28 references.} } @InProceedings{Crary97, key = {Crary}, author = {Karl Crary}, title = {Foundations for the Implementation of Higher-Order Subtyping}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '97)", Series = SIGPLAN, Volume = "32(8)", Month = Aug, Year = 1997, organization = ACM, pages = {125-135}, annote = {Translates a higher-order calculus with subtyping to one that uses explicit coercions in a subsumption-free calculus. 31 references.} } @Book{Crole93, Key = "Crole", Author = "Roy Crole", Title = "Categories for Types", Publisher = "Cambridge University Press", Year = 1993, Address = "Cambridge" } @InCollection{Curien-Ghelli90, Key="Curien \& Ghelli", Author="P.-L. Curien and G. Ghelli", Title="Coherence of Subsumption", BookTitle="CAAP '90 15th Colloquium on Trees in Algebra and Programming, Copenhagen, Denmark", Month=May, Year=1990, Editor="A. Arnold", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=431, Pages="132-146" } @Book{Curien86, Key = "Curien", Author = "P.-L. Curien", Title = "Categorical combinators, sequential algorithms, and functional programming", Publisher = "Wiley", Year = 1986, Address = NY, Note = "Research notes in theorectical computer science Includes bibliographical references and index. QA267.3 .C87 1986" } @InProceedings{Curry-Ayers83, Key="Curry \& Ayers", Author="Gael A. Curry and Robert M. Ayers", Title="Experience with Traits in the Xerox Star Workstation", BookTitle="Workshop on Reusability in Programming, Newport, R.I.", Organization="Advance papers", Year=1983, Month=Sep, Pages="83-96", Note="A revised version appears in {\em IEEE Transactions on Software Engineering}, Volume SE-10, Num. 5, Sept. 1984, pages 519-527.", Annote="Explains the implementation of the Traits mechanism. Experience in its usage. Problems with efficiency of multiple inheritance. Major problem is access to trait storage in instances at run-time must in general use indirection. This is not a problem in single inheritance. Multiple inheritance not necessary for most of the Star software. 8 references" } @Article{Curry-etal82, Key="Curry, {\em et al.}", Author="Gael Curry and Larry Baer and Daniel Lipkie and Bruce Lee", Title="Traits: An Approach to Multiple Inheritance Subclassing", Journal="SIGOA Newsletter", Month=Jun, Year=1982, Volume=3, Number="1 and 2", Pages="1-9", Note="ACM-SIGOA Conference on Office Automation Systems, Philadelphia, Penn.", Annote="Multiple inheritance, using acyclic DAG. Saves code. 6 references." } @PhDThesis{Curtis90, Key="Curtis", Author="Pavel Curtis", Title="Constrained Quantification in Polymorphic Type Analysis", School="Cornell University", Month=Jan, Year=1990, Note="Xerox PARC TR, CSL-90-1", Annote="28 references." } @InProceedings{Damas-Milner82, Key="Damas \& Milner", Author="L. Damas and R. Milner", Title="Principal Type-Schemes for Functional Programs", BookTitle="Conference Record of the Ninth Annual ACM Symposium on Principles of Programming Languages, Albuquerque, New Mexico", Year=1982, Organization=ACM, Month=Jan, Pages="207-212", Annote="Shows that the ML type assignment algorithm finds the most general type possible. 6 references." } @InCollection{Damiani-Giannini94, Key = "Damiani \& Giannini", Author = "Ferruccio Damiani and Paola Giannini", Title = "A Decidable Intersection Type System based on Relevance", BookTitle = "Theoretical Aspects of Computer Software", Publisher = "Springer-Verlag", Year = 1994, Editor = "Masami Hagiya and John C. Mitchell", Series = LNCS, Volume = 789, Pages = "707-725", Month = Apr, Annote = "21 references." } @InCollection{Damm-Fehr78, Key="Damm \& Fehr", Author="W. Damm and E. Fehr", Title="On the Power of Self-Application and Higher Type Structures", BookTitle="Automata, Languages and Programming, Fifth Colloquium, Udine, July 1978", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=62, Editor={G. Ausiello and C. B\"{o}hm}, Year=1978, Pages="177-191", Annote="25 references." } @InCollection{Damm94, Key = "Damm", Author = "Flemming M. Damm", Title = "Subtyping with Union Types, Intersection Types and Recursive Types", BookTitle = "Theoretical Aspects of Computer Software", Publisher = "Springer-Verlag", Year = 1994, Editor = "Masami Hagiya and John C. Mitchell", Series = LNCS, Volume = 789, Pages = "687-706", Month = Apr, Annote = "16 references." } @Article{Danforth-Tomlinson88, Key="Danforth \& Tomlinson", Author="Scott Danforth and Chris Tomlinson", Title="Type Theories and Object-Oriented Programming", Journal=ACMCS, Volume=20, Number=1, Month=Mar, Year=1988, Pages="29-72", Annote="Good survey of types theories and how they can be applied to understanding and type-checking object-oriented programs. Distinguishes representation relationships from behavioral relationships. 82 references." } @InProceedings{Davenport-Jenks80, Key="Davenport \& Jenks", Author="James H. Davenport and Richard D. Jenks", Title="MODLISP", BookTitle="Conference Record of the 1980 LISP Conference, Stanford, Calif.", Organization="The LISP Conference", Month=Aug, Year=1980, Pages="65-74", Note="Also IBM Research Report RC 8537, Oct. 1980", Annote="LISP-like language with modes. Overloading and dynamic construction of new parameterized types. 20 references." } @InProceedings{Day-etal95, Author="Mark Day and Robert Gruber and Barbara Liskov and Andrew C. Meyers", Title="Subtypes vs. where clauses: Constraining parametric polymorphism", Booktitle="OOPSLA '95 Conference Proceedings", Series=SIGPLAN, Volume="30(10)", Year = 1995, Pages="156-168" } @InProceedings{Demers-Donahue80a, Key="Demers \& Donahue", Author="Alan J. Demers and James E. Donahue", Title="Data Types, Parameters and Type Checking", Pages="12-23", BookTitle="Conference Record of the Seventh Annual ACM Symposium on Principles of Programming Languages, Las Vegas, Nevada", Organization=ACM, Month=Jan, Year=1980, Annote="Description of type-checking in Russell and motivation in terms of traditional systems. 11 references." } @InProceedings{Demers-Donahue80b, Key="Demers \& Donahue", Author="Alan Demers and James Donahue", Title={"Type Completeness" as a Language Design Principle}, Pages="234-244", BookTitle="Conference Record of the Seventh Annual ACM Symposium on Principles of Programming Languages, Las Vegas, Nevada", Organization=ACM, Month=Jan, Year=1980, Annote="Principle of type-completeness used to evaluate other languages and as a framework for language design. Type-completeness is 1) giving every expression a type, 2) having an expression for every type and 3) having the ability to parameterize any expression. 11 references." } @TechReport{Demers-Donahue80c, Key="Demers \& Donahue", Author="A. Demers and J. E. Donahue", Title="The Russell Semantics: An Exercise in Abstract Data Types", Institution="Department of Computer Science, Cornell University", Year=1980, Month=Oct, Number="TR 80-431", Annote="Denotational Semantics of Russell as a metacircular interpreter. 11 references." } @InProceedings{Demers-Donahue83, Key="Demers \& Donahue", Author="Alan Demers and James Donahue", Title="Making Variables Abstract: an Equational Theory for Russell", BookTitle="Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Organization=ACM, Month=Jan, Year=1983, Pages="59-72", Annote="14 references." } @InProceedings{Demers-etal77, Key="Demers, {\em et al.}", Author="A. J. Demers and J. E. Donahue and R. T. Teitelbaum and J. H. Williams", Title="Encapsulated Data Types and Generic Procedures", Pages="171-214", BookTitle="Design and Implementation of Programming Languages", Publisher="Springer-Verlag", Address=NY, Year=1977, Editor="J. H. Williams and D. A. Fischer", Annote="Meaning of data type and encapsulation. 17 references." } @Article{Denvir79, Key="Denvir", Author="B. T. Denvir", Title="On Orthogonality in Programming Languages", Journal=SIGPLAN, Month=Jul, Volume=14, Number=7, Pages="18-30", Year=1979, Annote="Types as types. Considers various features of programming languages with respect to orthogonality. 13 references." } @Article{Deutsch81, Key="Deutsch", Author="L. Peter Deutsch", Title="Constraints: A Uniform Model for Data and Control", Journal=SIGPLAN, Month=Jan, Volume=16, Number=1, Pages="118-120", Year=1981, Note="Proceedings of the Workshop on Data Abstraction, Databases and Conceptual Modeling, June, 1980", Annote="Constraints and a sort of abstract data type. 5 references." } @Article{Deux-etal, Key = "Deux, {\em et al.}", Author = "O. Deux", Title = "The $O_2$ System", Journal = "CACM", Year = 1991, Volume = 34, Number = 10, Month = Oct, Pages = "34-48", Annote = "23 references." } @InProceedings{DiGianantonio-Honsell-Liquori98, key = {Di Gianantonio \& Honsell \& Liquori}, author = {Pietro Di Gianantonio and Furio Honsell and Luigi Liquori}, title = {A Lambda Calculus of Objects with Self-Inflicted Extension}, BookTitle = "OOPSLA '98 Conference Proceedings", Series = SIGPLAN, Volume = "33(10)", Month = Oct, Year = 1998, organization = ACM, pages = {166-178}, annote = {A study of functional prototype-based languages. Has a notion of flexible width-subtyping. 25 references.} } @PhdThesis{Dinesh92, Key = "Dinesh", Author = "T. B. Dinesh", Title = "Object-Oriented Programming: Inheritance to Adoption", School = "University of Iowa", Year = 1992, Address = "Iowa City, Iowa", Month = "May", Annote = "Generalizes the notions of inheritance and delegation. Inheritance with adoption results in some benefits when inherited types are not subtypes. 61 references." } @Article{Diwan-WcKinley-Moss98, key = {Diwan \& WcKinley \& Moss}, author = {Amer Diwan and Kathryn S. WcKinley and J. Eliot B. Moss}, title = {Type-Based Alias Analysis}, journal = SIGPLAN, year = 1998, volume = 33, number = 5, month = May, pages = {106-117}, note = {Proceedings of the 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).}, annote = {36 references.} } @InCollection{Dodani-Tsai92, Key = "Dodani \& Tsai", Author = "Mahesh Dodani and Chung-Shin Tsai", Title = "ACTS: A Type System for Object-Oriented Programming Based on Abstract and Concrete Classes", BookTitle = "ECOOP '92, European Conference on Object-Oriented Programming, Utrecht, The Netherlands", Publisher = "Springer-Verlag", Year = 1992, Editor = "Ole Lehrmann Madsen", Series = LNCS, Address = NY, Volume = 615, Pages = "309-328", Annote = "27 references" } @Article{Dodani-Tsai96, key = {Dodani \& Tsai}, author = {Mahesh Dodani and Chung-Shin Tsai}, title = {A reliable and flexible type system for object-oriented programming}, journal = {Object Oriented Systems}, year = 1996, volume = 3, number = 2, month = Jun, pages = {87-121}, annote = {24 references.} } @InCollection{Doh-Schmidt92, Key = "Doh \& Schmidt", Author = "Kyung-Goo Doh and David A. Schmidt", Title = "Extraction of Strong Typing Laws from Action Semantics Definitions", BookTitle = "ESOP '92, 4th European Symposium on Programming, Rennes, France, February 1992, Proceedings", Publisher = "Springer-Verlag", Year = 1992, Editor = "Bernd Krieg-Bruckner", Series = LNCS, Address = NY, Volume = 582, Pages = "151-166", Annote = "36 references" } @Article{Donahue-Demers85, Key="Donahue \& Demers", Author="James Donahue and Alan Demers", Title="Data Types are Values", Journal=TOPLAS, Month=Jul, Year=1985, Volume=7, Number=3, Pages="426-445", Annote="Description of the Russell type system. Argues against type inference. Gives a denotational meaning to the value of a data type parameter, which is a set of operations. Gives the rules for type checking Russell. Argues that Russell is strongly typed, both in the sense that it each expression has a type and no parameter/argument mismatches are allowed and in the sense that no misinterpretation of values is possible. Thus Russell programs have representation independence. 32 references." } @InProceedings{Donahue85, Key="Donahue", Author="Integrating Programming Languages with Database Systems", Title="James Donahue", BookTitle="Persistence and Data Types: Papers for the Appin Workshop", Month=Aug, Year=1985, Organization="Universities of Glasgow and St. Andrews, Departments of Computer Science", Note="Persistent Programming Research Report 16", Pages="331-341", Annote="10 references." } @Article{Dornic-etal92, Key="Dornic, {\em at al}", Author="Vincent Dornic and Pierre Jouvelot and David Torczon", Title="Polymorphic Time Systems fpr Estimating Program Complexity", Journal="ACM letters on Programming Languauges and Systems", Year=1992, Month=Mar, Volume=1, Number=1, Pages="33-45", Annote="22 references. " } @TechReport{Dowek92, Key = "Dowek", Author = "Gilles Dowek", Title = "A Second-Order Pattern Matching Algorithm for the Cube of Typed $\lambda$-calculi", Institution = "INRIA", Year = 1992, Number = 1585, Month = Jan, Annote = "22 references." } @InProceedings{Dowek93, Key ={Dowek}, Author = {Dowek}, Title = {The Undecidability of typability of lambda-pi-calculus}, BookTitle = {International Conference on Typed Lambda Calculi and Applications}, Year = {1993}, Editor = {M. Bezem and J.F. Groote}, Publisher = {Springer-Verlag}, Series = LNCS, Number = {664}, Pages = {139-145}, Address = {Utrecht, The Netherlands}, Month = Mar, Note = {TLCA'93}, Annote = {15 references} } @InCollection{Drossopoulou-Eisenbach97, key = {Drossopoulou \& Eisenbach}, author = {Sophia Drossopoulou and Susan Eisenbach}, title = {Java is Type Safe --- Probably}, booktitle = {ECOOP '97 --- Object-Oriented Programming 11th European Conference, Jyv\"{a}skyl\"{a}, Finland}, publisher = {Springer-Verlag}, year = 1997, editor = {Mehmet Ak\c{s}it and Satoshi Matsuoka}, volume = 1241, series = LNCS, address = NY, month = Jun, pages = {389-418}, annote = {21 references.} } @Article{Drossopoulou-Eisenbach-Khurshid99, key = {Drossopoulou \& Eisenbach \& Khurshid}, author = {Sophia Drossopoulou and Susan Eisenbach and Sarfraz Khurshid}, title = {Is the Java Type System Sound?}, journal = TAPOS, year = 1999, volume = 5, number = 1, pages = {3-24}, annote = {At least a subset is. 34 references.} } @InProceedings{Drossopoulou-Wragg-Eisenbach98, key = {Drossopoulou \& Wragg \& Eisenbach}, author = {Sophia Drossopoulou and David Wragg and Susan Eisenbach}, title = {What {\em is} {Java} Binary Compatability?}, BookTitle = "OOPSLA '98 Conference Proceedings", Series = SIGPLAN, Volume = "33(10)", Month = Oct, Year = 1998, organization = ACM, pages = {341-358}, annote = {20 references.} } @TechReport{Duba-Harper-MacQueen90, Key = "Duba \& Harper \& MacQueen", Author = "Bruce F. Duba and Robert Harper and David MacQueen", Title = "Typing First-Class Continuations in ML", Institution = CMU, Year = 1990, Number = "CMU-CS-90-184", Note = "Appears in POPL '91", Annote = "42 references." } @InProceedings{Dubois-Rouaix-Weis95, Key = {Dubois \& Rouaix \& Weis}, Author = {Catherine Dubois and Fran\c{c}ois Rouaix and Pierre Weis}, Title = "Extensional Polymorphism", BookTitle = "Conference Record of POPL '95: 22nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, Calif.", Month = Jan, Year = 1995, Organization = ACM, Address = NY, Pages = "118-", Annote = "A framework for type checking ad hoc polymorphic functions. 23 references." } @InProceedings{Duggan-Sourelis96, key = {Duggan \& Sourelis}, author = {Dominic Duggan and Constantinos Sourelis}, title = {Mixin Modules}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '96)", Series = SIGPLAN, Volume = "31(6)", Month = Jun, Year = 1996, organization = ACM, pages = {262-273}, annote = {Allows recursive definitions to span module boundaries. 32 references.} } @Article{Duggan99, author = {Dominic Duggan}, title = {Dynamic Typing for Distributed Programming in Polymorphic Languages}, journal = TOPLAS, year = 1999, key = {Duggan}, volume = 21, number = 1, month = Jan, pages = {11-45}, annote = {Dynamic type dispatch with refinement kinds. 53 references.} } @Article{Dungan79, Key="Dungan", Author="Dona M. Dungan", Title="Bibliography on Data Types", Journal=SIGPLAN, Volume=14, Number=11, Month=Nov, Year=1979, Pages="31-59", Annote="This is a complete annotated bibliography, covering data types in specific languages (52 references), data type abstractions (116 references), and theoretical foundations (41 references)." } @PhDThesis{Dungan80, Key="Dungan", Author="Dona Marie Dungan", Title="Variations on Data Type Equivalence", School="University of Iowa", Year=1980 } @InProceedings{Dzeng-Haynes94, key = {Dzeng \& Haynes}, author = {Hsianlin Dzeng and Christopher Haynes}, title = {Type Reconstruction for Variable-Arity Procedures}, booktitle = {Proceedings of the 1994 ACM Conference on LISP and Functional Programming}, year = 1994, organization = ACM, month = Jun, pages = "239-249", } @Proceedings{ECOOP87, Key="ECOOP", Title="ECOOP '87, European Conference on Object-Oriented Programming, Paris, France", Editor="Jean Bezivin and others", Publisher="Springer-Verlag", Address=NY, Month=Jun, Year=1987, Note="Lecture Notes in Computer Science, Volume 276" } @Proceedings{ECOOP88, Key="ECOOP", Title="ECOOP '88, European Conference on Object-Oriented Programming, Oslo, Norway", Editor="S. Gjessing and K. Nygaard", Publisher="Springer-Verlag", Address=NY, Month=Aug, Year=1988, Note="Lecture Notes in Computer Science, Volume 322" } @Proceedings{ECOOP89, Key="ECOOP", Title="{ECOOP'89}, European Conference on Object-Oriented Programming, British Computer Society Workshop Series", Editor="Stephen Cook", Month=Jul, Year=1989, Publisher="Cambridge University Press" } @InProceedings{Eidorff-etal99, key = {Eidorff, {\em et al.}}, author = {Peter Harry Eidorff and Fritz Henglein and Christian Mossin and Henning Niss and Morten Heine S{\o}rensen and Mads Tofte}, title = {{AnnoDomini}: From Type Theory to Year 2000 Conversion Tool}, booktitle = {Conference Record of POPL 99: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas}, year = 1999, organization = ACM, address = NY, month = Jan, pages = {1-14}, annote = {10 references.} } @InProceedings{Eifrig-etal94, key = "Eifrig, {\em et al.}", author = "Jonathan Eifrig and Scott Smith and Valery Trifonov and Amy Zwarico", title = "Application of OOP Type Theory: State, Decidability, Integration", volume = 29, number = 10, series = SIGPLAN, pages = "16-30", booktitle = "OOPSLA '94 Conference Proceedings", year = 1994, organization = ACM, month = Oct, annote = "19 references." } @InProceedings{Eifrig-etal94b, key = "Eifrig, {\em et al.}", Author = "Jonathan Eifrig and Scott Smith and Valery Trifonov", Title = "Type Inference for Recursively Constrained Types and its Application to {OOP}", Booktitle = "Mathematical Foundations of Programming Semantics, New Orleans", Series = "Electronic Notes in Theoretical Computer Science", Publisher = "Elsevier", Volume = 1, Year = "1995", Note = "http://www.elsevier.nl/locate/entcs/volume1.html" } @inproceedings{Eifrig-etal95, key = "Eifrig, {\em et al.}", Author = "J. Eifrig and S. Smith and V. Trifonov", Title = "Sound polymorphic type inference for objects", Booktitle="OOPSLA '95 Conference Proceedings", Series=SIGPLAN, Volume="30(10)", Year = 1995, pages="169-184" } @InCollection{Ernst99, key = {Ernst}, author = {Erik Ernst}, title = {Propogating Class and Method Composition}, booktitle = {ECOOP '99 --- Object-Oriented Programming 13th European Conference, Lisbon Portugal}, publisher = {Springer-Verlag}, year = 1999, editor = {Rachid Guerraoui}, volume = 1628, series = LNCS, address = NY, month = Jun, pages = {67-91}, annote = {A generalization of the Beta language, gbeta, which allows methods to be combined in a way that is type checked. Includes block structure. 25 references.} } @InCollection{Evan-Schmidt90, Key="Evan \& Schmidt", Author="Susan Evan and David A. Schmidt", Title="Type Inference for Action Semantics", BookTitle="ESOP '90 3rd European Symposium on Programming, Copenhagen, Denmark", Month=May, Year=1990, Pages="118-133", Editor="N. Jones", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=432, Annote="26 references." } @InProceedings{Fabry76, Key="Fabry", Author="R. Fabry", Title="How to Design A System In Which Modules Can Be Changed On The Fly", BookTitle="Proceedings of the Second International Conference on Software Engineering", Organization=IEEE, Month=Oct, Year=1976, Annote="Places version numbers on objects so that translation routines can be invoked when necessary." } @PhdThesis{Fagan90, author = {Michael Fagan}, title = {Soft Typing: An Approach to Type Checking for Dynamically Typed Languages}, school = {Rice University}, year = 1992, key = {Fagan} } @TechReport{Fairbairn82, Key="Fairbairn", Author="J. Fairbairn", Title="Ponder and its Type System", Institution="University of Cambridge, Computer Laboratory", Year=1982, Month=Nov, Number=31, Note="Reprinted in {\em Polymorphism: The ML/LCF/Hope Newsletter}, I(2), April, 1983.", Annote="Small set of primitives and few built-in constructs. Polymorphic and normal order functional language. Mechanisms for user-defined pairs and disjoint union types. Third-man argument applied to types as values in Russell. Thus adopts ML-style polymorphism, but argument types must be specified and type variables must be declared explicitly. Most general type does not exist in general. Limits power of type generators so that generated types can be compared. Locally quantified polymorphic types with parameterized generators and capsules. 9 references." } @InProceedings{Fairbairn85, Key="Fairbairn", Author="Jon Fairbairn", Title="A New Type-Checker for a Functional Language", BookTitle="Persistence and Data Types: Papers for the Appin Workshop", Month=Aug, Year=1985, Organization="Universities of Glasgow and St. Andrews, Departments of Computer Science", Note="Persistent Programming Research Report 16", Pages="119-138", Annote="Type checker for Ponder. 10 references." } @TechReport{Fairbairn89, Key="Fairbairn", Author="Jon Fairbairn", Title="Some Types with Inclusion Properties in $\forall$, $\rightarrow$, $\mu$", Institution="University of Cambridge, Computer Laboratory", Year=1989, Month=Jun, Number=171, Annote="6 references." } @PhDThesis{Fasel81, Key="Fasel", Author="Joseph Henry Fasel, III", Title="Programming Languages as Abstract Data Types: Definition and Implementation", School="Purdue University", Year=1981 } @TechReport{Fickas-etal88, Key="Fickas, {\em et al.}", Author="S. Fickas and E. Doerry and D. Meyer and P. Miller", Title="Design Issues in a Minimal Language to Support Lisp-based, Object-based, and Rule-based Programming", Institution="Computer Science Department, University of Oregon", Address="Eugene, Oregon", Number="CIS-TR-88-16", Month=Dec, Year=1988, Annote="13 references." } @Article{Fischer-Mitchell98, key = {Fischer \& Mitchell}, author = {Kathleen Fischer and John C. Mitchell}, title = {On the Relationship Between Classes, Objects and Data Abstraction}, journal = TAPOS, year = 1998, volume = 4, number = 1, pages = {3-25}, annote = {Combining prototypes with standard abstraction mechanisms. How to gain more precise control over the class hierarchy using standard data abstraction, enhanced with subtype constraints. 50 references.} } @Article{Fischer-Reppy99, key = {Fischer \& Reppy}, author = {Kathleen Fischer and John Reppy}, title = {The design of a class mechanism for {Moby}}, journal = SIGPLAN, year = 1999, volume = 34, number = 5, month = May, pages = {37-49}, note = {Proceedings of the 1999 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).}, annote = {35 references.} } @InProceedings{Flatt-Krishnamurthi-Felleisen98, key = {Flatt \& Krishnamurthi \& Felleisen}, author = {Matthew Flatt and Shriram Krishnamurthi and Matthias Felleisen}, title = {Classes and Mixins}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {171-183}, annote = {29 references.} } @Article{Flatt-Felleisen98, key = {Flatt \& Felleisen}, author = {Matthew Flatt and Matthias Felleisen}, title = {Units: Cool Modules for HOT Languages}, journal = SIGPLAN, year = 1998, volume = 33, number = 5, month = May, pages = {236-248}, note = {Proceedings of the 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).}, annote = {31 references.} } @InCollection{Fokkinga81, Key="Fokkinga", Author="Maarten M. Fokkinga", Title="On the Notion of Strong Typing", BookTitle="Algorithmic Languages", Publisher="IFIP, North-Holland", Address="Amsterdam", Year=1981, Pages="305-320", Editor="J. W. de Bakker and J. C. van Vliet", Annote="19 references." } @Article{Ford-Hansche82, Key="Ford \& Hansche", Title="Optional, Repeatable and Varying Type Parameters", Author="Gary Ford and Brian Hansche", Journal=SIGPLAN, Volume=17, Number=2, Month=Feb, Year=1982, Pages="41-48", Annote="Specific proposals for these mechanisms in a language resembling Algol 68. 5 references." } @Article{Fortune-Leivant-ODonnell83, Key="Fortune \& Leivant \& O'Donnell", Author="Steven Fortune and Daniel Leivant and Michael O'Donnell", Title="The Expressiveness of Simple and Second-order Type Structures", Year=1983, Volume=30, Journal=JACM, Pages="151-185", Annote="Theoretical treatment of what functions are definable and of normalizability. 58 references." } @Article{Foster-Faehndrich-Aiken99, key = {Foster \& F\"{a}hndrich \& Aiken}, author = {Jeffrey S. Foster and Manuel F\"{a}hndrich and Alexander Aiken}, title = {A Theory of Type Qualifiers}, journal = SIGPLAN, year = 1999, volume = 34, number = 5, month = May, pages = {192-203}, note = {Proceedings of the 1999 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).}, annote = {Const in C++ is an example of a type qualifier. Gives a useful form of subtyping. 34 references.} } @Article{Freeman-Pfenning91, Key = "Freeman \& Pfenning", Author = "Tim Freeman and Frank Pfenning", Title = "Refinement Types for ML", Journal = SIGPLAN, Year = 1991, Volume = 26, Number = 6, Month = Jun, Pages = "268-277", Note = "Proceedings of the ACM SIGPLAN '91 Conference on Programming Language Design and Implementation (Toronto, Canada)", Annote = "Recursively defined subtypes of user-defined types. Type inferece system based on interesection types and abstract interpretation. 18 references." } @InProceedings{Freund-Mitchell98, key = {Freund \& Mitchell}, author = {Stephen N. Freund and John C. Mitchell}, title = {A Type System for Object Initialization in the {Java} Bytecode Language}, BookTitle = "OOPSLA '98 Conference Proceedings", Series = SIGPLAN, Volume = "33(10)", Month = Oct, Year = 1998, organization = ACM, pages = {310-328}, annote = {17 references.} } @TechReport{Fruhwirth89a, Key="Fruhwirth", Author={Thom W. Fr\"{u}wirth}, Title="A Polymorphic Type Checking System for Prolog in HiLog", Institution="Department of Computer Science, SUNY at Stony Brook", Address="Long Island, New York 11794", Year=1989, Number="89/20", Note="6th Israel Conference on Artificial Intelligence and Computer Vision", Annote="HiLog overcomes problems with using Prolog as a type language to express polymorphic types. 16 references." } @TechReport{Fruhwirth89b, Key="Fruhwirth", Author={Thom W. Fr\"{u}wirth}, Title="Towards a Fully Polymorphic Type System for Prolog", Institution="Department of Computer Science, SUNY at Stony Brook", Address="Long Island, New York 11794", Month=Oct, Year=1989, Number="89/26", Note="Presented at the Workshop on Types in Logic Programming at the North American Conference on Logic Programming, Cleveland, Ohio", Annote="Declarative subtyping but no cycles allowed. 26 references." } @TechReport{Fruhwirth89c, Key="Fruhwirth", Author={Thom W. Fr\"{u}wirth}, Title="On Fixpoint Semantics for Types in Logic Programming Languages", Institution="Department of Computer Science, SUNY at Stony Brook", Address="Long Island, New York 11794", Year=1989, Number="?", Annote="Characterization of types by their fixpoint semantics. 6 references." } @Article{Fuh-Mishra90, Key="Fuh \& Mishra", Author="You-Chin Fuh and Prateek Mishra", Title="Type Inference with Subtypes", Journal=TCS, Volume=73, Number=2, Month=Jun, Year=1990, Pages="155-175", Note="Special Issue: Second European Symposium on Programming (Nancy, France, March 1988)", Annote="Extends polymorphic type inference with a very general notion of subtype. Shows principal type property and syntactic completeness for the type checker. 16 references." } @Article{Gantenbein91, Key = "Gantenbein", Author = "Gantenbein", Title = "Dynamic Binding in Strongly Typed Programming Languages", Journal = "Journal of Systems and Software", Year = 1991, Volume = 14, Number = 1, Month = Jan, Pages = "31-38" } @InProceedings{Gay92, Key="Gay", Author="Simon J. Gay", Title="A Sort Inference Algorithm for the Polyadic Pi-Calculus", BookTitle=" Conference record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, South Carolina", Organization=ACM, Year=1993, Month=Jan, Pages="429-438", Annote="5 references" } @Article{Gehani80, Key="Gehani", Author="Narain Gehani", Title="Generic Procedures: An Implementation and Undecidability Result", Journal="Computer Languages", Year=1980, Volume=5, Number="3-4", Pages="155-161", Annote="Macro-expanding implementation leads to undecidability result. 13 references." } @Article{Georgeff84, Key="Georgeff", Author="Michael Georgeff", Title="Transformations and Reduction Strategies for Typed Lambda Expressions", Journal=TOPLAS, Year=1984, Volume=6, Number=4, Month=Oct, Pages="603-631", Annote="Efficient representations and evaluations of closures. Reducing reflexive types. 22 references." } @InCollection{Ghelli90, Key = "Ghelli", Author = "G. Ghelli", Title = "A Class Abstraction for a Hierarchical Type System", BookTitle = "ICDT '90, Third International Conference on Database Theory, Paris, France", Publisher = Springer-Verlag, Year = 1990, Editor = "S. Abiteboul and P. C. Kanellakis", Series = LNCS, Volume = 470, Pages = "56-71", Address = NY, Month = Dec } @InCollection{Ghelli91a, Key = "Ghelli", Author = "Giorgio Ghelli", Title = "Modelling Features of Object-Oriented Languages in Second Order Functional Languages with Subtypes", BookTitle = "Foundations of Object-Oriented Languages, REX School/Workshop, Noordwijkerhout, The Netherlands, May/June 1990", Publisher = "Springer-Verlag", Year = 1991, Editor = "J. W. de Bakker and W. P. de Roever and G. Rozenberg", Series = LNCS, Volume = 489, Pages = "311-340", Address = NY, Annote = "17 references." } @Article{Ghelli91b, Key="Ghelli", Author = "Giorgio Ghelli", Title = "A Static Type System for Message Passing", Journal = SIGPLAN, Volume = 26, Number = 11, Month = Nov, Year = 1991, Pages = "129-145", Note = "OOPSLA '91 Conference Proceedings, Andreas Paepcke (editor), October 1991, Phoenix, Arizona", Annote = "19 references." } @InProceedings{Ghelli93, Key={Ghelli}, Author = {G. Ghelli}, Title = {Recursive types are not Conservative over F$\lessthanorequal$}, BookTitle = {International Conference on Typed Lambda Calculi and Applications}, Year = {1993}, Editor = {M. Bezem and J.F. Groote}, Publisher = {Springer-Verlag}, Series = LNCS, Number = {664}, Pages = {146-162}, Address = {Utrecht, The Netherlands}, Month = Mar, Note = {TLCA'93}, Annote ={13 refences} } @InProceedings{Ghelli96, key = {Ghelli}, author = {Giorgio Ghelli}, title = {Complexity of kernel {Fun} subtype checking}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '96)", Series = SIGPLAN, Volume = "31(6)", Month = Jun, Year = 1996, organization = ACM, pages = {134-145}, annote = {38 references.} } @TechReport{Giannini85, Key="Giannini", Author="Paola Giannini", Title="Type Checking and Type Deduction Techniques for Polymorphic Programming Languages", Institution=CMU, Year=1985, Month=Dec, Number="CMU-CS-85-187", Annote="Type checking and deduction in two different polymorphic programming structures: the parameteric lambda calculus (with let) and the polymorphic or second-order lambda calculus. Type inference rules. 42 references." } @InProceedings{Gifford-Lucassen86, Key = "Gifford \& Lucassen", Author = "David K. Gifford and John M. Lucassen", Title = "Integrating Functional and Imperative Programming", BookTitle = "ACM Conference on LISP and Functional Programming", Year = 1986, Pages = "28-38", Organization = ACM, Month = Aug, Annote = "A fluent language, including side effects in the type system. 19 references." } @Book{Girard-Lafont-Taylor89, Key="Girard \& Lafont \& Taylor", Author="Jean-Yves Girard and Yves Lafont and Paul Taylor", Title="Proofs and Types", Publisher="Cambridge University Press", Address=NY, Year=1989, Annote="Typed lambda-calculus. 49 references." } @InProceedings{Girard71, Key="Girard", Author="Jean-Yves Girard", Title={Une extension de l'interpr\'{e}tation de G\"{o}del \`{a} l'analyse, et son application \`{a} l'\'{e}limination des coupures dans l'analyse et la th\'{e}orie des types}, BookTitle="Proceedings 2nd Scandinavian Logic Symposium", Publisher="North-Holland", Address="Amsterdam", Year=1971, Pages="63-92" } @Article{Girard86, Key="Girard", Author="J. Y. Girard", Title="The System {\bf F} of variable types, fifteen years later", Journal=TCS, Volume=45, Year=1986, Pages="159-192" } @InCollection{Girard93, Key="Girard", Author="Jean-Yves Girard", Title="Linear Logic: A Survey", BookTitle="Logic and Algebra of Specification", Year=1993, Pages="63-112", Editor="F. L. Bauer and W. Brauer and H. Schwichtenberg", Series="NATO ASI Series. Series F : Computer and System Sciences", Volume=94, Publisher="Springer-Verlag", Address=NY, Annote="17 references." } @TechReport{Gladney82a, Key="Gladney", Author="H. M. Gladney", Title="Generic Operators in Concise Programs", Institution="IBM Research Laboratory, San Jose, CA", Year=1982, Number="RJ3441 (40927)", Type="IBM Research Report", Month=Mar, Annote="27 references." } @TechReport{Gladney82b, Key="Gladney", Title="An Introduction to the Concise Programming Language", Author="H. M. Gladney", Institution="IBM Research Laboratory, San Jose, CA", Year=1982, Number="RJ3455 (41061)", Type="IBM Research Report", Month=Apr, Annote="21 references." } @InProceedings{Glew-Morrisett99, key = {Glew \& Morrisett}, author = {Neal Glew and Greg Morrisett}, title = {Type-Safe Linking and Modular Assembly Language}, booktitle = {Conference Record of POPL 99: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas}, year = 1999, organization = ACM, address = NY, month = Jan, pages = {250-261}, annote = {30 references.} } @Book{Goldberg-Robson83, Key="Goldberg \& Robson", Author="Adele Goldberg and David Robson", Title="Smalltalk-80, The Language and its Implementation", Publisher=Addison-Wesley, Address="Reading, Mass.", Year=1983, Annote="Smalltalk features message-based object oriented programming and a hierarchical type system." } @InProceedings{Goldstein-Bobrow80a, Key="Goldstein \& Bobrow", Author="I. Goldstein and D. Bobrow", Title="Extending Object Oriented Programming in Smalltalk", BookTitle="Conference Record of the 1980 LISP Conference, Stanford, Calif.", Organization="The LISP Conference", Month=Aug, Year=1980 } @InProceedings{Gomard90, Key="Gomard", Author="Carsten K. Gomard", Title="Partial Type Inference for Untyped Functional Programs", BookTitle="Proceedings of the 1990 ACM Conference on LISP and Functional Programming, Nice, France", Organization=ACM, Month=Jun, Year=1990, Pages="282-287", Annote="Algorithm to type parts of a program and underline parts that are not typeable. 15 references." } @InProceedings{Gordon-etal78, Key="Gordon, {\em et al.}", Author="M. Gordon and R. Milner and L. Morris and M. Newey and C. Wadsworth", Title="A Meta Language for Interactive Proof in LCF", Organization=ACM, BookTitle="Conference Record of the Fifth Annual ACM Symposium on Principles of Programming Languages, Tucson, Arizona", Month=Jan, Year=1978, Pages="119-130", Annote="Overview of ML and its application to proof systems. 36 references." } @Article{Gorlen87, Key = "Gorlen", Author = "Keith E. Gorlen", Title = "An Object-Oriented Class Library for C++ Programs", Journal = SPandE, Year = 1987, Volume = 17, Number = 12, Month = Dec, Pages = "899-922", Annote = "8 references." } @InCollection{Granston-Russo93, Key = "Granston \& Russo", Author = "Elana D. Granston and Vincent F. Russo", Title = "Signature-Based Polymorphism for C++", BookTitle = "The Evolution of C++", Publisher = "The MIT Press", Year = 1993, Editor = "Jim Waldo", Pages = "121-133", Address = "Cambridge, Mass.", Annote = "8 references." } @InProceedings{Graver-Johnson90, Key="Graver \& Johnson", Author="Justin O. Graver and Ralph E. Johnson", Title="A Type System for Smalltalk", BookTitle="Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, San Francisco, California", Month=Jan, Year=1990, Pages="136-150", Annote="19 references." } @TechReport{Graver89, Key="Graver", Author="Justin Owen Graver", Title="Type-Checking and Type-Inference for Object-Oriented Programming Languages", Institution="Department of Computer Science, University of Illinois at Urbana-Champaign", Number="UUICDCS-R-89-1539 and UILU-ENG-89-1758", Month=Aug, Year=1989, Note="The author's Ph.D. thesis.", Annote="Subtypes not based on subclasses. 47 references." } @InCollection{Greenhouse-Boyland99, key = {Greenhouse \& Boyland}, author = {Aaron Greenhouse and John Boyland}, title = {An Object-Oriented Effects System}, booktitle = {ECOOP '99 --- Object-Oriented Programming 13th European Conference, Lisbon Portugal}, publisher = {Springer-Verlag}, year = 1999, editor = {Rachid Guerraoui}, volume = 1628, series = LNCS, address = NY, month = Jun, pages = {205-229}, annote = {14 references.} } @Article{Grogono-Bennett89, Key="Grogono \& Bennett", Author="Peter Grogono and Anne Bennett", Title="Polymorphism and Type Checking in Object-Oriented Languages", Journal=SIGPLAN, Volume=24, Number=11, Month=Nov, Year=1989, Pages="43-75", Annote="Coding binary operations in a type-checked language with dynamic binding. 12 references." } @InCollection{Groote, Key="Groote", Author="P. de Groote", Title="Defining lambda-typedd lambda-calculii by axiomatizing the typing relation", Journal=LNCS, Number=665, Editor="P. Enjalbert and A. Finkel and K. W. Wagner", Publsiher="Springer-Verlag", Address=NY, Year=1993, Note="STACS 93, 10th Annual Symposium on the Theoretical Aspects of Computer Science, Germany, Feb 25-27, 1993. Proceedings", Page="712-23", Annote="24 references" } @Article{Grosch83, Key="Grosch", Author="Josef Grosch", Title="Type Derivation Graphs - A Way to Visualize the Type Building Possibilities of Programming Languages", Journal=SIGPLAN, Month=Dec, Year=1983, Volume=18, Number=12, Pages="60-68", Annote="Graphics to visualize type combinations. 16 references." } @Article{Gunn-Harland81, Key="Gunn \& Harlannd", Author="Hamish I. E. Gunn and David M. Harland", Title="Degrees of Constancy in Programming Languages", Journal=IPL, Year=1981, Month=Oct, Volume=13, Number=1, Pages="35-38", Annote="Distinguishes value constancy from the orthogonal notion of type constancy in language with first-class type objects. 13 references." } @Book{Gunter-Mitchell94, Key = "Gunter \& Mitchell", Title = "Theoretical Aspects of Object-Oriented Programming", Publisher = "The MIT Press", Year = 1994, Editor = "Carl A. Gunter and John C. Mitchell", Series = "Fondations of Computing", Address = "Cambridge, MA", Annote = "41 references." } @TechReport{Guttag-Horning-Williams81, Key="Guttag \& Horning \& Williams", Author="John V. Guttag and James Horning and John Williams", Title="FP with Data Abstraction and Strong Typing", Institution="University of Newcastle Upon Tyne", Year=1981, Month=Jul, Note="Also in {\em Proceedings of a Conference on Functional Programming and Computer Architecture}, ACM, pages 11-24, Wentworth by the Sea, New Hampshire, October, 1981", Annote="Not only adds types to FP, but also very nice data abstraction facility. 19 references." } @Article{Halbert-OBrien87, Key="Halbert \& O'Brien", Author="Daniel C. Halbert and Patrick D. O'Brien", Title="Using Types and Inheritance in Object-Oriented Languages", Journal="IEEE Software", Volume=4, Number=5, Month=Sep, Year=1987, Pages="71-79", Note="Revised version of a paper presented at ECOOP '87 European Conference on Object-Oriented Programming, June, 1987 (Springer LNCS vol. 276). Also a Digital technical report, DEC-TR-437, April, 1986.", Annote="Several worked examples. 7 references." } @Article{Hall-etal96, author = "Cordelia V. Hall and Kevin Hammond and Simon L. Peyton Jones and Philip L. Wadler", title = "Type Classes in Haskell", key = "Hall, {\em et al.}", journal = "TOPLAS", year = 1996, volume = 18, number = 2, pages = "109-138", month = Mar, annote = "39 references." } @InProceedings{Hanakata82, Key="Hanakata", Author="K. Hanakata", Title="A Bit Table for Message passing in Multiple Inheritance Hierarchies", BookTitle="1982 European Conference on Artificial Intelligence", Month=Jul, Year=1982, Organization="University of Kaiserslantern", Pages="106-107", Annote="Message passing is a crucial aspect of efficiency in their multiple inheritance system. Static scheme for precomputation of tables for efficient lookup, main benefit being compressed space. 18 references." } @InCollection{Hanus91, Key = "Hanus", Author = "M. Hanus", Title = "On the Relationship between Algebraic Module Specifications and Program Modules", BookTitle = "TAPSOFT '91, Proceedings of the International Joint Conference on Theory and Practice of Software Development, Brighton, UK, Volume 2, Advances in Distributed Computing (ADC) and Colloquium on Combining Paradigms for Software Development (CCPSD)", Publisher = Springer-Verlag, Year = 1991, Editor = "S. Abramsky and T. S. E. Maibaum", Series = LNCS, Volume = 494, Pages = "83-98", Address = NY, Month = Apr } @Article{Harland-Gunn82, Key="Harland \& Gunn", Author="David M. Harland and Hamish I. E. Gunn", Title="Another look at Enumerated Types", Journal=SIGPLAN, Volume=17, Number=7, Month=Jul, Year=1982, Pages="62-71", Annote="Scope rules and enumerated types. 15 references." } @Article{Harland-Szyplewski-Wainwright85, Key="Harland \& Szyplewski \& Wainwright", Author="David M. Harland and Martyn W. Szyplewski and John B. Wainwright", Title="An Alternative View of Polymorphism", Journal=SIGPLAN, Volume=20, Number=10, Month=Oct, Year=1985, Pages="23-35", Annote="Advocates dynamic type checking with types as values and guards on variable cells. 10 references." } @Article{Harland84a, Key="Harland", Author="David M. Harland", Title="User-Defined Types in a Polymorphic Language", Journal="The Computer Journal", Volume=27, Number=1, Month=Feb, Year=1984, Pages="47-56", Annote="Dynamic view of type equivalence essential for types as values. Argues against wholly static type checking. Typeof operator, tagged cells, dynamic type checking when necessary, no substitution property in the language. Type equivalence is tag equivalence, that is, object equivalence for type implementation objects. Record constancy separated from field constancy. Abstract types constructed positionally, no names given to the operations by the type definition. 15 references." } @Book{Harland84b, Key="Harland", Author="D. M. Harland", Title="Polymorphic Programming Languages: Design and Implementation", Publisher=Wiley, Address=NY, Year=1984 } @Article{Harper-Duba-Macqueen93, Key = "Harper \& Duba \& Macqueen", Author = "Robert Harper and Bruce F. Duba and David Macqueen", Title = "Typing first-class continuations in ML", Journal = "Journal of Functional Programming", Year = 1993, Volume = 3, Number = 4, Month = Oct, Pages = "465-484", Annote = "42 references." } @InCollection{Harper-Honsell-Plotkin87, Key = "Harper \& Honsell \& Plotkin", Author = "Robert Harper and Furio Honsell and Gordon Plotkin", Title = "A Framework for Defining Logics", BookTitle = "Symposium on Logic in Computer Science, Ithaca, NY", Publisher = IEEE, Year = 1987, Pages = "194-204", Month = Jun, Annote = "The Logical Framework, LF. 23 references." } @TechReport{Harper-Housell-Plotkin93, Key="Harper \& Housell \& Plotkin", Author="Robert W. Harper and F. Housell and G. Plotkin", Title="A Framework for Defining Logic", Year=1993, Journal=JACM, Volume=40, Number=1, Pages="143-184", Annote="55 references. The Type Theory LF" } @InProceedings{Harper-Lillibridge94, Key = {Harper \& Lillibridge}, Author = {Robert Harper and Mark Lillibridge}, Title = "A Type-Theoretic Approach to Higher-Order Modules with Sharing", BookTitle = "Conference Record of POPL '94: 21ST ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Portland, Oregon", Month = Jan, Year = 1994, Organization = ACM, Address = NY, Pages = "123-137", Annote = "46 references." } @TechReport{Harper-MacQueen-Milner86, Key="Harper \& MacQueen \& Milner", Author="Robert Harper and David MacQueen and Robin Milner", Title="Standard {ML}", Institution="Laboratory for Foundations of Computer Science, Department of Computer Science, University of Edinburgh", Month=Mar, Year=1986, Number="ECS-LFCS-86-2", Annote="7 references." } @InCollection{Harper-Milner-Tofte87, Key="Harper \& Milner \& Tofte", Author="Robert Harper and Robin Milner and Mads Tofte", Title="A Type Discipline for Program Modules", BookTitle="Proceedings of the International Joint Conference on Theory and Practice of Software Development (TAPSOFT)", Series=LNCS, Volume=250, Month=Mar, Year=1987, Pages="308-319", Publisher="Springer-Verlag" } @InProceedings{Harper-Mitchell-Moggi89, Key="Harper \& Mitchell \& Moggi", Author="Robert Harper and John C. Mitchell and Eugenio Moggi", Title="Higher-Order Modules and the Phase Distinction", BookTitle="Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, San Francisco, California", Publisher=ACM, Month=Jan, Year=1990, Pages="341-354", Note="An expanded version is found in CMU-CS-89-197, October 1989", Annote="18 references." } @TechReport{Harper-Mitchell90, Key = "Harper \& Mitchell", Author = "Robert Harper and John C. Mitchell", Title = "On the Type Structure of Standard ML", Institution = "School of Computer Science, Carnegie Mellon", Year = 1990, Number = "CMU-CS-90-137", Month = May, Annote = "64 references." } @Article{Harper-Mitchell93, Key="Harper \& Mitchell", Author="Robert Harper and John C. Mitchell", Title="On the Type Structure of Standard ML", Journal=TOPLAS, Year=1993, Month=Apr, Volume=15, Number=2, Pages="211-252", Annote="64 references. " } @InProceedings{Harper-Morrisett95, Key = {Harper \& Morrisett}, Author = {Robert Harper and Greg Morrisett}, Title = "Compiling Polymorphism Using Intentional Type Analysis", BookTitle = "Conference Record of POPL '95: 22nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, Calif.", Month = Jan, Year = 1995, Organization = ACM, Address = NY, Pages = "130-141", Annote = "53 references." } @TechReport{Harper-Pfenning92, key = "Harper \& Pfenning", author = "Robert Harper and Frank Pfenning", title = "A Module System for a Programming Language Based on the {LF} Logical Framework", institution = "Carnegie Mellon University", address = "Pittsburgh, Pennsylvania", number = "CMU-CS-92-191", month = sep, year = "1992", note = "To appear in Journal of Logic and Computation", url = "http://www.cs.cmu.edu/~fp/elf-papers/lfproc92.ps.Z" } @TechReport{Harper-Pierce90, Key="Harper \& Pierce", Author="Robert W. Harper and Benjamin C. Pierce", Title="Extensible Records Without Subtypes", Institution=CMU, Address="Pittsburgh, Penn.", Year=1990, Month=Feb, Number="CMU-CS-90-102", Note="See also the 1991 POPL proceedings.", Annote="Second order calculus with records that is compared with Remy and Cardelli and Mitchell's work. 19 references." } @TechReport{Harper85a, Key="Harper", Author="Robert W. Harper", Title="Aspects of the Implementation of Type Theory", Institution="Department of Computer Science, Cornell University", Address="Ithaca, N.Y.", Year=1985, Month=Apr, Number="TR 85-675", Annote="Building an automated programming logic, the PRL system. The author's doctoral dissertation. 85 references." } @InProceedings{Harper85b, Key="Harper", Author="Robert Harper", Title="Modules and Persistence in Standard ML", BookTitle="Persistence and Data Types: Papers for the Appin Workshop", Month=Aug, Year=1985, Organization="Universities of Glasgow and St. Andrews, Departments of Computer Science", Note="Persistent Programming Research Report 16", Pages="419-430", Annote="7 references." } @TechReport{Harper86, Key="Harper", Author="Robert Harper", Title="Introduction to Standard ML", Institution="Laboratory for Foundations of Computer Science, Department of Computer Science, University of Edinburgh", Month=Nov, Year=1986, Number="ECS-LFCS-86-14", Annote="6 references." } @Article{Harper94, key = "Harper", author = "Robert Harper", title = "A Simplified Account of Polymorphic References", journal = "Information Processing Letters", year = 1994, volume = 51, pages = "201-206" } @Article{Harper96, key = "Harper", author = "Robert Harper", title = "A note on ``A Simplified Account of Polymorphic References''", journal = "Information Processing Letters", year = 1996, volume = 57, number = 1, month = Jan, pages = "15-16", annote = "What has to be proved for soundness. 5 references." } @Article{Harris91, Key = "Harris", Author = "Warren Harris", Title = "Contravariance for the rest of us", Journal = JOOP, Year = 1991, Volume = 4, Number = 7, Month = "Nov/Dec", Pages = "10-18", Annote = "5 references." } @Article{Hauck93, Key="Hauck", Author="Franz Hauck", Title="Inheritance Modeled with Explicit Bindings: An Approach to Typed Inheritance", Journal = SIGPLAN, Volume = 28, Number = 10, Month = Oct, Year = 1993, Note = "{\em OOPSLA '93 Proceedings}, Andreas Paepcke (editor).", Pages="231-239", Annote="10 references." } @TechReport{Hayes-Coleman89, Key="Hayes \& Coleman", Author="Fiona Hayes and Derek Coleman", Title="Objects and Inheritance: An Algebraic View", Institution="Information Management Lab, Hewlett Packard Laboratories", Type="Technical Memo", Number="?", Month=Nov, Year=1989, Annote="8 references." } @PhDThesis{Haynes82, Key="Haynes", Author="Christopher T. Haynes", Title="A Theory of Data Type Representation Independence", School="Univ. of Iowa, Dept. of Computer Science", Year=1982, Note="Technical Report 82-04." } @Article{Heering-Klink85, Key="Heering \& Klint", Author="Jan Heering and Paul Klint", Title="Towards Monolingual Programming Environments", Journal=TOPLAS, Month=Apr, Year=1985, Volume=7, Number=2, Pages="183-213", Annote="Discusses type checking in a language that incorporates features for debugging and command interpretation. Elastic type checking is sought which checks types as soon as information is available. 31 references." } @Article{Heinaenen83, Key="Heinaenen", Author="Juha Heinaenen", Title="A Programmer Controlled Approach to Data and Control Abstraction", Journal=SIGPLAN, Year=1983, Month=Jun, Volume=18, Number=6, Pages="41-52", Note="Proceedings of the SIGPLAN '83 Symposium on Programming Language Issues in Software Systems, San Francisco, CA", Annote="Extending the Lukko language downward efficiently. Lukko provides a skeleton abstraction language and interface specs for machine dependent parts. In-line expansion. 27 references." } @InProceedings{Heintze-Riecke98, key = {Heintze \& Riecke}, author = {Nevin Heintze and Jon G. Riecke}, title = {The {SLam} Calculus: Programming with Secrecy and Integrity}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {365-377}, annote = {23 references.} } @InCollection{Helmink90, Key="Helmink", Author="L. Helmink", Title="Resolution and Type Theory", BookTitle="ESOP '90 3rd European Symposium on Programming, Copenhagen, Denmark", Month=May, Year=1990, Pages="197-211", Editor="N. Jones", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=432 } @TechReport{Henglein89, Key="Henglein", Author="Fritz Henglein", Title="Polymorphic Type Inference and Semi-Unification", Institution="Department of Computer Science, Courant Institute of Mathematical Sciences, New York University", Address=NY, Month=May, Year=1989, Number=443, Annote="123 references." } @InCollection{Henglein92, Key = "Henglein", Author = "Fritz Henglein", Title = "Dynamic Typing", BookTitle = "ESOP '92, 4th European Symposium on Programming, Rennes, France, February 1992, Proceedings", Publisher = "Springer-Verlag", Year = 1992, Editor = "Bernd Krieg-Bruckner", Series = LNCS, Address = NY, Volume = 582, Pages = "233-253", Annote = "24 references" } @Article{Henglein93, Key="Henglein", Author="Fritz Henglein", Title="Type Inference with Polymorphic Recursion", Journal="ACM Transactions on Programming Languages and Systems", Volume=15, Number=3, Month=Apr, Year=1993, Pages="253-289", Annote="66 references. " } @Article{Henglein99, key = {Henglein}, author = {Fritz Henglein}, title = {Breaking Through the $n^3$ Barrier: Faster Object Type Inference}, journal = TAPOS, year = 1999, volume = 5, number = 1, pages = {57-72}, annote = {34 references.} } @Article{Herlihy-Liskov82, Key="Herlihy \& Liskov", Author="Maurice Herlihy and Barbara Liskov", Title="A Value Transmission Method for Abstract Data Types", Journal=TOPLAS, Volume=4, Number=4, Month=Oct, Year=1982, Pages="527-551", Annote="19 references." } @Book{Hilfinger83, Key="Hilfinger", Author="Paul N. Hilfinger", Title="Abstraction Mechanisms and Language Design", Publisher=MITP, Year=1983, Address="Cambridge, Mass.", Note="Ph. D. Thesis, Carnegie-Mellon University, 1981", Annote="Design principles for abstraction mechanisms. Purposes of an abstraction mechanism are are 1) expressiveness, 2) documentation, 3) consistency checking and 4) freedom from detail. Criteria for evaluation are 1) expressiveness, 2) freedom from detail (incrementality), 3) expressiveness of intent and 4) simplicity. Demonstrates their utility by showing how the principles led to improvements in Ada. 35 references." } @Article{Hilfinger88, Key="Hilfinger", Author="Paul N. Hilfinger", Title="An Ada Package for Dimensional Analysis", Journal=TOPLAS, Volume=10, Number=2, Month=Apr, Year=1988, Pages="189-203", Annote="Improved version of the package presented in the author's thesis. 8 references." } @InCollection{Hindley82, Key="Hindley", Author="J. R. Hindley", Title="The Simple Semantics for Coppo-Dezani-Sall\'{e} Types", Series=LNCS, Publisher="Springer-Verlag", Address=NY, BookTitle="International Symposium on Programming, 5th Colloquium, Turin, April, 1982", Volume=137, Pages="212-226", Editor="M. Dezani-Ciancaglini and U. Montanari", Year=1982, Annote="9 references." } @Article{Hindley83, Key="Hindley", Author="J. R. Hindley", Title="The Completeness Theorem for Typing lambda-Terms", Journal="Theoretical Computer Science", Pages="1-18", Volume=22, Number="1,2", Month=Jan, Year=1983, Annote="Rules for type assignment. 19 references." } @Book{Hindley97, author = {J. Roger Hindley}, title = {Basic Simple Type Theory}, publisher = {Cambridge University Press}, year = 1997, key = {Hindley}, volume = 42, series = {Cambridge Tracts in Theoretical Computer Science}, address = {Cambridge, UK}, annote = {Many references.} } @InProceedings{Hirst-Dinesh91, Key = "Hirst \& Dinesh", Author = "G. Steve Hirst and T. B. Dinesh", Title = "The Combination of Specifications and the Induced Relations in Object Oriented Programs", BookTitle = "Proceedings of the Second International Conference on Algebraic Methodology and Software Technology", Year = 1991, Pages = "41-44", Organization ="The University of Iowa, Department of Computer Science", Address = "Iowa City, Iowa", Month = "May", Annote = "4 references." } @InProceedings{Hoang-Mitchell95, Key = {Hoang \& Mitchell}, Author = {My Hoang and John C. Mitchell}, Title = "Lower bounds on type inference with subtypes", BookTitle = "Conference Record of POPL '95: 22nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, Calif.", Month = Jan, Year = 1995, Organization = ACM, Address = NY, Pages = "176-185", Annote = "19 references." } @TechReport{Hofmann-Pierce92, Key = "Hofmann \& Pierce", Author = "Martin Hofmann and Benjamin Pierce", Title = "An Abstract View of Objects and Subtyping", Institution = "Department of Computer Science, University of Edinburgh", Year = 1992, Number = "ECS-LFCS-92-226", Address = "Edinburgh, U.K.", Month = Aug, Annote = "Preliminary Report, 40 references." } @TechReport{Hofmann-Pierce94, Key = "Hofmann \& Pierce", Author = "Martin Hofmann and Benjamin Pierce", Title = "Positive Subtyping", Institution = "Department of Computer Science, University of Edinburgh", Year = 1994, Number = "ECS-LFCS-94-303", Address = "Edinburgh, U.K.", Month = Sep, Note = "An extended abstract will appear in the POPL'95 proceedings. Available by anonymous ftp from {\tt ftp.dcs.ed.ac.uk} in file {\tt pub/bcp/pos.ps.Z}.", Annote = "25 references." } @InProceedings{Hoffman-Pierce95, Key = "Hofmann \& Pierce", Author = "Martin Hofmann and Benjamin Pierce", Title = "Positive Subtyping", BookTitle = "Conference Record of POPL '95: 22nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, Calif.", Month = Jan, Year = 1995, Organization = ACM, Address = NY, Pages = "186-197", Annote = "25 references." } @article{Hofmann-Pierce94b, author = "Martin Hofmann and Benjamin Pierce" , title = "A Unifying Type-Theoretic Framework for Objects", journal = "Journal of Functional Programming", note = "Previous versions appeared in the Symposium on Theoretical Aspects of Computer Science, 1994, (pages 251--262) and, under the title ``An Abstract View of Objects and Subtyping (Preliminary Report)", year = 1995 } @InCollection{Horn87, Key="Horn", Author="Chris Horn", Title="Conformance, Genericity, Inheritance and Enhancement", BookTitle="ECOOP '87, European Conference on Object-Oriented Programming, Paris, France", Editor="Jean Bezivin and others", Publisher="Springer-Verlag", Address=NY, Month=Jun, Year=1987, Pages="223-233", Note="Lecture Notes in Computer Science, Volume 276", Annote="10 references." } @Article{House83, Key="House", Author="R. T. House", Title="A Proposal for an Extended Form of Type Checking of Expressions", Journal="The Computer Journal", Volume=26, Number=4, Month=Nov, Year=1983, Pages="366-374" } @InCollection{Howard80, Key="Howard", Author="W. A. Howard", Title="The Formulae-as-Types notion of Construction", BookTitle="To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism", Editor="J. P. Seldin and J. R. Hindley", Publisher="Academic Press, Inc.", Address=NY, Year=1980, Pages="479-490", Annote="Propositions as types, the Curry-Howard isomorphism. 5 references." } @InProceedings{Howard96, key = {Howard}, author = {Brian Howard}, title = {Inductive, Coinductive, and Pointed Types}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '96)", Series = SIGPLAN, Volume = "31(6)", Month = Jun, Year = 1996, organization = ACM, pages = {102-109}, annote = {26 references.} } @Article{Hoyer84, Key="Hoyer", Author="Wolfgang Hoyer", Title="Some Remarks on Records With Variants", Journal=SIGPLAN, Volume=19, Number=3, Month=Mar, Year=1983, Annote="5 references." } @Book{Huet90, Key="Huet", Editor="Gerard Huet", Title="Logical Foundations of Functional Programming", Publisher=Addison-Wesley, Address=NY, Year=1990, Series="The UT Year of Programming Series", Annote="Collection of papers." } @InCollection{Huet93, Key="Huet", Author="G. Huet", Title="The Gallina Specification Language: A Case Study", Series="Lecture Notes in Computer Science", Number=652, Publisher="Springer-Verlag", Address="Berlin, Germany", Editor="R. Shyamasundar", Pages="229-240", Note="Foundations of Software Technology and Theortical Computer Science. 12th Conference, New Delhi, India, Dec 92. Proceedings", Annote="16 references" } @InCollection{Hyland-Pitts87, Key="Hyland \& Pitts", Author="M. E. Hyland and A. M. Pitts", Title="The Theory of Constructions: Categorical Semantics and Topos-Theoretic Models", BookTitle="Categories in Computer Science and Logic, Boulder, Colo.", Editor="John W. Gray and Andre Scedrov", Year=1987, Series="Contemporary Mathematics", Volume=92, Organization="American Mathematical Society", Address="Providence, R.I.", Pages="137-199", Annote="46 references." } @TechReport{Hyland-Robinson-Rosolini88, Key="Hyland \& Robinson \& Rosolini", Author="Martin Hyland Edmund Robinson and Pino Rosolini", Title="Algebraic Types in {PER} Models", Month=Sep, Year=1988, Number="88-234", Institution="Department of Computing and Information Science, Queen's University at Kingston", Address="Kingston, Ontario, Canada", Annote="Huet's conjecture. 7 references." } @Article{Ichbiah-etal79, Key="Ichbiah, {\em et al.}", Author="J. D. Ichbiah and J. G. P. Barnes and J. C. Heliard and B. Krieg-Brueckner and O. Roubine and B. A. Wichmann", Title="Reference Manual and Rationale for the Ada Programming Language", Journal=SIGPLAN, Volume=14, Number=6, Month=Jun, Year=1979, Note="This version of the language is now obsolete, but the rationale (part B) is still valuable.", Annote="Rationale explains various design choices. Packages, interesting numeric types, exception handling. 70 references in part B." } @InCollection{Igarashi-Pierce99, key = {Igarashi \& Pierce}, author = {Atsushi Igarashi and Benjamin C. Pierce}, title = {Foundations for Virtual Types}, booktitle = {ECOOP '99 --- Object-Oriented Programming 13th European Conference, Lisbon Portugal}, publisher = {Springer-Verlag}, year = 1999, editor = {Rachid Guerraoui}, volume = 1628, series = LNCS, address = NY, month = Jun, pages = {161-185}, annote = {35 references.} } @InProceedings{Ingalls78, Key="Ingalls", Author="Daniel H. H. Ingalls", Title="The Smalltalk-76 Programming System Design and Implementation", Organization=ACM, BookTitle="Conference Record of the Fifth Annual ACM Symposium on Principles of Programming Languages, Tucson, Arizona", Month=Jan, Year=1978, Pages="9-16", Annote="Virtues of message passing, object-oriented models. The virtual memory system and other parts of the implementation. 11 references." } @Article{Ingalls86, Key="Ingalls", Author="Daniel H. H. Ingalls", Title="A Simple Technique for Handling Multiple Polymorphism", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="347-349", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Each message send in a language like Smalltalk-80 reduces the polymorphism of the call on one argument. The modularity of code can be maintained by message sending on each argument of a binary or n-ary operation. 1 reference." } @Book{Ishikawa93, Key= "Ishikawa", Author = "Hiroshi Ishikawa", Title = "Object Oriented Database System: Design and implementation for advanced applications", Publisher = "Springer-Verlag Inc", Year = 1993, Address = NY, Annote = " 90 references"} @Article{Jacobs90, Key="Jacobs", Author="Dean Jacobs", Title="Type Declarations as Subtype Constraints in Logic Programming", Journal=SIGPLAN, Volume=25, Number=6, Month=Jun, Year=1990, Pages="165-173", Note="Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, White Plains, NY", Annote="12 references." } @InProceedings{Jategaonkar-Mitchell88, Key="Jategaonkar \& Mitchell", Author="Lalita A. Jategaonkar and John C. Mitchell", Title="{ML} with Extended Pattern Matching and Subtypes (preliminary version)", BookTitle="ACM Conference on LISP and Functional Programming, Snowbird, Utah", Year=1988, Month=Jul, Pages="198-211", Annote="12 references." } @TechReport{Jategaonkar89, Key = "Jategaonkar", Author = "Lalita A. Jategaonkar", Title = "{ML} with Extended Pattern Matching and Subtypes", Institution = MITLCS, Year = 1989, Number = 468, Address = "Cambridge, Mass.", Month = Aug } @Article{Jenkins-Leavens96, Key = "Jenkins \& Leavens", Author = "Steven Jenkins and Gary T. Leavens ", Title = "Polymorphic Type-Checking in Scheme", Journal = "Computer Lanugages", Volume = 22, Number = 4, Year = 1996, Pages = "215-223", URL = "ftp://ftp.cs.iastate.edu/pub/techreports/TR95-21/TR.ps.Z", Annote = "13 references." } @Article{Jenks-Trager81, Key="Jenks \& Trager", Title="A Language for Computational Algebra", Author="Richard D. Jenks and Barry M. Trager", Journal=SIGPLAN, Volume=16, Number=11, Month=Nov, Year=1981, Pages="22-29", Annote="Extensible parameterized types and generic operators. Abstract data types as general 'as possible'. Notions of 'domains' and 'catagories'. 16 references." } @Article{Johnson-Morris76, Key="Johnson \& Morris", Author="R. T. Johnson and J. B. Morris", Title="Abstract Data Types in the Model Programming Language", Journal=SIGPLAN, Year=1976, Volume=8, Number=2, Month=Feb, Pages="36-46", Note="Proceedings of Conference on Data: Abstraction, Definition and Structure", Annote="Abstract data types in model, a scientific language. 18 references." } @InProceedings{Johnson-Walz86, Key="Johnson \& Walz", Author="Gregory F. Johnson and Janet A. Walz", Title="A Maximum-Flow Approach to Anomaly Isolation in Unification-Based Incremental Type Inference", BookTitle="Conference Record of the Thirteenth Annual ACM Symposium on Principles of Programming Languages, St. Petersburg Beach, Florida", Organization=ACM, Month=Jan, Year=1986, Pages="44-57", Annote="A language-based editor's error isolation approach. 12 references." } @Article{Johnson-Zweig91, Key = "Johnson-Zweig", Author = "Johnson-Zweig", Title = "Delegation in C++", Journal = JOOP, Year = 1991, Volume = 4, Number = 7, Month = "Nov/Dec", Pages = "31-34", Annote = "8 references." } @Article{Johnson86, Key="Johnson", Author="Ralph E. Johnson", Title="Type-Checking Smalltalk", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="315-321", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Argues that to type check Smalltalk-80 with the goal of efficient compiled code, the best approach is to treat types as sets of classes, i.e. unions. Classes are parameterized. Polymorphism uses bounded quantification, type checking requires case analysis, and a block whose body is illegally typed has a legal type. Case analysis might be exponential. Some type inference is done, but in general declarations are required. The perform method and the new primitive are not type checked. 13 references." } @InCollection{Jones90b, Key = "Jones", Author = "Neil D. Jones", Title = "Partial Evaluation, Self-application, and types", BookTitle = "17th International Colloquium on Automata, Languages, and Programming (ICALP), Warwick, England", Publisher = "Springer-Verlag", Year = 1990, Editor = "M. S. Paterson", Series = LNCS, Pages = "639-659", Address = NY, Month = Jul } @InCollection{JonesMark92, Key = "Jones", Author = "Mark P. Jones", Title = "A Theory of Qualified Types", BookTitle = "ESOP '92, 4th European Symposium on Programming, Rennes, France, February 1992, Proceedings", Publisher = "Springer-Verlag", Year = 1992, Editor = "Bernd Krieg-Bruckner", Series = LNCS, Address = NY, Volume = 582, Pages = "287-306", Annote = "22 references" } @InProceedings{JonesMark93, author = "Mark P. Jones", booktitle = "FPCA '93: Conference on Functional Programming and Computer Architecture, Copenhagen, Denmark", title = "{A} system of constructor classes: overloading and implicit higher-order polymorphism", year = 1993, publisher = "ACM Press", address = NY, url = "ftp://nebula.cs.yale.edu/pub/yale-fp/papers/fpca93.dvi.Z", month = Jun, Pages = "52-61" } @InCollection{JonesMark94, Key = "Jones", Author = "Mark P. Jones", Title = "ML Typing, Explicit Polymorphism and Qualified Types", BookTitle = "Theoretical Aspects of Computer Software", Publisher = "Springer-Verlag", Year = 1994, Editor = "Masami Hagiya and John C. Mitchell", Series = LNCS, Volume = 789, Pages = "56-75", Month = Apr, Annote = "25 references." } @Article{JonesMark95, author = "Mark P. Jones", title = "{A} system of constructor classes: overloading and implicit higher-order polymorphism", key = "Jones", journal = "Journal of Functional Programming", year = 1995, volume = 5, number = 1, pages = "1-35", month = "Jan", note = "An earlier version appeared in FPCA '93", annote = "23 references." } @InProceedings{JonesMark97, key = {Jones}, author = {Mark P. Jones}, title = {First-class Polymorphism with Type Inference}, booktitle = {Conference Record of POPL 97: The 24TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Paris, France}, year = 1997, organization = ACM, address = NY, month = Jan, pages = {483-496}, annote = {34 references.} } @InProceedings{Kaes92, Key = "Kaes", Author = "Stefan Kaes", Title = "Type Inference in the Presence of Overloading, Subtyping, and Recursive Types", BookTitle= "ACM Conference on LISP and Functional Programming", Year = 1992, Pages = "193-204", Organization =ACM, Month = Jun, Annote= "24 references." } @Article{Kaiser-Hailpern92, Key = "Kaiser \& Hailpern", Author = "Gail E. Kaiser and Brent Hailpern", Title = "An Object-Based Programming Model for Shared Data", Journal = TOPLAS, Year = 1992, Volume = 14, Number = 2, Month = Apr, Pages = "201-264", Annote = "Support for shared data in a distributed environment. 56 references." } @Article{Kamareddine-Nederpelt94, key = {Kamareddine \& Nederpelt}, author = {Fairouz Kamareddine and Rob Nederpelt}, title = {A unified approach to type theory through a refined $\lambda$-calculus}, journal = TCS, year = 1994, volume = 136, number = 1, month = Dec, pages = {183-216}, annote = {31 references.} } @InProceedings{Kanellakis-Waller90, Key="Kanellakis \& Waller", Author="Abiteboul S. Kanellakis and E. Waller ", Title="Method Schemas", Year=1990, Organization="PODS", BookTitle="Proceedings of ACM" } @Article{Kaplan-Ullman80, Key="Kaplan \& Ullman", Author="Marc A. Kaplan and Jeffrey D. Ullman", Title="A Scheme for the Automatic Inference of Variable Types", Journal=JACM, Month=Jan, Year=1980, Pages="128-145", Volume=27, Number=1, Annote="Inference of the types of variables from data available in the program without using declarations. Strong but possibly inefficient algorithm. 13 references." } @Article{Karlsson-Petersson82, Key="Karlsson \& Petersson", Author="Kent Karlsson and Kent Petersson (eds.)", Title="Notes from: The Aspenas Symposium on Functional Languages and Computer Architecture", Journal=SIGPLAN, Volume=17, Number=11, Month=Nov, Year=1982, Pages="14-23", Annote="Panel discussion about types including MacQueen's principles for a typing system." } @InProceedings{Katiyar-Luckham-Mitchell94, Key = "Katiyar \& Luckham \& Mitchell", Author = "Dinesh Katiyar and David Luckham and John Mitchell", Title = "A Type System for Prototyping Languages", Pages = "138-150", Booktitle = "Conference Record of POPL '94: 21st ACM SIGPLAN--SIGACT Symposium of Principles of Programming Languages, Portland, Oregon", Year = 1994, Organization = ACM, Month = Jan, Annote = "27 references." } @Article{Katiyar-etal94, Key = "Katiyar, {\em et al.}", Author = "Dinesh Katiyar and David Luckham and John Mitchell and Sigurd Meldal", Title = "Polymorphism and Subtyping in Interfaces", Journal = SIGPLAN, Year = 1994, Volume = 29, Number = 8, Month = Aug, Pages = "22-34", Note = "Proceedings of the Workshop on Interface Definition Languages.", Annote = "21 references." } @Article{Katzenelson83, Key="Katzenelson", Author="Jacob Katzenelson", Title="Introduction to Enhanced C (EC)", Journal=SPandE, Volume=13, Number=7, Month=Jul, Year=1983, Pages="551-576", Annote="Set-oriented language with user-defined data abstractions. Programmer chosen representations for some of the built-in types. 30 references." } @Article{Keane94, Key = "Keane", Author = "John A. Keane", Title = "An overview of the Flagship system", Journal = "Journal of Functional Programming", Year = 1994, Volume = 4, Number = 1, Month = Jan, Pages = "19-45", Annote = "79 references." } @InProceedings{Kemper-Moerkotte, Key = "Kemper \& Moerkotte", Author = "A. Kemper and G. Moerkotte", Title = "A Framework for Strong Typing and Type Inference in (Persistent) Object Models", BookTitle = "2nd International Conference on Database and Expert Systems Applications", Year = 1991, Organization = "Gesellschaft fur Informatik (GI-Emisa)", Month = Aug } @Article{Kfoury-Tiuryn-Urzyczyn93, Key="Kfoury \& Tiuryn \& Urzyczyn", Author="A.J. Kfoury and J. Tiuryn and P. Urzyczyn", Title="Type Inference with Polymorphic Recursion", Journal="ACM Transactions on Programming Languages and Systems", Volume=15, Number=3, Month=Apr, Year=1993, Pages="290-311", Annote="24 references." } @InProceedings{Kfoury-Wells99, key = {Kfoury \& Wells}, author = {A. J. Kfoury and J. B. Wells}, title = {Principality and Decidable Type Inference for Finite-Rank Intersection Types}, booktitle = {Conference Record of POPL 99: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas}, year = 1999, organization = ACM, address = NY, month = Jan, pages = {161-174}, annote = {26 references.} } @InProceedings{Kieburtz83, Key="Kieburtz", Author="Richard B. Kieburtz", Title="Precise Typing of Abstract Data Type Specifications", BookTitle="Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Organization=ACM, Month=Jan, Year=1983, Pages="109-116", Annote="Theory of data types as approximate semantics for an equational theory. 9 references." } @InProceedings{Kieburtz99, key = {Kieburtz}, author = {Richard B. Kieburtz}, title = {Taming Effects with Monadic Typing}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '98)", Series = SIGPLAN, Volume = "34(1)", Month = Jun, Year = 1999, organization = ACM, pages = {51-62}, annote = {17 references.} } @Article{Kilov91, Key = "Kilov", Author = "Haim Kilov", Title = "Object concepts and bibliography", Journal = SIGPLAN, Year = 1991, Volume = 26, Number = 10, Month = Oct, Pages = "11-12", Annote = "Discussion of and further readings for the Object Data Management Reference Model. 46 references." } @Book{Kim-Lochovsky89, Key="Kim \& Lochovsky", Editor="Won Kim and Frederick H. Lochovsky", Title="Object-Oriented Concepts, Databases, and Applications", Publisher=Addison-Wesley, Address="Reading, Mass.", Year=1989, Annote="24 chapters, each with its own bibliography." } @InCollection{Kniesel99, key = {Kniesel}, author = {G\"{u}nter Kniesel}, title = {Type-Safe Delegation for Run-Time Component Adaptation}, booktitle = {ECOOP '99 --- Object-Oriented Programming 13th European Conference, Lisbon Portugal}, publisher = {Springer-Verlag}, year = 1999, editor = {Rachid Guerraoui}, volume = 1628, series = LNCS, address = NY, month = Jun, pages = {351-366}, annote = {28 references.} } @Article{Knight89, Key="Knight", Author="Kevin Knight", Title="Unification: A Multidisciplinary Survey", Journal=ACMCS, Volume=21, Number=1, Month=Mar, Year=1989, Pages="93-124", Annote="Covers use of unification in type inference, inheritance, Prolog, theorem proving, etc. 178 references." } @InProceedings{Kobayashi99, key = {Kobayashi}, author = {Naoki Kobayashi}, title = {Quasi-Linear Types}, booktitle = {Conference Record of POPL 99: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas}, year = 1999, organization = ACM, address = NY, month = Jan, pages = {29-42}, annote = {22 references.} } @InProceedings{Kozen-Palsberg-Schwartzbach92, Key="Kozen \& Palsberg \& Schwartzbach92", Author="Dexter Kozen and Jens Palsberg and Michael Schwartzbach", Title="Efficient Recursive Subtyping", BookTitle=" Conference record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, South Carolina", Organization=ACM, Year=1993, Month=Jan, Pages="419-428", Annote="9 references" } @InCollection{Kozma-Laborczi82, Key="Kozma \& Laborczi", Author="L. Kozma and Z. Laborczi", Title="On Implementation Problems of Shared Abstract Data Types", BookTitle="Specification and Design of Software Systems, Conference on Operating Systems, Visegrad, Hungary, January, 1982", Year=1982, Series=LNCS, Editor="E. Knuth and E. J. Neuhold", Publisher="Springer-Verlag", Address=NY, Volume=152, Pages="146-152", Annote="Implementing data types for objects shared by parallel processes. 7 references." } @InProceedings{Kristensen-etal83, Key="Kristensen, {\em et al.}", Author="Bent Bruun Kristensen and Ole Lehrmann Madsen and Birger Moller-Pedersen and Kristen Nygaard", Title="Abstraction Mechanisms in the Beta Programming Language", BookTitle="Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Organization=ACM, Month=Jan, Year=1983, Pages="285-298", Annote="Patterns are used to cover all kinds of abstraction and describe data and procedure structures. 16 references." } @InCollection{Kristensen-etal87b, Key="Kristensen, {\em et al.}", Author="Bent Bruun Kristensen and Ole Lehrmann Madsen and Birger Moller-Pedersen and Kristen Nygaard", Title="Classification of actions or Inheritance also for methods", BookTitle="ECOOP '87, European Conference on Object-Oriented Programming, Paris, France", Editor="Jean Bezivin and others", Publisher="Springer-Verlag", Address=NY, Month=Jun, Year=1987, Pages="98-107", Note="Lecture Notes in Computer Science, Volume 276", Annote="12 references." } @InProceedings{Kutzner-Schmidt-Schauss99, key = {Kutzner \& Schmidt-Schau{\ss}}, author = {Arne Kutzner Manfred Schmidt-Schau{\ss}}, title = {A Non-Deterministic Call-by-Need Lambda Calculus}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '98)", Series = SIGPLAN, Volume = "34(1)", Month = Jun, Year = 1999, organization = ACM, pages = {324-335}, annote = {28 references.} } @Article{LaLonde-Thomas-Pugh86, Key="LaLonde \& Thomas \& Pugh", Author="Wilf R. LaLonde and Dave A. Thomas and John R. Pugh", Title="An Exemplar Based {Smalltalk}", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="322-330", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Using exemplars or prototypes in Actra instead of classes and inheritance gives more expressive power. One can separate the logical (subtype) hierarchy from the physical (subclass) hierarchy. Distinct class and instance prototypes. Logical relationships are maintained via the class exemplars and implementation strategies are realized by instance exemplars. Changes needed to make Smalltalk-80 exemplar based. ``Or-inheritance'' allows an object to delegate to one or another exemplar (depending on its state), providing the exemplars all have the same interface. 17 references." } @Article{LaLonde89, Key="LaLonde", Author="Wilf R. LaLonde", Title="Designing Families of Data Types Using Exemplars", Journal=TOPLAS, Volume=11, Number=2, Month=Apr, Year=1989, Pages="212-248", Annote="One should design families of related types. Design method partitions instances into behaviorally distinct subsets (multiple representations), to simply the implementation of each kind of instance and to make the implementation more modular. Lists as an example, show that making inheritance follow the subtype hierarchy does not always allow the most efficient implementation. That is, with multiple implementations, one can profitably use method lookup overhead to perform part of the computation. Incomplete specifications for familial classes, which should be usable. 51 references." } @InCollection{Lamarche87, Key="Lamarche", Author="Francois Lamarche", Title="A Simple Model of the Theory of Constructions", BookTitle="Categories in Computer Science and Logic, Boulder, Colo.", Editor="John W. Gray and Andre Scedrov", Year=1987, Series="Contemporary Mathematics", Volume=92, Organization="American Mathematical Society", Address="Providence, R.I.", Pages="201-216", Annote="10 references." } @Article{Lamb-etal91, Key = "Lamb, {\em et al.}", Author = "Charles Lamb and Gordon Landis and Jack Orenstein and Dan Weinreb", Title = "The ObjectStore Database System", Journal = CACM, Year = 1991, Volume = 34, Number = 10, Month = Oct, Pages = "50-62", Annote = "16 references." } @Article{Lampson-Burstall88, Key="Lampson \& Burstall", Author="B. Lampson and R. Burstall", Title="Pebble, A Kernel Language for Modules and Abstract Data Types", Journal="Information and Computation", Volume=76, Number="2/3", Month="February/March", Year=1988, Pages="278-346", Note="A revised version of the paper that appeared in the 1984 Semantics of Data Types Symposium, LNCS 173, pages 1--50.", Annote="Pebble and its details. Pebble treats types as values and declarations as types. Dependent product types correspond to existential types and dependent arrow types correspond to universal types. 26 references." } @InProceedings{Lampson-Schmidt83, Key="Lampson \& Schmidt", Author="Butler W. Lampson and Eric E. Schmidt", Title="Practical Use of a Polymorphic Applicative Language", Organization=ACM, BookTitle="Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Month=Jan, Year=1983, Pages="237-255", Annote="Language with lambda-abstraction, hierarchical naming and type checking. 16 references." } @Article{Lang-Pearlmutter86, Key="Lang \& Pearlmutter", Author="Kevin J. Lang and Barak A. Pearlmutter", Title="Oaklisp: an Object-Oriented Scheme with First Class Types", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="30-37", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Message passing based on the type of the first argument as in Smalltalk-80; however, message names (operations) are not symbols, but anonymous objects themselves. A method table controls generic invocation. Methods are closed with respect to their lexical environment. Inheritance and method combination via a whopper-like continue mechanism. Coercable types have operations that will coerce objects of their type to related types. Coercions produce new objects in general. Coercions seem to be used in programming binary operations. Types are also anonymous objects. Mixin managers ensure that no type object needs to be created twice. Types thought of as sets of objects; formalized semantics of type hierarchy, where subtypes are subsets. 16 references." } @Article{Lang-Stewart98, Key = "Lang \& Stewart", Author = "Jun Lang and David B. Stewart", Title = "A Study of the Applicability of Existing Exception-Handling Techniques to Component-Based Real-Time Software Technology", journal = TOPLAS, year = 1998, volume = 20, number = 2, month = Mar, pages = {274-301}, annote = {60 references.} } @InCollection{Larcheveque92, Key = "Larcheveque", Author = "J. M. Larcheveque", Title = "Interprocedural Type Propagation for Object-Oriented Languages", BookTitle = "ESOP '92, 4th European Symposium on Programming, Rennes, France, February 1992, Proceedings", Publisher = "Springer-Verlag", Year = 1992, Editor = "Bernd Krieg-Bruckner", Series = LNCS, Address = NY, Volume = 582, Pages = "321-340", Annote = "26 references" } @InProceedings{Launchbury-Sabry97, key = {Launchbury \& Sabry}, author = {John Launchbury and Amr Sabry}, title = {Monadic State: Axiomatization and Type Safety}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '97)", Series = SIGPLAN, Volume = "32(8)", Month = Aug, Year = 1997, organization = ACM, pages = {227-238}, annote = {29 references.} } @PhDThesis{Lauterbach77, Key="Lauterbach", Author="Carlos Helmut Lauterbach", Title="Hierarchical Organization of Data Types for Program Modularity", School="University of California, Los Angeles", Year=1977 } @TechReport{Leavens-Dhara92, Key = "Leavens \& Dhara", Author = "Gary T. Leavens and Krishna Kishore Dhara", Title = "A Foundation for the Model Theory of Abstract Data Types with Mutation and Aliasing (preliminary version)", Institution = "Department of Computer Science, Iowa State University", Address = "Ames, Iowa, 50011", Number = "92-35", Year = 1992, Month = Nov, Note = "Available by anonymous ftp from ftp.cs.iastate.edu, and by e-mail from almanac@cs.iastate.edu", Annote = "14 references." } @TechReport{Leavens-Dhara94, Key = "Leavens \& Dhara", Author = "Gary T. Leavens and Krishna Kishore Dhara", Title = "Blended Algebraic and Denotational Semantics for {ADT} Languages", Institution = "Department of Computer Science, Iowa State University", Address = "Ames, Iowa, 50011", Number = "93-21b", Year = 1994, Month = Sep, URL = "ftp://ftp.cs.iastate.edu/pub/techreports/TR93-21/TR.ps.Z", Note = "Available by anonymous ftp from ftp.cs.iastate.edu, and by e-mail from almanac@cs.iastate.edu", Annote = "32 references." } @TechReport{Leavens-Liskov85, Key="Leavens \& Liskov", Author="Gary T. Leavens and Barbara Liskov", Title="The Name Clash Problem and a Proposed Solution", Institution=MITLCS, Type="DSG Note", Number=130, Month=Oct, Year=1985, Annote="Discusses the problems caused by where clauses in CLU and Argus, that is, the limits of their expressive power. Proposes making required operations parameters. 5 references." } @TechReport{Leavens-Weihl83, Key="Leavens \& Weihl", Author="Gary T. Leavens and William E. Weihl", Title="Exceptions and Type Compatibility", Institution=MITLCS, Type="DSG Note", Number=117, Month=Sep, Year=1983, Annote="Discusses several type compatibility rules for proctypes to allow proctypes with differing signals to be assigned and passed as parameters. Problems with recursive rules." } @Article{Leavens84, Key="Leavens", Author="Gary T. Leavens", Title="Bibliography on Data Types", Journal=SIGPLAN, Year=1984, Volume=19, Number=8, Month=Aug, Pages="41-50", Annote="Hundreds of annotated references, but the bibliography is not selective and gives the reader no direction." } @TechReport{Leavens85, Key="Leavens", Author="Gary T. Leavens", Title="Abstractions and Type Checking in the Argus Library", Institution=MITLCS, Type="DSG Note", Number=135, Month=Dec, Year=1985, Annote="Rationale for the design of the Argus library. 9 references." } @Article{Leavens91b, Key = "Leavens", Author = "Gary T. Leavens", Title = "Introduction to the Literature on Object-Oriented Design, Programming, and Languages", Journal = "OOPS Messenger", Year = 1991, Volume = 2, Number = 4, Month = Oct, Annote = "Hundreds of references." } @InCollection{Lecluse-Richard88, Key="L\'{e}cluse \& Richard", Author="C. L\'{e}cluse and P. Richard", Title="Modeling Inheritance and Genericity in Object Oriented-Databases", BookTitle="ICDT '88, 2nd International Conference on Database Theory, Bruges, Belgium, August/September 1988", Editor="M. Gyssens and J. Paredaens and D. Van Gucht", Series=LNCS, Volume=326, Publisher="Springer-Verlag", Address=NY, Pages="223-238", Year=1988, Annote="18 references." } @Article{Lee-Yi98, Key = "Lee \& Yi", Author = "Oukseh Lee and Kwangkeun Yi", Title = "Proofs about a Folklore Let-Polymorphic Type Inference Algorithm", journal = TOPLAS, year = 1998, volume = 20, number = 4, month = Jul, pages = {707-723}, annote = {14 references.} } @InProceedings{Leivant83a, Key="Leivant", Author="Daniel Leivant", Title="Polymorphic Type Inference", Organization=ACM, BookTitle="Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Month=Jan, Year=1983, Pages="83-98", Annote="26 references." } @InProceedings{Leivant83b, Key="Leivant", Author="Daniel Leivant", Title="Structural Semantics for Polymorphic Data Types (preliminary report)", Organization=ACM, BookTitle="Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Month=Jan, Year=1983, Pages="155-166", Annote="20 references." } @InProceedings{Leivant89, Key="Leivant", Author="Daniel Leivant", Title="Stratified polymorphism (extended summary)", BookTitle="Fourth Annual Symposium on Logic in Computer Science, Pacific Grove, California", Organization=IEEE, Month=Jun, Year=1989, Pages="39-47", Annote="Functions representable in the finitely-stratified lambda calculus are the super-elementary functions. 29 references." } @InProceedings{Leivant90, Key="Leivant", Author="Daniel Leivant", Title="Discrete Polymorphism", BookTitle="Proceedings of the 1990 ACM Conference on LISP and Functional Programming, Nice, France", Organization=ACM, Month=Jun, Year=1990, Pages="288-297", Annote="Extension of the Coppo-Dezani lambda calculus with infinite intersection types. references." } @Article{Leroy-Mauny93, Key = "Leroy \& Mauny", Author = "Xavier Leroy and Michel Mauny", Title = "Dynamics in ML", Journal = "Journal of Functional Programming", Year = 1993, Volume = 3, Number = 4, Month = Oct, Pages = "431-463", Annote = "29 references." } @InProceedings{Leroy-Rouaix98, key = {Leroy \& Rouaix}, author = {Xavier Leroy and Fran\c{c}ois Rouaix}, title = {Security properties of typed applets}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {391-403}, annote = {34 references.} } @InProceedings{Leroy94, Key = {Leroy}, Author = {Xavier Leroy}, Title = "Manifest types, modules, and separate compilation", BookTitle = "Conference Record of POPL '94: 21ST ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Portland, Oregon", Month = Jan, Year = 1994, Organization = ACM, Address = NY, Pages = "109-122", Annote = "27 references." } @InProceedings{Leroy95, Key = {Leroy}, Author = {Xavier Leroy}, Title = "Applicative functors and fully transparent higher-order modules", BookTitle = "Conference Record of POPL '95: 22nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, Calif.", Month = Jan, Year = 1995, Organization = ACM, Address = NY, Pages = "142-153", Annote = "Enhancements to the ML module system. 18 references." } @InCollection{Leszczylowski-Wirsing91, Key = "Leszczylowski \& Wirsing", Author = "Jacek Leszczylowski and Martin Wirsing", Title = "Polymorphism, Parameterization and typing: an algebraic specification perspective", BookTitle = "STACS 91, 8th Annual Symposium on Theoretical Aspects of Computer Science, Hamburg, Germany", Publisher = Springer-Verlag, Year = 1991, Editor = "C. Choffrut and M. Jantzen", Series = LNCS, Volume = 480, Pages = "1-15", Address = NY, Month = Feb } @Article{Lieberman86, Key="Lieberman", Author="Henry Lieberman", Title="Using Prototypical Objects to Implement Shared Behavior in Object Oriented Systems", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="214-223", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Prototypes represent default behavior for a concept. Delegation is used instead of inheritance. Delegation is more flexible and general than inheritance. Inheritance cannot easily simulate delegation. 15 references." } @TechReport{Lindig93, author = {Christian Lindig}, title = {{STYLE}: A Practical Type Checker for {Scheme}}, institution = {Technische Universitat Braunschweig}, year = 1993, key = {Lindig}, type = {Informatik-Bericht}, number = {93-10}, month = Oct } @Article{Lipkie-etal82, Key="Lipkie, {\em et al.}", Author="Dr. Daniel E. Lipkie and Steven R. Evans and John K. Newlin and Robert L. Weissman", Title="Star Graphics: An Object Oriented Implementation", Journal="Computer Graphics", Volume=16, Number=3, Month=Jul, Year=1982, Pages="115-124", Annote="Discusses the Traits mechanism. 9 references." } @InProceedings{Liquori-Castagna96, author = "L. Liquori and G. Castagna", title = "A typed lambda calculus of objects", key = "Liquori \& Castagna", series = "Lecture Notes in Computer Science", booktitle = "1996 Asian Computing Conference", year = 1996 } @InCollection{Liquori97, key = {Liquori}, author = {Luigi Liquori}, title = {Subtyping is Not a Good ``Match'' for Object-Oriented Languages}, booktitle = {ECOOP '97 --- Object-Oriented Programming 11th European Conference, Jyv\"{a}skyl\"{a}, Finland}, publisher = {Springer-Verlag}, year = 1997, editor = {Mehmet Ak\c{s}it and Satoshi Matsuoka}, volume = 1241, series = LNCS, address = NY, month = Jun, pages = {146-169}, annote = {21 references.} } @TechReport{Liskov-etal95, Author = "Barbara Liskov and Dorothy Curtis and Mark Day and Sanjay Ghemawat and Robert Gruber and Paul Johnson and Andrew C. Myers", Title = "Theta Reference Manual", Institution = MITLCS, Month = Feb, Year = 1995, Number = "Programming Methodology Group Memo 88", URL = "http://clef.lcs.mit.edu/Thor-papers.html" } @Book{Liskov-etal81, Key="Liskov, {\em et al.}", Author="Barbara Liskov and Russell Atkinson and Toby Bloom and Eliot Moss and J. Craig Schaffert and Robert Scheifler and Alan Snyder", Title="CLU Reference Manual", Series=LNCS, Volume=114, Publisher="Springer-Verlag", Address=NY, Year=1981, Annote="Strongly typed, exception handling, abstraction mechanisms." } @Article{Liskov88, Key="Liskov", Author="Barbara Liskov", Title="Data Abstraction and Hierarchy", Journal=SIGPLAN, Volume=23, Number=5, Month=May, Year=1988, Pages="17-34", Note="Revised version of the keynote address given at OOPSLA '87.", Annote="When a subclass uses its superclass abstractly (as a client), then the superclass might just as well have been a component of the representation. When a subclass does not use its superclass abstractly, then this inheritance is an implementation detail that is best forgotten. So implementation inheritance may be useful but uninteresting from the point of view of design. Subtyping, as a semantic relation, is interesting because it allows one to keep track of design decisions, group and classify types, limit the effects of specification changes, and provides for generics. Data abstraction is fundamental to object oriented programming." } @TechReport{Liskov90, Key = "Liskov", Author = "Barbara Liskov", Title = "Constraining Subtypes", Institution = MITLCS, Year = 1990, Type = "Mercury Design Note", Number = 49, Month = Dec } @InProceedings{Litvinov98, Key = "Litvinov", Author = "Vassily Litvinov", Title = "Constraint-Based Polymorphism in {Cecil}: Towards a Practical and Static Type System", BookTitle = "OOPSLA '98 Conference Proceedings", Series=SIGPLAN, Volume="33(10)", Month=Oct, Year=1998, Pages="388-411", URL="ftp://ftp.cs.washington.edu/pub/chambers/sbp-oopsla.ps.gz", Note="The proceedings contains a preliminary version of the paper, by mistake. The final version of the paper is found at the URL: \newline ftp://ftp.cs.washington.edu/pub/chambers/sbp-oopsla.ps.gz.", Annote = "38 references." } @Article{Liu-Ku92, Key = "Liu \& Ku", Author = "Bing Liu and Yuen-Wah Ku", Title = "ConstraintLisp: An Object-Oriented Constraint Programming Language", Journal = SIGPLAN, Month = Nov, Year = 1992, Volume = 27, Number = 11, Pages = "17-26", Annote = "19 references." } @TechReport{Longo88, Key="Longo", Author="Giuseppe Longo", Title="Some Aspects of Impredicativity", Institution=CMU, Month=Apr, Year=1988, Number="CMU-CS-88-135", Note="Lecture delivered at the {\em Logic Colloquium '87}, North Holland Studies in Logic, to appear.", Annote="60 references." } @InCollection{Longo93, Key="Longo", Author="G. Longo", Title="Types as Parameters", Journal=LNCS, Number=668, Publisher="Springer-Verlag", Address=NY, Editor="M. C. Gaudel and J. P. Jouannaud", Year=1993, Note="TAPSOFT '93: Theory and Practice of Software Development. 4th International Joint Conference CAAP/FASE France, April 1993. Proceedings.", Pages="658-670", Annote="40 references" } @InProceedings{Lucassen-Gifford88, Key="Lucassen \& Gifford", Author="John M. Lucassen and David K. Gifford", Title="Polymorphic Effect Systems", BookTitle="Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, San Diego, Calif.", Organization=ACM, Month=Jan, Year=1988, Pages="47-57", Annote="16 references." } @TechReport{Lucassen87, Key="Lucassen", Author="John M. Lucassen", Title="Types and Effects: Towards the Integration of Functional and Imperative Programming", Institution=MITLCS, Month=Aug, Year=1987, Number="TR-408", Annote="The author's Ph. D thesis. Every expression has both a type and effect. Polymorphic effect checking. Allows functional and imperative programming to be merged. 45 references." } @Article{Lunau89, Key="Lunau", Author="Charlotte Pii Lunau", Title="Separation of Hierarchies in Duo-Talk", Journal=JOOP, Month="July/August", Year=1989, Pages="20-25", Annote="Inheritance of interfaces gives a subtype hierarchy, separate from the subclass hierarchy. Cannot replace inherited methods with an error message. Multiple implementations of a type. No behavioral specifications. 15 references." } @InCollection{Luo91, Key = "Luo", Author = "Z. Luo", Title = "Program Specification and Data Refinement in Type Theory", BookTitle = "TAPSOFT '91, Proceedings of the International Joint Conference on Theory and Practice of Software Development, Brighton, UK, Volume 1: Colloquium on Trees in Algebra and Programming (CAAP '91)", Publisher = Springer-Verlag, Year = 1991, Editor = "S. Abramsky and T. S. E. Maibaum", Series = LNCS, Volume = 493, Pages = "143-168", Address = NY, Month = Apr } @Article{Ma-Kessler90, Key="Ma \& Kessler", Author="K.-L. Ma and R. R. Kessler", Title="TICL---A Type Inference System for Common Lisp", Journal=SPE, Volume=20, Number=6, Month=Jun, Year=1990, Pages="593-624" } @InProceedings{Ma92, Key = "Ma", Author = "QingMing Ma", Title = "Parametericity as Subtyping", BookTitle = "Conference Record of the Nineteenth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages", Year = 1992, Pages = "281-292", Organization = ACM, Month = Jan, Annote = "27 references." } @Article{MacAuslans92, Key = "MacAuslans", Author = "Joel MacAuslans", Title = "A Note on 'Towards a Type Theory for Active Objects'", Journal = "OOPS Messenger", Volume = 3, Number = 3, Month = Jul, Year = 1992, Pages = "2-9", Annote = "3 references" } @Article{MacLennan83, Key="MacLennan", Author="B. J. MacLennan", Title="Abstraction in the iAPX-432 Prototype Systems Implementation Language", Journal=SIGPLAN, Volume=18, Number=12, Month=Dec, Pages="86-95", Year=1983, Annote="Language definition excerpt. An object-oriented language with abstraction and classes. Classes defined hierarchically by giving a genus and a list of differences. Combining forms (packages) with classes allows multiple implementations of a given abstract type to coexist. Type implementation returning procs give generics. Partially implemented types can be defined and extended. Explicit manipulation of operators associated with a class object is used for protection. Trademarks and seals integrated into the type system. 6 references." } @TechReport{MacQueen-Burstall81, Key="MacQueen \& Burstall", Author="D. B. MacQueen and R. M. Burstall", Title="Structure and Parameterization in a Typed Functional Language", Institution="Bell Laboratories", Year=1981, Month=Sep, Number="TM-81-11271-9", Annote="Describes the type system of 'Hope' and its motivation. 20 references." } @InProceedings{MacQueen-Plotkin-Sethi84, Key="MacQueen \& Plotkin \& Sethi", Author="David MacQueen and Gordon Plotkin and Ravi Sethi", Title="An Ideal Model for Recursive Polymorphic Types", Organization=ACM, BookTitle="Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, Salt Lake City, Utah", Month=Jan, Year=1984, Pages="165-174", Annote="Model for type inference dealing with recursive types, formalizing the view of types as sets of values. Metric structure on types to establish existence and uniqueness of recursive type equations. 23 references." } @Article{MacQueen-Plotkin-Sethi86, Key="MacQueen \& Plotkin \& Sethi", Author="David MacQueen and Gordon Plotkin and Ravi Sethi", Title="An Ideal Model for Recursive Polymorphic Types", Journal="Information and Control", Volume=71, Number="1/2", Month="Oct./Nov.", Year=1986, Pages="95-130", Annote="31 references." } @InProceedings{MacQueen-Sethi82, Key="MacQueen \& Sethi", Author="D. B. MacQueen and Ravi Sethi", Title="A Semantic Model of Types for Applicative Languages", Publisher=ACM, BookTitle="ACM Symp. on LISP and Functional Programming", Year=1982, Pages="243-252", Annote="Types formalized as ideals. Polymorphism, soundness of type inference. 14 references." } @Article{MacQueen83, Key="MacQueen", Author="David MacQueen", Title="Modules for Standard ML (Draft)", Journal="Polymorphism: The ML/LCF/Hope Newsletter", Volume="I", Number=3, Month=Dec, Year=1983, Annote="5 references." } @InProceedings{MacQueen84, Key="MacQueen", Title="Modules for {Standard} {ML}", Author="David MacQueen", BookTitle="Proceedings of the Symposium on {LISP} and Functional Programming, Austin, Texas", Organization=ACM, Pages="198-207", Month=Aug, Year=1984 } @InProceedings{MacQueen86, Key="MacQueen", Author="David MacQueen", Title="Using Dependent Types to Express Modular Structure", BookTitle="Conference Record of the Thirteenth Annual ACM Symposium on Principles of Programming Languages, St. Petersburg Beach, Florida", Organization=ACM, Month=Jan, Year=1986, Pages="277-286", Annote="Discusses some practical problems with SOL and presents a stratified type system as an alternative. 26 references." } @Article{Madsen-Magnusson-Moller-Pedersen90, Key = "Madsen \& Magnusson \& Moller-Pedersen", Author = "Ole Lehrmann Madsen and Boris Magnusson and Birger Moller-Pedersen", Title = "Strong Typing of Object-Oriented Languages Revisited", Journal = SIGPLAN, Year = 1990, Volume = 25, Number = 10, Month = Oct, Pages = "140-150", Note = "{\em OOPSLA ECOOP '90 Proceedings}, N. Meyrowitz (editor).", Annote = "1 reference." } @Article{Maier-etal86, Key="Maier, {\em et al.}", Author="David Maier and Jacob Stein and Allen Otis and Alan Purdy", Title="Development of an Object-Oriented DBMS", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="472-482", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="GemStone is an object-oriented database server that provides an object-oriented database language called OPAL. Based on Smalltalk-80. Optimistic concurrency control algorithms using shadows. Read/Write access control on segments. 45 references." } @InProceedings{Mairson93, Key="MAirson", Author="Harry G. Mairson", Title="A constructive logic of Multiple SubTyping", BookTitle=" Conference record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, South Carolina", Organization=ACM, Year=1993, Month=Jan, Pages="313-324", Annote="21 references" } @Article{Mannino-Choi-Batory90, Key="Mannino \& Choi \& Batory", Author="Micael V. Mannino and In Jun Choi and Don S. Batory", Title="The Object-Oriented Functional Data Language", Journal=IEEETSE, Volume=16, Number=11, Month=Nov, Year=1990, Pages="1258-1272", Annote="Integration of functional and object-oriented languges. 42 references." } @InProceedings{Marlow-Wadler97, key = {Marlow \& Wadler}, author = {Simon Marlow and Philip Wadler}, title = {A Practical Subtyping System for Erlang}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '97)", Series = SIGPLAN, Volume = "32(8)", Month = Aug, Year = 1997, organization = ACM, pages = {136-149}, annote = {21 references.} } @TechReport{Marti-Oliet-Meseguer90, Key = "Marti-Oliet \& Meseguer", Author = "Narciso Marti-Oliet and Jose Meseguer", Title = "Inclusions and Subtypes", Institution = "Computer Science Laboratory, SRI International", Year = 1990, Number = "SRI-CSL-90-16", Address = "333 Ravenswood Ave., Menlo Park, Calif.", Month = Dec, Annote = "50 references." } @TechReport{Martin-Lof80, Key={Martin-L\"{o}f}, Author={Per Martin-L\"{o}f}, Title="Intuitionistic Type Theory. Notes of Giowanni Sambin on a series of lectues given in Padova", Institution="Univ. of Padova", Address="Padova, Italy", Month=Jun, Year=1980 } @InCollection{Martin-Lof82, Key={Martin-L\"{o}f}, Author={Per Martin-L\"{o}f}, Title="Constructive Mathematics and Computer Programming", BookTitle="Logic, Methodology, and Philosophy of Science VI (Proceedings of the Sixth International Congress; Hannover, 1979)", Editor="L. J. Cohen and others", Series="Studies in Logic and the Foundations of Mathematics", Volume=104, Publisher="North Holland", Address="Amsterdam", Year=1982, Pages="153-175", Annote="12 references." } @Book{Martin-Lof84, Key={Martin-L\"{o}f}, Author={Per Martin-L\"{o}f}, Title="Intuitionistic Type Theory", Publisher="Bibioplois", Address="Napoli", Year=1984, Note="Notes of Giowanni Sambin on a series of lectues given in Padova" } @InProceedings{Martin-Lof85, Key={Martin-L\"{o}f}, Author={Per Martin-L\"{o}f}, Title="Constructive Mathematics and Computer Programming", BookTitle="Mathematical Logic and Programming Languages", Publisher=Prentice-Hall, Address="Englewood Cliffs, N.J.", Year=1985, Pages="167-184" } @TechReport{Matthews82a, Key="Matthews", Author="D. C. J. Matthews", Title="Poly Report", Institution="Computer Laboratory, University of Cambridge, Cambridge, England", Year=1982, Month=Aug, Number=28, Note="Reprinted in {\em Polymorphism: The ML/LCF/Hope Newsletter}, I(2), April, 1983.", Annote="Extends ideas of Russell. Allows polymorphic operations which can manipulate abstract objects. Types may be passed explicitly or by inference. Overloading. Exceptions as in CLU. 3 references." } @TechReport{Matthews82b, Key="Matthews", Author="D. C. J. Matthews", Title="Introduction to Poly", Institution="Computer Laboratory, University of Cambridge, Cambridge, England", Year=1982, Month=May, Number=29, Note="Reprinted in {\em Polymorphism: The ML/LCF/Hope Newsletter}, I(2), April, 1983.", Annote="Tutorial introduction to Poly. Examples of polymorphic list functions, double precision integer package and subrange type constructor." } @Article{Matthews85a, Key="Matthews", Author="David C. J. Matthews", Title="Poly Manual", Journal=SIGPLAN, Volume=20, Number=9, Month=Sep, Year=1985, Pages="52-76", Annote="Reference manual for Poly: a language with a polymorphic type system. This differs substantially from earlier versions of Poly. Still has types passed explicitly or by inference. Type marks are used in type checking and a set of objects which is like a module. 3 references." } @InProceedings{Matthews85b, Key="Matthews", Author="David C. J. Matthews", Title="An overview of the Poly Programming Language", BookTitle="Persistence and Data Types: Papers for the Appin Workshop", Month=Aug, Year=1985, Organization="Universities of Glasgow and St. Andrews, Departments of Computer Science", Note="Persistent Programming Research Report 16", Pages="265-274", Annote="Types as first-class values in Poly. 6 references." } @UnPublished{Maung93, Key="Maung", Author="Ian Maung", Title="A Study of Behavioural Subtyping", Note="Obtained from the author", Year=1993, Month=Oct, Annote="32 references." } @Article{McAllester-Zabih86, Key="McAllester \& Zabih", Author="David McAllester and Ramin Zabih", Title="Boolean Classes", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="417-423", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Classes are viewed as predicates. Boolean classes are constructed from other classes using and, or, and not. Boolean classes are used to abbreviate combinations of various classes. 3 references." } @PhDThesis{McCracken79, Key="McCracken", Author="N. McCracken", Title="An Investigation of a Programming Language with a Polymorphic Type Structure", School="Syracuse University", Year=1979 } @InCollection{McCracken84, Key="McCracken", Author="Nancy McCracken", Title="The Typechecking of Programs with Implicit Type Structure", BookTitle="Semantics of Data Types: International Symposium, Sophia-Antipolis, France", Publisher="Springer-Verlag", Address=NY, Editor="G. Kahn, D. B. MacQueen and G. Plotkin", Series=LNCS, Volume=173, Month=Jun, Year=1984, Pages="301-315", Annote="Mix of explicit and implicit types. Least general predecessors. Algorithms for type inference. Result is a system that is not complete. Expansion is not defined. 8 references." } @Article{McGettrick79, Key="McGettrick", Title="Aspects of the Algol 68 Mode Structure", Author="Andrew D. McGettrick", Journal=SIGPLAN, Volume=14, Number=7, Month=Jul, Pages="62-77", Year=1979, Annote="Considers Algol 68 modes and all sorts of wild extensions: e.g. mode d = proc (d) d. 31 references" } @Article{McGraw82, Key="McGraw", Title="The VAL Language: Description and Analysis", Author="James R. McGraw", Journal=TOPLAS, Volume=4, Number=1, Month=Jan, Year=1982, Pages="44-82", Annote="Describes the type structure in VAL. 54 references." } @Article{Medvidovic-etal98, key = {Medvidovic, {,em et al.}}, author = {Nenad Medvidovic and Peyman Oreizy and Jason E. Robbins and Richard N. Taylor}, title = {Using Object-Oriented Typing to Support Architectural Design in the {C2} Style}, journal = SIGSOFT, year = 1996, editor = {David Garlan}, volume = 21, number = 6, month = Nov, pages = {24-32}, note = {SIGSOFT '96: Proceedings of the Fourth ACM SIGSOFT Symposium on the Foundations of Software Engineering, San Francisco, California}, annote = {Component composability, substitutability (subtyping) and reuse. 27 references.} } @InCollection{Meertens81, Key="Meertens", Author="Lambert Meertens", Title="Issues in the Design of a Beginner's Programming Language", BookTitle="Algorithmic Languages", Publisher="IFIP, North-Holland", Address="Amsterdam", Year=1981, Pages="167-184", Editor="J. W. de Bakker and J. C. van Vliet", Annote="Discusses type checking for the B language. 14 references." } @InProceedings{Meertens83, Key="Meertens", Author="Lambert Meertens", Title="Incremental Polymorphic Type Checking in B", Organization=ACM, BookTitle="Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Month=Jan, Year=1983, Pages="265-275", Annote="13 references." } @InCollection{Mendler87, Key = "Mendler", Author = "N. P. Mendler", Title = "Recursive Types and Type Constraints in Second-Order Lambda Calculus", BookTitle = "Symposium on Logic in Computer Science, Ithaca, NY", Publisher = IEEE, Year = 1987, Pages = "30-36", Month = Jun, Annote = "13 references." } @Article{Mendler91, Key = "Mendler", Author = "N. P. Mendler", Title = "Inductive Types and Type Constraints in the Second-order Lambda Calculus", Journal = "Annals of Pure and Applied Logic", Year = 1991, Volume = 51, Number = "1-2", Month = Mar, Pages = "159 ff." } @InProceedings{Meseguer89a, Key="Meseguer", Author="J. Meseguer", Title="Relating Models of Polymorphism", Organization=ACM, BookTitle="Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Month=Jan, Year=1989, Pages="228-241", Annote="55 references." } @InProceedings{Meyer-Reinhold86, Key="Meyer \& Reinhold", Author="Albert R. Meyer and Mark B. Reinhold", Title="'Type' is Not a Type: Preliminary Report", BookTitle="Conference Record of the Thirteenth Annual ACM Symposium on Principles of Programming Languages, St. Petersburg Beach, Florida", Organization=ACM, Month=Jan, Year=1986, Pages="287-295", Annote="Why making 'type' a type causes problems. 31 references." } @Article{Meyer86, Key="Meyer", Author="Bertrand Meyer", Title="Genericity versus Inheritance", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="391-405", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="A comparison of generics and subtyping as styles of polymorphism. The programming language Eiffel, which is statically typed and object-oriented with multiple inheritance. Description of generics and default operation parameters in Ada. Modules equated with types in object-oriented languages. In Eiffel, a class can inherit (data) more than once from the same superclass. The simulation of inheritance with generics is not acceptable from a software engineering standpoint. One can simulate generics with inheritance in Eiffel, at the expense of some duplication of code. Eiffel itself has generics type parameters, but no constraints on generic type parameters. 15 references." } @TechReport{Millstein-Chambers98, key = {Millstein \& Chambers}, author = {Todd Millstein and Craig Chambers}, title = {Modular Statically Typed Multimethods}, institution = {University of Washington}, year = 1998, number = {UW-CSE-98-07-01}, month = Jul, URL = "ftp://ftp.cs.washington.edu/homes/chambers/dubious.ps.gz" } @InCollection{Millstein-Chambers99, key = {Millstein \& Chambers}, author = {Todd Millstein and Craig Chambers}, title = {Modular Statically Typed Multimethods}, booktitle = {ECOOP '99 --- Object-Oriented Programming 13th European Conference, Lisbon Portugal}, publisher = {Springer-Verlag}, year = 1999, editor = {Rachid Guerraoui}, volume = 1628, series = LNCS, address = NY, month = Jun, pages = {279-303}, annote = {41 references.} } @Article{Milner83, Key="Milner", Author="Robin Milner", Title="A Proposal for Standard ML", Journal="Polymorphism: The ML/LCF/Hope Newsletter", Volume="I", Number=3, Month=Dec, Year=1983, Note="Also appeared in the Conference Record of the ACM Symposium on Lisp and Functional Programming, Austin, Texas, August 1984, pages 184-197 and as Tech. Report CSR-157-83, University of Edinburgh, Edinburgh, Scotland, 1983.", Annote="3 references." } @InProceedings{Milner84, Key="Milner", Author="Robin Milner", Title="A Proposal for Standard ML", BookTitle="Conference Record of the ACM Symposium on {LISP} and Functional Programming, Austin, Texas", Organization=ACM, Month=Aug, Year=1984, Pages="184-197", Note="Also appeared as Tech. Report CSR-157-83, University of Edinburgh, Edinburgh, Scotland, 1983.", Annote="3 references." } @InProceedings{Minsky83, Key="Minsky", Author="Naftaly H. Minsky", Title="Locality in Software Systems", BookTitle="Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Organization=ACM, Month=Jan, Year=1983, Pages="299-312", Annote="Discusses how the support for a proof of correctness of an invariant can be localized in a module and the problems with typical module constructs for this purpose. Protection based solution uses export connection rather than import connection to achieve minimal support. Connections based on privileges (operations) rather than on resources (types as a whole). Privileges can be granted to be redistributed or not. 26 references." } @InProceedings{Mitchell-Harper88, Key="Mitchell \& Harper", Author="John C. Mitchell and Robert Harper", Title="The Essence of ML", BookTitle="Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, San Diego, Calif.", Organization=ACM, Month=Jan, Year=1988, Pages="28-46", Annote="54 references." } @Unpublished{Mitchell-Honsell-Fisher92, Key = "Mitchell \& Honsell \& Fisher", Author = "John C. Mitchell and Furio Honsell and Kathleen Fisher", Title = "A Lambda Calculus of Objects and Method Specialization (summary)", Month = Dec, Year = 1992, Note = "Obtained from the authors by anonymous ftp" } @TechReport{Mitchell-Maybury-Sweet79, Key="Mitchell \& Maybury \& Sweet", Author="James G. Mitchell and William Maybury and Richard Sweet", Title="Mesa Language Manual", Institution="Xerox Palo Alto Research Centers", Year=1979, Month=Apr, Number="CSL-79-3", Annote="Mesa is a systems programming language with modules which are used to program abstract data types." } @InProceedings{Mitchell-Meldal-Madhav91, Key="Mitchell \& Meldal \& Madhav", Author="John Mitchell and Sigurd Meldal and Neel Madhav", Title="An extension of Standard ML modules with subtyping and inheritance", BookTitle="Conference Record of the Eighteenth Annual ACM Symposium on Principles of Programming Languages, Orlando", Organization=ACM, Month=Jan, Year=1991, Pages="270-278", Annote="32 references." } @InCollection{Mitchell-Moggi87, Key = "Mitchell \& Moggi", Author = "John C. Mitchell and Eugenio Moggi", Title = "Kripke-style models for typed lambda calculus", BookTitle = "Symposium on Logic in Computer Science, Ithaca, NY", Publisher = IEEE, Year = 1987, Pages = "303-314", Month = Jun, Annote = "24 references." } @InProceedings{Mitchell-Plotkin85, Key="Mitchell \& Plotkin", Author="John C. Mitchell and Gordon D. Plotkin", Title="Abstract Types have Existential Type", BookTitle="Conference Record of the 12th Annual ACM Symposium on Principles of Programming Languages, New Orleans, Louisana", Publisher=ACM, Month=Jan, Year=1985, Pages="37-51" } @Unpublished{Mitchell-Scedrov93, Key = "Mitchell \& Scedrov", Author = "John C. Mitchell and Andre Scedrov", Title = "Notes on Sconing and Relators", Year = 1993, Note = "Obtained from the authors by anonymous ftp.", Annote = "40 references" } @InCollection{Mitchell-Scott87, Key="Mitchell \& Scott", Author="John C. Mitchell and Philip J. Scott", Title="Typed Lambda Calculus Models and Cartesian Closed Categories (preliminary version)", BookTitle="Categories in Computer Science and Logic, Boulder, Colo.", Editor="John W. Gray and Andre Scedrov", Year=1987, Series="Contemporary Mathematics", Volume=92, Organization="American Mathematical Society", Address="Providence, R.I.", Pages="301-316", Annote="18 references." } @InProceedings{Mitchell84a, Key="Mitchell", Author="John C. Mitchell", Title="Coercion and Type Inference (Summary)", Organization=ACM, BookTitle="Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, Salt Lake City, Utah", Month=Jan, Year=1984, Pages="175-185", Annote="Semantic model of automatic coercions in a type-inferred language. Type containment in general. 26 references." } @PhDThesis{Mitchell84b, Key="Mitchell", Author="John Clifford Mitchell", Title="Lambda Calculus Models of Typed Programming Languages", School=MIT, Month=Aug, Year=1984, Annote="Discusses the second order lambda calculus, its features and semantics. Also discusses type inference and inference models. 106 references." } @InProceedings{Mitchell86, Key="Mitchell", Author="John C. Mitchell", Title="Representation Independence and Data Abstraction (preliminary version)", BookTitle="Conference Record of the Thirteenth Annual ACM Symposium on Principles of Programming Languages, St. Petersburg Beach, Florida", Organization=ACM, Month=Jan, Year=1986, Pages="263-276", Annote="Defines representation independence as meaning that programs cannot depend on the way a data type is implemented. Shows that the second order lambda calculus as defined in his thesis has this property. 22 references." } @Article{Mitchell88, Key="Mitchell", Author="John C. Mitchell", Title="Polymorphic Type Inference and Containment", Journal="Information and Computation", Volume=76, Number="2/3", Month="February/March", Year=1988, Pages="211-249", Note="An extended version of the paper that appeared in the 1984 Semantics of Data Types Symposium, LNCS 173, pages 257--278.", Annote="Semantics for quantified types over arbitrary models of untyped lambda calculus. Inference models are a generalization of ideal models. 37 references." } @InProceedings{Mitchell90a, Key="Mitchell", Author="John C. Mitchell", Title="Toward a typed foundation for method specialization and inheritance", BookTitle="Conference Record of the Seventeenth Annual ACM Symposium on Principles of Programming Languages, San Francisco, Calif.", Organization=ACM, Month=Jan, Year=1990, Pages="109-124" } @InCollection{Mitchell90b, Key="Mitchell", Author="John C. Mitchell", Title="Type systems for programming languages", BookTitle="Handbook of Theoretical Computer Science", Chapter=8, Pages="365-458", Volume="B: Formal Models and Semantics", Editor="J. van Leeuwen", Publisher="North-Holland", Address=NY, Year=1990, Annote="140 references." } @Article{Mitchell91b, Key = "Mitchell", Author = "John C. Mitchell", Title = "Type Inference with Simple Subtypes", Journal = "Journal of Functional Programming", Year = 1991, Volume = 1, Number = 3, Month = Jul, Pages = "245-286", Annote = "39 references." } @Book{Mitchell96, key = "Mitchell", author = "John C. Mitchell", title = "Foundations for Programming Languages", publisher = "MIT Press", address = "Cambridge, MA", year = 1996, ISBN = "0-262-13321-0", annote = "Graduate text on programming language theory. Focus on typed lambda calculus. Hundreds of references." } @Article{Moffat81, Key="Moffat", Title="A Model for Pascal-like Typing", Author="David V. Moffat", Journal=SIGPLAN, Volume=16, Number=7, Month=Jul, Year=1981, Pages="66-74", Annote="Clear exposition of what is meant by various kinds of types and type equivalence rules. 11 references." } @InCollection{Monsuez, Key="Monsuez", Author="B. Monsuez", Title="Polymorphic Typing by Abstract Interpretation", Series="Lecture Notes in Computer Science", Number=652, Publisher="Springer-Verlag", Address="Berlin, Germany", Editor="R. Shyamasundar", Pages="217-228", Note="Foundations of Software Technology and Theortical Computer Science. 12th Conference, New Delhi, India, Dec 92. Proceedings", Annote="17 references" } @InCollection{Monsuez93, Key = "Monsuez", Author = "B. Monsuez", Title = "Polymorphic Typing for Call-By-Name Semantics", BookTitle = "Formal Methods in Programming and Their Applications", Publisher = "Springer-Verlag", Year = 1993, Editor = "Dines Bjoerner and Manfred Broy and Igor V. Pottosin", Series = LNCS, Volume = 735, Pages = "156-169", Month = Jul, Annote = "19 references." } @InProceedings{Monteleone89, Key="Monteleone", Author="Gennaro Monteleone", Title="Generalized Conjunctive Types", Organization=ACM, BookTitle="Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Month=Jan, Year=1989, Pages="242-249", Annote="Only conjunctions of compatible types are allowed. 11 references." } @Article{Moon86, Key="Moon", Author="David A. Moon", Title="Object-Oriented Programming with {{\em Flavors}}", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="1-8", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Description of the new Flavors mechanism. Goals are program modularity, ease of development of large programs, and efficiency. Generic functions can be defined, besides object methods. Flavor ordering on mixed-in flavors is consistent with each flavor's own ordering. Inherited instance variables are the union of the instance variables of each component. Description of the various kinds of method combination; users can define their own. Method combination is declarative. Modularity achieved by code sharing, multiple inheritance. Can redefine flavors, methods and generic functions while the program is running. Changing data representation converts all old instances of the flavor to the new representation as needed. Efficiency concerns. 5 references." } @InProceedings{Morris76, Key="Morris", Author="J. B. Morris", Title="Synopsis of Data Type Abstraction in Programming Languages", BookTitle="NSF Very High Level Programming Languages Conference, Moscow, USSR, September, 1976", Year=1976, Month=Sep, Organization="Energy Research and Development Administration", Annote="Data types in the Model programming language contrasted with CLU and Alphard." } @Article{Morris80, Key="Morris", Author="James B. Morris", Title="Programming by Successive Refinement of Data Abstractions", Journal=SPandE, Volume=10, Number=4, Year=1980, Pages="249-263", Month=Apr, Annote="Discusses the Model programming language. Requirements for a data abstraction mechanism: 1. representation independence, 2. parameterizability, 3. distinction between abstract type and its concrete representation, 4. invocation of abstract operations must be efficient. 19 references." } @Article{Morrison-etal88, key = "Morrison et al.", author = "R. Morrison and M. P. Atkinson and A. L. Brown and A. Dearle", title = "Bindings in Persistent Programming Languages", journal = "SIGPlan Notices", publisher = "acm", volume = 23, number = 4, month = Apr, year = 1988, pages = "27--34" } @Article{Morrison-etal91, Key = "Morrison, {em et al}", Author = "R. Morrison and A. Dearle and R.C.H. Conner and A.L. Brown", Title = "An Ad Hoc Approach to the Implementation of Polymorphism", Journal = TOPLAS, Year = 1991, Volume = 13, Number = 3, Month = Jul, Pages = "342-371", Annote = "42 references." } @TechReport{Moss-Wolf88, Key="Moss \& Wolf", Author="J. Eliot B. Moss and Alexander L. Wolf", Title="Towards Principles of Inheritance and Subtyping in Programming Languages", Institution="Department of Computer and Information Science, University of Massachusetts", Address="Amherst, Mass.", Number="88-95", Type="COINS Technical Report", Month=Nov, Year=1988, Annote="Behavioral abstraction. Pragmatic principles of language deisgn. 36 references." } @InCollection{Moss89, Key="Moss", Author="J. Eliot B. Moss", Title="Object Orientation as Catalyst for Language-Database Integration", Editor="Won Kim and Frederick H. Lochovsky", BookTitle="Object-Oriented Concepts, Databases, and Applications", Publisher=Addison-Wesley, Address="Reading, Mass.", Year=1989, Chapter=24, Pages="583-592", Annote="21 references" } @InCollection{Mugridge-etal91, key = "Mugridge, {\em et al.}", author = "W. B. Mugridge and J. G. Hosking and J. Hamer", title = "Multi-Methods in a Statically-Typed Programming Language", booktitle = "ECOOP '91 Conference Proceedings, Geneva, Switzerland", publisher = "Springer-Verlag", Series = LNCS, Volume = 512, Editor = "Pierre America", year = 1991 } @PhDThesis{Murtagh83, Key="Murtagh", Author="Thomas Peter Murtagh", Title="A Data Abstraction Language for Concurrent Programming", School="Cornell University", Year=1983 } @InProceedings{Myers-Bank-Liskov97, author = "Andrew C. Myers and Joseph A. Bank and Barbara Liskov", title = "Parameterized Types for {Java}", booktitle = {Conference Record of POPL '97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, key = {Myers \& Bank \& Liskov}, year = 1997, pages = {132-145}, organization = ACM, address = NY, month = Jan, annote = {21 references.} } @Article{Mylopoulos-Bernstein-Wong80, Key="Mylopoulos \& Bernstein \& Wong", Author="J. Mylopoulos and P. A. Bernstein and H. Wong", Title="A Facility for Designing Database-Intensive Applications", Journal=TODS, Volume=5, Number=2, Month=Jun, Year=1980, Annote="Describes TAXIS which offers relational database management, semantic integrity checks and exception handling all integrated with the notions of class and property using an IS-A relationship. Multiple inheritance, constraints on redefinition, test defined classes which generalize enumeration types, exceptions organized in an IS-A hierarchy. 26 references." } @Article{Netzer-Miller92, Key="Netzer \& Miller", Author="Robert H.B. Netzer and Barton P. Miller", Title="What are Race conditions? Some Issues and Formalizations", Journal="ACM Letters on Programming Languages and Systems", Year=1992, Month=Mar, Volume=1, Number=1, Pages="74-88", Annote="26 references. " } @PhDThesis{Newman78, Key="Newman", Author="J. Richard Newman", Title="An Investigation into Multi-Level Program Abstractions for a Systematic Picture Programming Language", School="University of Southwestern Louisiana", Year=1978 } @InCollection{Neilson-Neilson93, Key="Neilson \& Neilson", Author="F. Neilson and H. R. Neilson", Title="Layered Predicates", Journal=LNCS, Number=666, Editor="J. W. de Baker and W. P. de Rover and G. Rozenberg", Publsiher="Springer-Verlag", Address=NY, Year=1993, Note="Semantics: Foundations and Applications REX Workshop, The NetherLands, june 1992. Proceedings", Page="425-456", Annote="13 references" } @InCollection{Nielson-Nielson-Amtoft97, author = "H. R. Nielson and F. Nielson and T. Amtoft", title = "Polymorphic Subtyping for Effect Analysis: The Static Semantics", booktitle = "Proceedings of the Fifth {LOMAPS} Workshop", publisher = "Springer-Verlag", year = "1997", editor = "M. Dam", number = "1192", series = "Lecture Notes in Computer Science", } @Article{Nielson96, key = {Nielson}, author = {Nielson}, title = "Annotated Type and Effect Systems", journal = ACMCS, volume = 28, number = 2, pages = "344-345", month = Jun, year = 1996, annote = "8 references." } @InCollection{Amtoft-etal97, author = "T. Amtoft and F. Nielson and H. R. Nielson and J. Ammann", title = "Polymorphic Subtyping for Effect Analysis: The Dynamic Semantics", booktitle = "Proceedings of the Fifth {LOMAPS} Workshop", publisher = "Springer-Verlag", year = "1997", editor = "M. Dam", number = "1192", series = "Lecture Notes in Computer Science", } @Article{Nguyen-Hailpern86, Key="Nguyen \& Hailpern", Author="Van Nguyen and Brent Hailpern", Title="A Generalized Object Model", Journal=SIGPLAN, Volume=21, Number=10, Month=Oct, Year=1986, Pages="78-87", Note="Object-Oriented Programming Workshop, June, 1986", Annote="18 references." } @InCollection{Nierstrasz89, Key="Kim \& Lochovsky", Author="Oscar Nierstrasz", Title="A Survey of Object-Oriented Concepts", Chapter=1, Pages="3--21", Editor="Won Kim and Frederick H. Lochovsky", BookTitle="Object-Oriented Concepts, Databases, and Applications", Publisher=Addison-Wesley, Address="Reading, Mass.", Year=1989, Annote="43 references." } @Article{Nierstrasz93, Key="Nierstrasz", Author="Oscar Nierstrasz", Title="Regular types for active objects", Journal = SIGPLAN, Volume = 28, Number = 10, Month = Oct, Year = 1993, Note = "{\em OOPSLA '93 Proceedings}, Andreas Paepcke (editor).", Pages="1-15", Annote="30 references." } @PhDThesis{Nikhil84, Key="Nikhil", Author="R. Nikhil", Title="An Incremental, Strongly Typed Applicative Programming System for Databases", School="University of Pennsylvania, Department of Computing and Information Science", Year=1984 } @InProceedings{Nikhil85, Key="Nikhil", Author="Rishiyur S. Nikhil", Title="Functional Databases, Functional Languages", BookTitle="Persistence and Data Types: Papers for the Appin Workshop", Month=Aug, Year=1985, Organization="Universities of Glasgow and St. Andrews, Departments of Computer Science", Note="Persistent Programming Research Report 16", Pages="309-330", Annote="41 references." } @InProceedings{Nipkow-Oheimb98, key = {Nipkow \& Oheimb}, author = {Tobias Nipkow and David von Oheimb}, title = {Java$_{light}$ is Type-Safe --- Definitely}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {161-170}, annote = {22 references.} } @InProceedings{Nipkow-Prehofer93, Key="Nipkov \& Prehofer", Author="Tobias Nipkov and Christian Prehofer", Title="Type checking Type classes", BookTitle=" Conference record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, South Carolina", Organization=ACM, Year=1993, Month=Jan, Pages="409-418", Annote="14 references" } @Article{Nipkow-Prehofer94, author = "Tobias Nipkov and Christian Prehofer", title = "Type Reconstruction for Type Classes", key = "Nipkov \& Prehofer", journal = "Journal of Functional Programming", year = 1994, volume = 5, number = 2, pages = "201-224", month = Apr, annote = "17 references." } @TechReport{Nipkow-Snelting90, Key="Nipkow \& Snelting", Author="Tobias Nipkow and Gregor Snelting", Title="Type Classes and Overloading Resolution via Order-Sorted Unification", Institution="University of Cambridge, Computer Laboratory", Address="Cambridge CB2 3QG, England", Number=200, Month=Aug, Year=1990, Annote="Type inference algorithm for a Haskell-like language based on order-sorted unification. Language features polymorphism, overloading, type classes, and multiple inheritance. 16 references." } @InProceedings{Nishimura98, key = {Nishimura}, author = {Susumu Nishimura}, title = {Static Typing for Dynamic Messages}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {266-278}, annote = {references.} } @InProceedings{Nordlander99, key = {Nordlander}, author = {Johan Nordlander}, title = {Pragmatic Subtyping in Polymorphic Languages}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '98)", Series = SIGPLAN, Volume = "34(1)", Month = Jun, Year = 1999, organization = ACM, pages = {216-227}, annote = {Subtyping extensions to the Hindley/Milner type system. To keep the types simple, it fails for all expressions that must be typed using constraints. 30 references.} } @Book{Nordstrom-Peterson-Smith90, Key = "Nordstrom \& Peterson \& Smith", Author= {Bengt Nordstr\"{o}m and Kent Peterson and Jan M. Smith}, Title = "Programming in Martin-Lof's Type Theory", Publisher = "Oxford University Press", Year = "1990", Volume = 7, Series = "International Series of Monographs on Computer Science", Address = NY } @InProceedings{Nordstrom-Peterson83, Key={Nordstr\"{o}m \& Peterson}, Author={Bengt Nordstr\"{o}m and Kent Peterson}, Title="Types and Specifications", BookTitle="Information Processing 83", Editor="R. E. A. Mason", Publisher="Elsevier Science Publishers B.V. (North-Holland)", Month=Sep, Year=1983, Note="Proceedings of the IFIP 9th World Computer Congress, Paris, France", Pages="915-920", Annote="Type system with subsets (abstraction) and dependent function types and its use in specification. Excellent short description of the Curry-Howard isomorphism and intensional view of specs. 14 references." } @Article{Novak83, Key="Novak", Author="Novak, Jr., Gordon S.", Title="Data Abstraction in GLISP", Journal=SIGPLAN, Year=1983, Month=Jun, Volume=18, Number=6, Pages="170-177", Note="Proceedings of the SIGPLAN '83 Symposium on Programming Language Issues in Software Systems, San Francisco, CA", Annote="Hierarchical inheritance, object-oriented. Extensible to representation languages. Type inference mechanisms. Recursive compilation to expand contexts through multiple levels and achieve binding at compile time for efficiency. Several examples. 13 references." } @InCollection{O'Keefe-Wand92, Key = "O'Keefe \& Wand", Author = "Patrick M. O'Keefe and Mitchell Wand", Title = "Type Inference for Partial Types is Decidable", BookTitle = "ESOP '92, 4th European Symposium on Programming, Rennes, France, February 1992, Proceedings", Publisher = "Springer-Verlag", Year = 1992, Editor = "Bernd Krieg-Bruckner", Series = LNCS, Address = NY, Volume = 582, Pages = "408-417", Annote = "18 references" } @Article{OToole-Gifford89, Key = "O'Toole \& Gifford", Author = "James William O'Toole and David K. Gifford", Title = "Type Reconstruction with First-Class Polymorphic Values", Journal = SIGPLAN, Year = 1989, Volume = 24, Number = 7, Month = Jul, Pages = "207-217", Note = "Proceedings of the SIGPLAN '89 Conference on Programming Language Design and Implementation, Portland, Oregon, June", Annote = "The language IFX. 21 references." } @InProceedings{Odersky-Laufer96, author = {Martin Odersky and Konstantin L\"{a}ufer}, title = "Putting Type Annotations to Work", key = "Odersky \& Laufer", pages = "54-67", booktitle = "Conference Record of POPL '96: The 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, St. Petersberg Beach, Florida", year = 1996, organization = ACM, address = NY, month = Jan, annote = "31 references." } @Article{Odersky-Sulzmann-Wehr99, key = {Odersky \& Sulzmann \& Wehr}, author = {Martin Odersky and Martin Sulzmann and Martin Wehr}, title = {Type Inference with Constrained Types}, journal = TAPOS, year = 1999, volume = 5, number = 1, pages = {35-55}, annote = {The framework HM(X) and instances dealing with polymorphic records, equational theories, and subtypes. 39 references.} } @InProceedings{Odersky-Wadler97, author = "Martin Odersky and Philip Wadler", title = "Pizza into {Java}: Translating Theory into Practice", booktitle = {Conference Record of POPL '97: The 24th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages}, key = {Odersky \& Wadler}, year = 1997, pages = {146-159}, organization = ACM, address = NY, month = Jan, annote = {26 references.} } @InProceedings{Ohori-Buneman-Breazu-Tannen89, Key = "Ohori \& Buneman \& Breazu-Tannen", Author="A. Ohori and P. Buneman and V. Breazu-Tannen", Title ="Database Programming in {Machiavelli} -- a Polymorphic Language with Static Type Inference", BookTitle ="Proceedings of the ACM SIGMOD conference", Year =1989, Month ="May -- June", Address ="Portland, Oregon", Pages ="46--57" } @Article{Ohori-Buneman89, Key = "Ohori \& Buneman", Author="Atsushi Ohori and Peter Buneman", Title="Static Type Inference for Parameteric Classes", Journal=SIGPLAN, Volume=24, Number=10, Month=Oct, Year=1989, Pages="445-456", Note="OOPSLA '89 Conference Proceedings, Norman Meyerowitz (editor), October 1989, New Orleans, Louisiana.", Annote="Type inference for classes with inheritance and parameters. 24 references." } @InCollection{Ohori88, Key="Ohori", Author="Atsushi Ohori", Title="Semantics of Types for Database Objects", BookTitle="ICDT '88, 2nd International Conference on Database Theory, Bruges, Belgium, August/September 1988", Editor="M. Gyssens and J. Paredaens and D. Van Gucht", Series=LNCS, Volume=326, Publisher="Springer-Verlag", Address=NY, Pages="239-251", Year=1988, Annote="19 references." } @TechReport{Oles87b, Key="Oles", Author="Frank J. Oles", Title="Lambda Calculi with Implicit Type Conversions", Institution="IBM Research Division", Address="T.J. Watson Research Center, Yorktown Heights, N.Y.", Month=Nov, Year=1987, Number="RC 13245 (\#59268)", Annote="8 references." } @Article{Olthoff-Kempf89, Key="Olthoff \& Kempf", Author="W. Olthoff and J. Kempf", Title="An Algebraic Specification of Method Combination for the Common LISP Object System", Journal="LISP and Symbolic Computation", Volume=2, Year=1989, Pages="115-152" } @Article{Olthoff86, Key="Olthoff", Author="Walter G. Olthoff", Title="Augmentation of Object-Oriented Programming by Concepts of Abstract Data Type Theory: The ModPascal Experience", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="429-443", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Includes a brief overview of algebraic specifications, algebras, and specification morphisms. ModPascal is based on Pascal; it features modules (ADT implementations), enrichment, a flexible parameterization mechanism. Enrichments add to the set of operations of one or more types. Parameterization is multilevel and the declaration of formal parameters is completely implicit. 18 references." } @InCollection{Orejas81, Key="Orejas", Author="F. Orejas", Title="On the Representation of Data Types", BookTitle="Formalization of Programming Concepts, International Colloquium, Peniscola, Spain, April 1981", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=107, Editor="J. Diaz and I. Ramos", Year=1981, Pages="419-431", Annote="Correctness of representations without the use of representation invariants. Restricted representations. 11 references." } @InProceedings{Ossher84, Key="Ossher", Author="Harold L. Ossher", Title="Grids: A New Program Structuring Mechanism Based on Layered Graphs", Organization=ACM, BookTitle="Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, Salt Lake City, Utah", Month=Jan, Year=1984, Pages="11-22", Annote="Layered graphs, factorization, clustering. 13 references." } @InCollection{Oxhoj-Palsberg-Schwartzbach92, Key = "Oxhoj \& Palsberg \& Schwartzbach", Author = "Nicholas Oxh\{o}j and Jens Palsberg and Michael I. Schwartzbach", Title = "Making Type Inference Practical", BookTitle = "ECOOP '92, European Conference on Object-Oriented Programming, Utrecht, The Netherlands", Publisher = "Springer-Verlag", Year = 1992, Editor = "Ole Lehrmann Madsen", Series = LNCS, Address = NY, Volume = 615, Pages = "329-349", Annote = "27 references" } @TechReport{Palsberg-Black93, Key = "Palsberg \& Black", Author = "Jens Palsberg and Andrew Black", Title = "Foundations of Object-Oriented languages", Institution = "Computer Science Department, Aarhus University", Year = 1993, Annote = "32 references." } @InProceedings{Palsberg-OKeefe95, Key = {Palsberg \& O'Keefe}, Author = {Jens Palsberg and Patrick M. O'Keefe}, Title = "A Type System Equivalent to Flow Analysis", BookTitle = "Conference Record of POPL '95: 22nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, Calif.", Month = Jan, Year = 1995, Organization = ACM, Address = NY, Pages = "367-378", Annote = "20 references." } @InProceedings{Palsberg-Pavlopoulou98, key = {Palsberg \& Pavlopoulou}, author = {Jens Palsberg and Christina Pavlopoulou}, title = {From Polyvariant Flow Information to Intersection and Union Types}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {197-208}, annote = {49 references.} } @TechReport{Palsberg-Schwartzbach90a, Key = "Palsberg \& Schwartzbach", Author = "Jens Palsberg and Michael I. Schwatzbach", Title = "Genericity and Inheritance", Institution = "Computer Science Department, Aarhus University", Year = 1990, Number = "DAIMI-PB - 318", Month = Jul, Annote = "32 references." } @Article{Palsberg-Schwartzbach90b, Key = "Palsberg \& Schwartzbach", Author = "Jens Palsberg and Michael I. Schwartzbach", Title = "Type Substitution for Object-Oriented Programming", Journal = SIGPLAN, Year = 1990, Volume = 25, Number = 10, Month = Oct, Pages = "151-160", Note = "{\em OOPSLA ECOOP '90 Proceedings}, N. Meyrowitz (editor).", Annote = "31 references." } @Unpublished{Palsberg-Schwartzbach91a, Key = "Palsberg \& Schwartzbach", Author = "Jens Palsberg and Michael I. Schwartzbach", Title = "A Unified Type System for Object-Oriented Programming", Note = "Sent by the authors", Annote = "22 references." } @Unpublished{Palsberg-Schwartzbach91b, Key = "Palsberg \& Schwartzbach", Author = "Jens Palsberg and Michel I. Schwartzbach", Title = "What is Type-Safe Code Reuse?", Note = "Sent by the authors", Annote = "13 references." } @TechReport{Palsberg-Schwartzbach91c, Key = "Palsberg \& Schwartzbach", Author = "Jens Palsberg and Michael I. Schwartzbach", Title = "Object-Oriented Type Inference", Institution = "Computer Science Department, Aarhus University", Year = 1991, Number = "DAIMI PB - 345", Month = Mar, Annote = "29 references." } @TechReport{Palsberg-Schwartzbach91d, Key = "Palsberg \& Schwartzbach", Author = "Jens Palsberg and Michael I. Schwartzbach", Title = "Static Typing for Object-Oriented Programming", Institution = "Computer Science Department, Aarhus University", Year = 1991, Number = "DAIMI PB - 355", Month = Jun, Annote = "57 references." } @TechReport{Palsberg-Schwartzbach91e, Key = "Palsberg \& Schwartzbach", Editor = "Jens Palsberg and Michael I. Schwartzbach", Title = "Types, Inheritance and Assignments", Institution = "Computer Science Department, Aarhus University", Year = 1991, Number = "DAIMI PB - 357", Month = Jun, Annote = "69 references." } @Article{Palsberg-Schwartzbach92, Key = "Palsberg \& Schwartzbach", Author = "Jens Palsberg and Michael I. Schwartzbach", Title = "Three Discussions on Object-Oriented Typing", Journal = "OOPS Messenger", Year = 1992, Volume = 3, Number = 2, Month = Apr, Pages = "31-38", Annote = "1 reference." } @Book{Palsberg-Schwartzbach94, Key = "Palsberg \& Schwartzbach", Author = "Jens Palsberg and Michael I. Schwartzbach", Title = "Object-Oriented Type Systems", Publisher = "John Wiley and sons", Year = 1994, Annote = "72 reference." } @Article{Palsberg96, key = {Palsberg}, author = {Jens Palsberg}, title = "Type Inference for Objects", journal = ACMCS, volume = 28, number = 2, pages = "358-359", month = Jun, year = 1996, annote = "8 references." } @PhDThesis{Paolini81, Key="Paolini", Author="Paolo Paolini", Title="Abstract Data Types and Data Bases", School="University of California, Los Angeles", Year=1981 } @PhDThesis{Parsaye-Ghomi81, Key="Parsaye-Ghomi", Author="Kamran Parsaye-Ghomi", Title="Higher Order Abstract Data Types", School="University of California, Los Angeles", Year=1981 } @Article{Paulson86, Key="Paulson", Author="Lawrence C. Paulson", Title="Constructing Recursion Operators in Intuitionistic Type Theory", Journal="Journal of Symbolic Computation", Volume=2, Number=4, Month=Dec, Year=1986, Pages="325-355", Annote="Implementing noetherian recursion in intuitionistic type theory." } @Book{Peterson87, Key="Peterson", Editor = "Gerald E. Peterson", Title = "Tutorial: Object-Oriented Computing", Publisher = "IEEE Computer Society Press", Year = 1987, Address = "Los Angeles, Calif.", Note = "Volume 1: concepts; volume 2: implementations." } @TechReport{Petersson82, Key="Petersson", Author="K. Petersson", Title="A Programming System for Type Theory", Institution="Dept. of Computer Science, Univ. Goteborg / Chalmers Univ. of Technology, Sweden", Year=1982, Type="LPM Memo", Number=21 } @TechReport{Pfenning-Lee89, Key="Pfenning \& Lee", Author="Frank Pfenning and Peter Lee", Title="Metacircularity in the Polymorphic $\lambda$-calculus", Institution=CMU, Number="CMU-CS-89-207", Month=Dec, Year=1989, Annote="36 references." } @TechReport{Pfenning-Mohring89, Key="Pfenning \& Mohring", Author="Frank Pfenning and Christine Paulin-Mohring", Title="Inductively Defined Types in the Calculus of Constructions", Institution=CMU, Number="CMU-CS-89-209", Month=Dec, Year=1989, Annote="27 references." } @InProceedings{Pfenning88, Key="Pfenning", Author="Frank Pfenning", Title="Partial Polymorphic Type Inference and Higher-Order Unification", BookTitle="Conference Record of the ACM Symposium on Lisp and Functional Programming, Snowbird, Utah", Organization=ACM, Month=Jul, Year=1988, Pages="153-163", Annote="Shows the problem of partial type inference in the nth-order polymorphic lambda calculus is equivalent to nth-order unification. Gives an algorithm for partial type inference in the $\omega$-order polymorphic lambda calculus, and an implementation in Lambda Prolog. 25 references." } @Book{Pfenning92, Key = "Pfenning", Editor = "Frank Pfenning", Title = "Types in Logic Programming", Publisher = MITP, Year = 1992, Series = "Logic Programming Series", Address = "Cambridge, Mass.", Annote = "Many references." } @TechReport{Pierce-Dietzen-Michaylov89, Key="Pierce \& Dietzen \& Michaylov", Author="Benjamin Pierce and Scott Dietzen and Spiro Michaylov", Title="Programming in Higher-Order Typed Lambda-Calculi", Institution=CMU, Number="CMU-CS-89-111", Month=Mar, Year=1989, Annote="Tutorial on various formed of typed lambda calculus, including omega-order. 55 references." } @TechReport{Pierce-Steffen94, Key="Pierce \& Steffen", Author="Benjamin Pierce and Steffen", Title="Higher-Order SubTyping", Institution="University of Edinburgh", Number="ECS-LFCS-94-280", Month=Jan, Year=1994, Note="To appear in Theoretical Computer Science", Annote="50 references" } @TechReport{Pierce-Turner92, Key = "Pierce \& Turner", Author = "Benjamin C. Pierce and David N. Turner", Title = "Simple Type-Theoretic Foundations for Object-Oriented Programming", Institution = "Department of Computer Science, University of Edinburgh", Year = 1992, Address = "Edinburgh, U.K.", Month = Aug, Annote = "48 references." } @TechReport{Pierce-Turner92b, author = "Benjamin C. Pierce and David N. Turner" , title = "Statically Typed Friendly Functions via Partially Abstract Types" , institution = "University of Edinburgh, LFCS" , type = "Technical Report" , number = "ECS-LFCS-93-256" , month = Apr , year = "1993" , Note = "Available by anonymous ftp from {\tt ftp.dcs.ed.ac.uk} in file {\tt pub/bcp/friendly.ps.Z}. Also available as INRIA-Rocquencourt Rapport de Recherche No. 1899", } @InProceedings{Pierce-Turner93, Key="Pierce \& turner", Author="Banjamin C. Pierce and David Turner", Title="Object-Oriented Programming without Recursive types", BookTitle="Conference record of the Twentieth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Charleston, South Carolina", Organization=ACM, Year=1993, Month=Jan, Pages="299-312", Annote="46 references" } @Article{Pierce-Turner94, author = "Benjamin C. Pierce and David N. Turner" , title = "Simple Type-Theoretic Foundations for Object-Oriented Programming", note = "A preliminary version appeared in POPL 1993", journal = "Journal of Functional Programming", volume = 4, number = 2, month = Apr, pages = "207--248", year = 1994 } @InProceedings{Pierce-Turner98, key = {Pierce \& Turner}, author = {Benjamin C. Pierce and David N. Turner}, title = {Local Type Inference}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {252-265}, annote = {45 references.} } @TechReport{Pierce91a, Key = "Pierce", Author = "Benjamin C. Pierce", Title = "Programming With Intersection Types, Union Types, and Polymorphism", Institution = CMU, Year = 1991, Number = "CMU-CS-91-106", Month = Feb, Annote = "39 references." } @TechReport{Pierce91b, Key = "Pierce", Author = "Benjamin C. Pierce", Title = "Bounded Quantification is Undecidable", Institution = CMU, Year = 1991, Number = "CMU-CS-91-161", Month = Jul, Annote = "30 references." } @TechReport{Pierce91c, Key = "Pierce", Author = "Benjamin C. Pierce", Title = "Programming with Intersection Types and Bounded Polymorphism", Institution = CMU, Year = 1991, Number = "CMU-CS-91-205", Month = Dec, Annote = "30 references." } @Unpublished{Pierce93a, Key = "Pierce", Author = "Benjamin C. Pierce", Title = "Mutable Objects", Year = 1993, Month = May, Annote = "Working draft. Obtained by anonymous ftp from ftp.lcs.ac.uk 11 references." } @InProceedings{Pierce93b, Key={Pierce}, Author = {B. C. Pierce}, Title = {Intersection types and bounded polymorphism}, BookTitle = {International Conference on Typed Lambda Calculi and Applications}, Year = {1993}, Editor = {M. Bezem and J.F. Groote}, Publisher = {Springer-Verlag}, Series = LNCS, Number = {664}, Pages = {346-360}, Address = {Utrecht, The Netherlands}, Month = Mar, Note = {TLCA'93}, Annote = { 33 refernces} } @Article{Pigozzi90, Key = "Pigozzi", Author = "Don Pigozzi", Title = "Data Types over Multiple-valued Logics", Journal = TCS, Year = 1990, Volume = 77, Number = "1 \& 2", Month = Dec, Pages = "161-194" } @InProceedings{Pitts89, Key="Pitts", Author="Andrew M. Pitts", Title="Non-trivial Power Types Can't Be Subtypes of Polymorphic Types", BookTitle="Fourth Annual Symposium on Logic in Computer Science, Pacific Grove, California", Organization=IEEE, Month=Jun, Year=1989, Pages="6-13", Annote="Higher-order type theory and the logic of toposes. 13 references." } @InProceedings{Plotkin-Abadi93, Key = {Plotkin \& Abadi}, Author = {G. Plotkin and M. Abadi}, Title = {A logic for parametric polymorphism}, BookTitle = {International Conference on Typed Lambda Calculi and Applications}, Year = {1993}, Editor = {M. Bezem and J.F. Groote}, Publisher = {Springer-Verlag}, Series = LNCS, Number = {664}, Pages = {361-375}, Address = {Utrecht, The Netherlands}, Month = Mar, Note = {TLCA'93}, Annote={20 references} } @PhDThesis{Polajnar78, Key="Polajnar", Author="Jernej Polajnar", Title="An Algebraic View of Protection and Extendibility in Abstract Data Types", School="University of Southern California", Year=1978 } @Article{Ponder-Bush92, Key = "Ponder \& Bush", Author = "Carl Ponder Bill Bush", Title = "Polymorphism Considered Harmful", Journal = SIGPLAN, Year = 1992, Volume = 27, Number = 6, Month = Jun, Pages = "76-79", Annote = "Says it's hard to understand code with message passing. 3 references." } @InProceedings{Pottier96, key = {Pottier}, author = {Fran\c{c}ois Pottier}, title = {Simplifying subtyping constraints}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '96)", Series = SIGPLAN, Volume = "31(6)", Month = Jun, Year = 1996, organization = ACM, pages = {122-133}, annote = {11 references.} } @InProceedings{Pottier99, key = {Pottier}, author = {Fran\c{c}ois Pottier}, title = {A Framework for Type Inference with Subtyping}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '98)", Series = SIGPLAN, Volume = "34(1)", Month = Jun, Year = 1999, organization = ACM, pages = {228-238}, annote = {19 references.} } @Article{Prechelt-Tichy98, key = {Prechelt \& Tichy}, author = {Lutz Prechelt and Walter F. Tichy}, title = {A Controlled Experiment to Assess the Benefits of Procedure Argument Type Checking}, journal = IEEETSE, year = 1998, volume = 24, number = 4, month = Apr, pages = {302-312}, annote = {Type checking in ANSI C increased productivity over Kernighan and Ritchie C, helped find more defects, and reduced the lifetime of defects. 22 references.} } @Article{Pugh-Weddell90, Key="Pugh \& Weddell", Author="William Pugh and Grant Weddell", Title="Two-directional record layout for multiple inheritance", Journal=SIGPLAN, Volume=25, Number=6, Month=Jun, Year=1990, Pages="85-91", Note="Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, White Plains, NY", Annote="18 references." } @InProceedings{Rehof97, key = {Rehof}, author = {Jokob Rehof}, title = {Minimal Typings in Atomic Subtyping}, booktitle = {Conference Record of POPL 97: The 24TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Paris, France}, year = 1997, organization = ACM, address = NY, month = Jan, pages = {278-291}, annote = {34 references.} } @TechReport{Reinhold89, Key="Reinhold", Author="Mark B. Reinhold", Title="Typechecking is Undecidable when 'Type' is a Type", Institution=MITLCS, Number="TR-458", Month=Dec, Year=1989 } @Article{Reiss86, Key="Reiss", Author="Steven P. Reiss", Title="An Object-Oriented Framework for Graphical Programming", Journal=SIGPLAN, Volume=21, Number=10, Month=Oct, Year=1986, Pages="49-57", Note="Object-Oriented Programming Workshop, June, 1986", Annote="Object-oriented basis of the GARDEN graphical programming system. 18 references." } @InCollection{Reiss87, Key="Reiss", Author="Steven P. Reiss", Title="An Object-Oriented Framework for Conceptual Programming", Editor="Bruce Shriver and Peter Wegner", BookTitle="Research Directions in Object-Oriented Programming", Publisher=MITP, Address="Cambridge, Mass.", Year=1987, Pages="189-218", Annote="Object-oriented basis of the GARDEN graphical programming system. 27 references." } @Unpublished{Reistad-Gifford93, Key="Reistad \& Gifford", Author="Brian Reistad and David K. Gifford", Title="Reconstructing Static Dependedent Costs for Estimating Execution Times", Month=May, Year=1993, Note="Obtained from authors", Annote="75 references." } @InProceedings{Remy89, Key="Remy", Author="D. R\'{e}my", Title="Typechecking records and variants in a natural extension of {ML}", Organization=ACM, BookTitle="Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Month=Jan, Year=1989, Pages="60-76" } @InProceedings{Remy94, Key = "R\'{e}my", Author = "Didier R\'{e}my", Title = "Programming Objects with {ML-ART}: An extension to {ML} with Abstract and Record Types", BookTitle = "Theoretical Aspects of Computer Software", Publisher = "Springer-Verlag", Address = NY, Year = 1994, Editor = "Masami Hagiya and John C. Mitchell", Series = LNCS, Volume = 789, Pages = "321-346", Month = Apr } @Article{Reppy-Riecke96, key = {Reppy \& Riecke}, author = {John Reppy and Jon Riecke}, title = {Simple Objects for Standard ML}, journal = SIGPLAN, year = 1996, volume = 31, number = 5, month = May, pages = {171-180}, note = {Proceedings of the 1996 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).}, annote = {33 references.} } @InCollection{Reynolds80, Key="Reynolds", Author="John C. Reynolds", Title="Using Category Theory to Design Implicit Conversions and Generic Operators", BookTitle="Semantics-Directed Compiler Generation, Proceedings of a Workshop, Aarhus, Denmark", Publisher="Springer-Verlag", Series=LNCS, Editor="Neil D. Jones", Volume=94, Month=Jan, Year=1980, Pages="211-258", Annote="Defines category-sorted algebras which are used to avoid problems between implicit conversions and generics. 11 references." } @InProceedings{Reynolds83, Key="Reynolds", Author="John C. Reynolds", Title="Types, Abstraction and Parametric Polymorphism", BookTitle="Proc. IFIP Congress '83, Paris", Month=Sep, Year=1983, Annote="20 references." } @InCollection{Reynolds85, Key="Reynolds", Author="John C. Reynolds", Title="Three Approaches to Type Structure", BookTitle="Mathematical Foundations of Software Development, Proceedings of the International Joint Conference on Theory and Practice of Software Development (TAPSOFT), Berlin. Volume 1: Colloquium on Trees in Algebra and Programming (CAAP '85)", Month=Mar, Year=1985, Pages="97-138", Editor="Hartmut Ehrig and Christiane Floyd and Maurice Nivat and James Thatcher", Series=LNCS, Volume=185, Publisher="Springer-Verlag", Address=NY } @Book{Reynolds98, author = {John C. Reynolds}, title = {Theories of Programming Languages}, publisher = {Cambridge}, year = 1998, key = {Reynolds}, annote = {Hundreds of references.} } @InCollection{Riecke-Subrahmanyam94, Key = "Riecke \& Subrahmanyam", Author = "Jon G. Riecke and Ramesh Subrahmanyam", Title = "Extensions to Type Systems Can Preserve Operational Equivalences", BookTitle = "Theoretical Aspects of Computer Software", Publisher = "Springer-Verlag", Year = 1994, Editor = "Masami Hagiya and John C. Mitchell", Series = LNCS, Volume = 789, Pages = "76-95", Month = Apr, Annote = "28 references." } @InProceedings{Riely-Hennessy98, key = {Riely \& Hennessy}, author = {James Riely and Matthew Hennessy}, title = {A Typed Language for Distributed Mobile Processes}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {378-390}, annote = {24 references.} } @Article{Ritter94, key = {Ritter}, author = {Eike Ritter}, title = {Categorical abstract machines for higher-order typed $\lambda$-calculi}, journal = TCS, year = 1994, volume = 136, number = 1, month = Dec, pages = {125-162}, annote = {25 references.} } @InCollection{Roberts81, Key="Roberts", Author="J. D. Roberts", Title="Naming by Colours: A Graph-Theoretic Approach to Distributed Structure", BookTitle="Algorithmic Languages", Publisher="IFIP, North-Holland", Address="Amsterdam", Year=1981, Pages="29-76", Editor="J. W. de Bakker and J. C. van Vliet", Annote="Apparent type of an object. Naming in programs. 13 references." } @TechReport{Robinson-Rosolini89, Key="Robinson \& Rosolini", Author="Edmund Robinson and Giuseppe Rosolini", Title="Polymorphism, Set Theory, and Call-by-Value", Month=Oct, Year=1989, Number="89-260", Institution="Department of Computing and Information Science, Queen's University at Kingston", Address="Kingston, Ontario, Canada", Annote="There are no models of the second-order call-by-value calculus in either constructive or classical set theory. 10 references." } @TechReport{Robinson88, Key="Robinson", Author="Edmund Robinson", Title="How complete is {PER}?", BookTitle="Fourth Annual Symposium on Logic in Computer Science, Pacific Grove, California", Organization=IEEE, Month=Jun, Year=1989, Pages="106-111", Note="Also TR 88-229, Department of Computing and Information Science, Queen's University at Kingston, Ontario", Annote="15 references." } @Article{Robinson94, key = {Robinson}, author = {Edmund Robinson}, title = {Parametricity as isomorphism}, journal = TCS, year = 1994, volume = 136, number = 1, month = Dec, pages = {163-181}, annote = {17 references.} } @Article{Rodriguez-etal93, Key="Rodriguez, {\em et al}", Author="N. Rodriguez, R. Lerusalunschy and J. Rangel", Title="Types in School", Journal=SIGPLAN, Volume=28, Number=8, Month=Aug, Year=1993, Pages="81-89", Annote="15 references." } @InProceedings{Rowe-Shoens79, Key="Rowe \& Shoens", Author="Lawrence A. Rowe and Kurt A. Shoens", Title="Data Abstractions, Views and Updates in RIGEL", BookTitle="Proceedings of the ACM-SIGMOD Conference on Management of Data, Boston, Mass.", Month=May, Year=1979, Pages="71-81", Annote="Relations, views and tuples built-in to RIGEL. Generator expressions used for queries. Both abstract types and modules in the language. 30 references." } @Article{Rowe81a, Key="Rowe", Author="Lawrence A. Rowe", Title="Data Abstraction from a Programming Language Viewpoint", Journal=SIGPLAN, Volume=16, Number=1, Month=Jan, Year=1981, Pages="29-35", Note="Proceedings of the Workshop on Data Abstraction, Databases and Conceptual Modeling, June, 1980", Annote="Discusses the basics of type systems. 31 references." } @Article{Rowe81b, Key="Rowe", Author="Lawrence A. Rowe", Title="Issues in the Design of Database Programming Languages", Journal=SIGPLAN, Volume=16, Number=1, Month=Jan, Year=1981, Pages="29-35", Note="Proceedings of the Workshop on Data Abstraction, Databases and Conceptual Modeling, June, 1980", Annote="Should records in the language correspond to DB records? What facilities are provided to define the interface between application programs and the DB? Discussion based on the RIGEL language. 7 references." } @Article{Royer98, key = {Royer}, author = {Jean-Claude Royer}, title = {Type Checking Object-Oriented Programs: Core of the Problem and Some Solutions}, journal = JOOP, year = 1998, volume = 11, number = 6, month = Oct, pages = {58-66,71}, annote = {29 references.} } @InProceedings{Sakkinen89, Key="Sakkinen", Author="M. Sakkinen", Title="Disciplined Inheritance", BookTitle="{ECOOP'89}, European Conference on Object-Oriented Programming, British Computer Society Workshop Series", Editor="Stephen Cook", Month=Jul, Year=1989, Publisher="Cambridge University Press", Pages="40-56", Annote="57 references." } @InProceedings{Sandberg82a, Key="Sandberg", Author="David Wallace Sandberg", Title="Lithe: A Language Combining a Flexible Syntax with Classes", Year=1982, Organization=ACM, BookTitle="Conference Record of the Ninth Annual ACM Symposium on Principles of Programming Languages, Alberquerque, New Mexico", Pages="142-145", Month=Jan, Note="Also Univ. of Washington Tech. Rep. 81-07-05", Annote="6 references." } @PhDThesis{Sandberg82b, Key="Sandberg", Author="David Wallace Sandberg", Title="Language Combining a Flexible Syntax with Classes", School="University of Washington, Seattle, Washington", Year=1982, Note="TR \#82-12-03", Annote="Programming language Lithe is defined. Lithe combines extensible syntax and classes. Goal: to make programming easier. 45 references." } @Article{Sandberg86, Key="Sandberg", Author="David Sandberg", Title="An Alternative to Subclassing", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="424-428", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="The alternative, found in the language X2, is to add parameters to classes and to introduce descriptive classes to grouping parameters. Compile-time type checking. Descriptive classes have other classes as instances, e.g. total order might describe integer. The programmer declares what classes are instances of a descriptive class, and supplies the procedures that interpret instances of these classes according to the description. Parameters can be used to refine behavior. Implicit parameters are passed when an object of a descriptive class is used as an argument. A single class can be a member or more than one descriptive class, but cannot be a member of the same descriptive class more than once. 7 references." } @InCollection{Scedrov90, Key = "Scedrov90", Author = "Andre Scedrov", Title = "A Guide to Polymorphic Types", BookTitle = "Logic and Computer Science", Publisher = "Academic Press", Year = 1990, Editor = "P. Odifreddi", Series = "APIC Series", Volume = 31, Pages = "387-420", Address = NY, Annote = "Survey. 102 references." } @Article{Schaffert-etal86, Key="Schaffert, {\em et al.\/}", Author="Craig Schaffert and Topher Cooper and Bruce Bullis and Mike Kilian and Carrie Wilpolt", Title="An Introduction to {Trellis/Owl}", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="9-16", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Trellis/Owl is a language with multiple inheritance and static type checking. It distinguishes instance from class operations, and private from public operations. Subtyping as an organizational principle for generalization and specialization. Subtyping as a specification hierarchy. Subtyping and type checking. Inheritance ambiguities must be explicitly resolved. Type generators and parameterized types. Other features are iterators, exception handling and atype case statement for checking the types of objects at run-time. 7 references." } @Article{Schmidt-Mall83, Key="Schmidt \& Mall", Author="Joachim W. Schmidt and Manuel Mall", Title="Abstraction Mechanisms for Database Programming", Journal=SIGPLAN, Year=1983, Month=Jun, Volume=18, Number=6, Pages="83-93", Note="Proceedings of the SIGPLAN '83 Symposium on Programming Language Issues in Software Systems, San Francisco, CA", Annote="Iteration abstractions. Boolean and relational queries as functional abstractions. Access abstraction. Selection based on arbitrary predicates. 17 references." } @TechReport{Schmidt-Walker92, Key = "Schmidt \& Walker", Author = "Heinz W. Schmidt and Richard Walker", Title = "TOF: An Efficient Type System for Objects and Functions", Institution = {Departement of Computer Science, The Australian National University}, Number="TR-CS-92-17", Month = Nov, Year = 1992, Note = "This document's final destination was unknown when entered", Annote = "34 references" } @Article{Schmidt77, Key="Schmidt", Title="Some High Level Constructs for Data of Type Relation", Author="Joachim W. Schmidt", Journal=TODS, Year=1977, Volume=2, Number=3, Pages="247-261", Annote="Adding relation as a primitive type to Pascal. Need a repetition statement controlled by relations, predicates as a generalization of boolean relations and constructor for relations using predicates from other relations. Relations based on the record type. Predicates built-in to the language like Codd's data sublanguage. 17 references." } @TechReport{Schmidt80, Key="Schmidt", Author="Joachim W. Schmidt and Manuel Mall", Title="Pascal/R Report", Institution={Fachbereich Informatik, Universit\"{a}t Hamburg}, Year=1980, Month=Jan, Number="IFI-B-66/80", Annote="1 reference." } @Article{Schoch79, Key="Schoch", Author="J. Schoch", Title="An Overview of the Programming Language Smalltalk-72", Journal=SIGPLAN, Year=1979, Month=Sep, Volume=14, Number=9, Pages="64-73" } @InProceedings{Schubert98, key = {Schubert}, author = {Aleksy Schubert}, title = {Second-order unification and type inference for {Church-style} polymorphism}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {279-288}, annote = {21 references.} } @InCollection{Schwartzbach91, Key = "Schwartzbach", Author = "M. I. Schwartzbach", Title = "Type Inference with Inequalities", BookTitle = "TAPSOFT '91, Proceedings of the International Joint Conference on Theory and Practice of Software Development, Brighton, UK, Volume 1: Colloquium on Trees in Algebra and Programming (CAAP '91)", Publisher = Springer-Verlag, Year = 1991, Editor = "S. Abramsky and T. S. E. Maibaum", Series = LNCS, Volume = 493, Pages = "441 ff.", Address = NY, Month = Apr } @InCollection{Sekiguchi-Yonezawa94, Key = "Sekiguchi \& Yonezawa", Author = "Tatsurou Sekiguchi and Akinori Yonezawa", Title = "A Complete Type Inference System for Subtyped Recursive Types", BookTitle = "Theoretical Aspects of Computer Software", Publisher = "Springer-Verlag", Year = 1994, Editor = "Masami Hagiya and John C. Mitchell", Series = LNCS, Volume = 789, Pages = "667-686", Month = Apr, Annote = "18 references." } @Article{Shankar80, Key="Shankar", Author="K. S. Shankar", Title="Tutorial: Data Structures, Types and Abstraction", Journal="Computer", Volume=13, Number=4, Month=Apr, Year=1980, Pages="67-77", Annote="15 references." } @InProceedings{Shao99, key = {Shao}, author = {Zhong Shao}, title = {Typed Cross-Module Compilation}, BookTitle = "Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '98)", Series = SIGPLAN, Volume = "34(1)", Month = Jun, Year = 1999, organization = ACM, pages = {141-152}, annote = {40 references.} } @Article{Shaw-etal83, Key="Shaw, {\em et al.}", Author="Mary Shaw and Ellen Borison and Michael Horowitz and Tom Lane and David Nichols and Randy Paisch", Title="Descartes: A Programming-Language Approach to Interactive Display Interfaces", Journal=SIGPLAN, Year=1983, Month=Jun, Volume=18, Number=6, Pages="100-111", Note="Proceedings of the SIGPLAN '83 Symposium on Programming Language Issues in Software Systems, San Francisco, CA", Annote="49 references." } @Article{Shaw80, Key="Shaw", Author="Mary Shaw", Title="The Impact of Abstraction Concerns on Modern Programming Languages", Journal="Proceedings of the IEEE", Volume=68, Number=9, Month=Sep, Year=1980, Pages="1119-1130", Annote="Review and survey of abstraction techniques. Discussion of implementations and limitations. 76 references." } @Article{Shaw81b, Key="Shaw", Author="Mary Shaw", Title="Abstraction, Data Types and Models for Software", Journal=SIGPLAN, Volume=16, Number=1, Year=1981, Month=Jan, Pages="189-191", Note="Proceedings of the Workshop on Data Abstraction, Databases and Conceptual Modeling, June, 1980", Annote="Good and bad points of abstract data types. 6 references." } @InProceedings{Sheldon-Gifford90, Key="Sheldon \& Gifford", Author="Mark A. Sheldon and David K. Gifford", Title="Static Dependent Tyeps for First Class Modules", BookTitle="Proceedings of the 1990 ACM Conference on LISP and Functional Programming, Nice, France", Organization=ACM, Month=Jun, Year=1990, Pages="20-29", Annote="13 references." } @PhDThesis{Sherman83, Key="Sherman", Author="Mark Steven Sherman", Title="Paragon: A Language Using Type Hierarchies for the Specification, Implementation and Selection of Abstract Data Types", School=CMU, Month=Aug, Year=1983, Note="CMU-CS-83-147, also published by Springer-Verlag, LNCS, Volume 189, 1985", Annote="Language design emphasizing a multiple inheritance type hierarchy for the refinement and selection of multiple implementations which can interact in a program. The author concludes that multiple, interacting representations for an abstract type, in a single program, are not worth the trouble, given the complications necessary to deal with them in the language and the unsatisfactory nature of the result. Paragon allows complete separation of abstractions and their concrete implementations, allowing representations to be changed easily. Non-symmetric type compatibility used for refinement of types and procedures is based on inheritance. Uses prototypes instead of types, that is, (indefinite) objects can be used as types, but this leads to problems. Stack-based language, with an object-manager model that is perhaps too flexible. Statically type checked prototype implementation. The specifications referred to in the title are really just data types. 72 references." } @InProceedings{Sherman84, Key="Sherman", Author="Mark Sherman", Title="Paragon: Novel Uses of Type Hierarchies for Data Abstraction", Organization=ACM, BookTitle="Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, Salt Lake City, Utah", Month=Jan, Year=1984, Pages="208-217", Annote="Design of the Paragon programming language. Multiple inheritance, uniform object notation, separate procedure specifications and implementations, relaxed parameter matching rules. 27 references." } @Article{Shilling-Sweeney89, Key="Shilling \& Sweeney", Author="John J. Shilling and Peter F. Sweeney", Title="Three Steps to Views: Extending the Object-Oriented Paradigm", Journal=SIGPLAN, Volume=24, Number=10, Month=Oct, Year=1989, Pages="353-361", Note="OOPSLA '89 Conference Proceedings, Norman Meyerowitz (editor), October 1989, New Orleans, Louisiana.", Annote="Different interfaces for the same object. 12 references." } @Article{Shivers88, Key="Shivers", author = {Olin Shivers}, title = {Control-Flow Analysis in {Scheme}}, pages = "164-174", journal = SIGPLAN, year = 1988, month = Jul, volume = 23, number = 7, note = {Proceedings of the ACM SIGPLAN 1988 Conference on Programming Language Design and Implementation.} } @Article{Skarra-Zdonik86, Key="Skarra \& Zdonik", Author="Andrea H. Skarra and Stanley B. Zdonik", Title="The Management of Changing Types in an Object-Oriented Database", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="483-495", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="A model for managing change in type definitions, presented in terms of the ENCORE database management system, which has multiple inheritance. Version set mechanism for recording changes to types. Coercions can change the version of an instance. The version set interface abstracts the type over all versions (union of operations and properties). Error handlers added to a type version that handle cases where operations or properties are defined in the version set interface but not by the type version itself. Classes described by boolean functions that test membership in the class. 28 references." } @Article{Smalltalk81, Key="Smalltalk", Author="{Xerox Learning Research Group}", Journal="BYTE", Title="The Smalltalk-80 System", Year=1981, Pages="36-48", Volume=6, Number=8, Month=Aug, Annote="Several other articles about Smalltalk-80 are included in the same issue. 5 references." } @Article{Smetsers-etal94, key = "Smetsers, {\em et al.}", author = "S. Smetsers and E. Barendsen and M. v. Eekelen and R. Plasmeijer", title = "Guaranteeing Safe Destructive Updates Through a Type System with Uniqueness Information for Graphs", journal = "Lecture Notes in Computer Science", volume = 776, pages = "358--379", year = 1994, ISSN = "0302-9743", URL="ftp://ftp.cs.kun.nl/pub/CSI/SoftwEng.FunctLang/papers/smes94-guaranteeing.ps.gz" } @Article{Smith-Dinitz-Barth86, Key="Smith \& Dinitz \& Barth", Author="Reid G. Smith and Rick Dinitz and Paul Barth", Title="Impulse-86: A Substrate for Object-Oriented Interface Design", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="167-176", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Impulse-86 provides building blocks for constructing a wide variety of domain-specific interfaces for knowledge-based systems. Discussion of inheritance, mixins, and polymorphism in its programming. 16 references." } @InProceedings{Smith-Volpano98, key = {Smith \& Volpano}, author = {Geoffrey Smith and Dennis Volpano}, title = {Secure Information Flow in a Multi-Threaded Imperative Language}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {355-364}, annote = {28 references.} } @InCollection{Smith93, Key="Smith", Author="G. S. Smith", Title="Polymorphic type Inference with Overloading and Subtyping", Journal=LNCS, Number=668, Publisher="Springer-Verlag", Address=NY, Editor="M. C. Gaudel and J. P. Jouannaud", Year=1993, Note="TAPSOFT '93: Theory and Practice of Software Development. 4th International Joint Conference CAAP/FASE France, April 1993. Proceedings.", Pages="671-685", Annote="15 references" } @Article{Smolka-Ait-Kaci87, Key="Smolka \& Ait-Kaci", Author="Gert Smolka and Hassan Ait-Kaci", Title="Inheritance Hierarchies: Semantics and Unification", Journal="Journal of Symbolic Computation", Volume=7, Number="3\&4", Month="March/April", Pages="343-370", Year=1987 } @TechReport{Snyder-Hill-Olthoff89, Key="Snyder \& Hill \& Olthoff", Author="Alan Snyder and Walt Hill and Walter Olthoff", Title="A Glossary of Common Object-Oriented Terminology", Institution="Software Technology Laboratory, Hewlett-Packard Laboratories, Palo Alto, California", Month=Sep, Year=1989, Number="STL-89-26", Annote="10 references." } @TechReport{Snyder86a, Key="Snyder", Author="Alan Snyder", Title="CommonObjects: An Overview", Institution="Software Technology Laboratory, Hewlett-Packard Laboratories, Palo Alto, California", Month=Jun, Year=1986, Number="STL-86-13", Annote="Strong emphasis on encapsulation in this Flavors-like system. Classes are not objects. No handlers for undefined operations. Encapsulation protects against subclasses, even inheritance itself is hidden. Subtyping is orthogonal to inheritance. Inheriting class can hide operations of parent or rename them. Call-method syntax allows method of class or parent class to be called directly. Instance variables never directly visible to other classes, even children. 22 references." } @Article{Snyder86b, Key="Snyder", Author="Alan Snyder", Title="Encapsulation and Inheritance in Object-Oriented Programming Languages", Journal=SIGPLAN, Volume=21, Number=11, Month=Nov, Year=1986, Pages="38-45", Note="OOPSLA '86 Conference Proceedings, Norman Meyrowitz (editor), September 1986, Portland, Oregon.", Annote="Inheritance versus data abstraction (encapsulation). Subclasses are a kind of client for a class. Direct access to inherited instance variables creates a dependency; accessing instance variables only via operations is prefered. Hiding instance variables from subclasses implies merging inherited instance variables is wrong. The use of inheritance itself should be hidden; this allows inheritance to be used purely as an implementation technique and permits one to exclude operations in a subclass. Inheritance should only allow access to the class interface of immediate parent classes, not more distant ancestors. Subtyping should be separated from inheritance and based on the external behavior of objects. In CommonObjects, one can specify the type hierarchy independently of the implementation hierarchy. Problems specific to multiple inheritance are also addressed. 16 references." } @InCollection{Snyder87, Key="Snyder", Author="Alan Snyder", Title="Inheritance and the Development of Encapsulated Software Components", Editor="Bruce Shriver and Peter Wegner", BookTitle="Research Directions in Object-Oriented Programming", Publisher=MITP, Address="Cambridge, Mass.", Year=1987, Pages="165-188", Annote="18 references." } @TechReport{Snyder89, Key="Snyder", Author="Alan Snyder", Title="The Essence of Objects", Institution="Software Technology Laboratory, Hewlett-Packard Laboratories, Palo Alto, California", Month=Sep, Year=1989, Number="STL-89-25", Annote="Core concepts of the object-oriented approach in tutorial form. 12 references." } @TechReport{Snyder90, Key = "Snyder", Author = "Alan Snyder", Title = "An Abstract Object Model for Object-Oriented Systems", Institution = "Hewlett Packard Software Technology Library", Year = 1990, Number = "HPL-90-22", Address = "Software Technology Laboratory, Palo Alto, CA", Month = Apr, Annote = "3 references." } @TechReport{Snyder91a, Key = "Snyder", Author = "Alan Snyder", Title = "The Essence of Objects: Common Concepts and Terminology", Institution = "Software and Systems Laboratory, Hewlett Packard", Year = 1991, Number = "HPL-91-50", Address = "Software and Systems Laboratory, Palo Alto, CA", Month = Jun, Note = "Submitted to IEEE Computer", Annote = "12 references." } @InCollection{Snyder91b, Key = "Snyder", Author = "Alan Snyder", Title = "Modeling the C++ Object Model An Application of an Abstract Object Model", BookTitle = "ECOOP '91 Proceedings", Editor = "Pierre America", Year = 1991, Series = LNCS, Volume = 512, Pages = "1-20", Note = "An earlier version is Technical report HPL-90-212(R.1), HP Software and Systems Laboratory, Palo Alto, CA" } @TechReport{Stallman-Moon-Weinreb83, Key="Stallman \& Moon \& Weinreb", Author="Richard M. Stallman and David Moon and Daniel Weinreb", Title="Lisp Machine Window System Manual", Institution=MITAI, Month=Aug, Year=1983, Annote="The window system is built out of flavors and is characterized by a great deal of variety and flexibility and complexity. Goals seem to be to: 1. provide a flexible base for users to define their own windows, 2. to provide canned windows for generic uses, 3. control the underlying complexity by defaults and 4. provide some control and uniformity over what the user can do. Coupling and abstraction seem to be minor concerns. Defaults and options seem as important as flavors for flexibility and mastering complexity. Ease of flavor combination important for flexibility and convenience. Multiple representations and implementations not important, rather different combinations of various features. Multiple inheritance allows basic flavors that are orthogonal and thus small and easily reused. Orthogonality of flavors is important because the mechanism does not allow methods to be omitted from an included flavor. Implicit is user's ability to define new flavors and override anything not desired. Not everything is a flavor instance, thus elaborate conventions for ad hoc polymorphism on normal lisp objects." } @TechReport{Stansifer85, Key="Stansifer", Author="Ryan Stansifer", Title="Representing Constructive Theories in High-Level Programming Languages", Institution="Department of Computer Science, Cornell University", Address="Ithaca, N.Y.", Year=1985, Month=Mar, Number="TR 85-664", Annote="Describes three constructive programming logics. Shows how linear input resolution could be implemented as a proof strategy for a programming logic. The author's doctoral dissertation. 81 references." } @InProceedings{Stansifer88, Key="Stansifer", Author="Ryan Stansifer", Title="Type Inference with Subtypes", BookTitle="Conference Record of the Fifteenth Annual ACM Symposium on Principles of Programming Languages, San Diego, Calif.", Organization=ACM, Month=Jan, Year=1988, Pages="88-97", Annote="Various comparisons with Wand's system, row variables. 12 references." } @InProceedings{Stata-Abadi98, key = {Stata \& Abadi}, author = {Raymie Stata and Mart\'{i}n Abadi}, title = {A Type System for {Java} Bytecode Subroutines}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {149-160}, annote = {11 references.} } @InProceedings{Stata-Abadi98, key = {Stata \& Abadi}, author = {Raymie Stata and Mart\'{i}n Abadi}, title = {A Type System for {Java} Bytecode Subroutines}, booktitle = {Conference Record of POPL 98: The 25TH ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California}, year = 1998, organization = ACM, address = NY, month = Jan, pages = {149-160}, annote = {11 references.} } @Article{Stata-Abadi99, key = {Stata \& Abadi}, author = {Raymie Stata and Mart\'{i}n Abadi}, title = {A Type System for {Java} Bytecode Subroutines}, journal = TOPLAS, year = 1999, volume = 21, number = 1, month = Jan, pages = {90-137}, annote = {15 references} } @Article{Statman85, Key="Statman", Author="R. Statman", Title="Logical Relations and the Typed $\lambda$-Calculus", Journal="Information and Control", Volume=65, Number="2/3", Pages="85-97", Month="May/June", Year=1985, Annote="17 references." } @Article{Steensgaard-Madsen-Olsen84, Key="Steensgaard-Madsen \& Olsen", Author="Jorgen Steensgaard-Madsen and Lars Moller Olsen", Title="Definition of the Programming Language MODEF", Journal=SIGPLAN, Volume=19, Number=2, Month=Feb, Year=1984, Pages="92-110", Annote="Statement oriented data abstraction language." } @Article{Steensgaard-Madsen79, Key="Steensgaard-Madsen", Author="Jorgen Steensgaard-Madsen", Title="Pascal--Clarifications and Recommended Extensions", Journal="Acta Informatica", Volume=12, Number=1, Year=1979, Pages="73-94", Annote="Concentrates on the type system in Pascal. 2 references" } @Article{Steensgaard-Madsen81, Key="Steensgaard-Madsen", Author="J. Steensgaard-Madsen", Title="A Statement-Oriented Approach to Data Abstraction", Journal=TOPLAS, Volume=3, Number=1, Month=Jan, Year=1981, Pages="1-10", Annote="Expresses abstract types where they are used instead of separate modules. 12 references." } @TechReport{Stefik-Bell-Bobrow83, Key="Stefik \& Bell \& Bobrow", Author="M. Stefik and A. Bell and D. Bobrow", Title="Rule-Oriented Programming in Loops", Institution="Knowledge Systems Area, Xerox PARC", Number="VLSI-82-22", Year=1983, Month=Jul } @Article{Stefik-Bobrow86, Key="Stefik \& Bobrow", Author="Mark Stefik and Daniel G. Bobrow", Title="Object Oriented Programming: Themes and Variations", Journal="The AI Magazine", Year=1986, Month="Winter", Volume=6, Number=4, Pages="40-62", Annote="Introduction to the concepts of `object-oriented programming' based on Loops. Also a survey of some important variations and issues. 22 references." } @Article{Stefik-etal83, Key="Stefik, {\em et al.}", Author="M. Stefik and D. Bobrow and S. Mittal and L. Conway", Title="Knowledge Programming in Loops", Journal="The AI Magazine", Year=1983, Month="Fall", Volume=4, Number=3, Pages="3-13" } @Book{Streicher91, Key = "Streicher", Author = "T. Streicher", Title = "Semantics of Type Theory: Correctness, Completeness, and Independence Results", Publisher = "Birkhauser", Year = 1991, Address = "Boston" } @Article{Strom-Yemini86, Key = "Strom \& Yemini", Author = "Rob Strom and Shaula Yemini", Title = "Typestate: A Programming Language Concept for Enhancing Software Reliabiity", Journal = IEEETSE, Year = 1986, Volume = "SE-12", Number = 1, Month = Jan, Pages = "157-171", Annote = "Typestates are interfaces that an object may assume, depending on it's current state. 18 references" } @Article{Stroustrup84, Key="Stroustrup", Author="B. Stroustrup", Title="Data Abstraction in C", Journal="AT\&T Bell Laboratories Technical Journal", Month=Oct, Year=1984, Volume=63, Number="8, Part 2", Pages="1701-1732", Annote="Describes C++. 11 references." } @Article{Stroustrup88, Key="Stroustrup", Author="Bjarne Stroustrup", Title="What is Object-Oriented Programming?", Journal="IEEE Software", Month=May, Year=1988, Volume=5, Number=3, Pages="10-20", Annote="Discussion of Object-oriented programming languages and C++. 9 references." } @Article{Sutor-Jenks87, Key="Sutor \& Jenks", Author="Robert S. Sutor and Richard D. Jenks", Title="Type Inference and Coercion Facilities in the Scratchpad II Interpreter", Journal=SIGPLAN, Volume=22, Number=7, Month=Jul, Year=1987, Pages="56-63", Note="Proceedings of the SIGPLAN '87 Symposium on Interpreters and Interpretive Techniques, St. Paul, Minnesota, June 1987.", Annote="Scratchpad II is an abstract data type programming language with polymorphism and a sophisticated type inference and coercion facility. Modemap facility provides user control over generic invocation. Weakly typed front end for a strongly typed programming language. 8 references." } @InProceedings{Suzuki81, Key="Suzuki", Author="Norihisa Suzuki", Title="Inferring Types in Smalltalk", BookTitle="Conference Record of the Eighth ACM Symposium on Principles of Programming Languages", Publisher=ACM, Month=Jan, Year=1981, Pages="187-199", Annote="Extension of ML-like type inference algorithm to treating unions of types. 16 references." } @PhDThesis{Swierstra80, Key="Swierstra", Author="S. Doaitse Swierstra", Title="Lawine, an Experiment in Language and Machine Design", School="Twente University of Technology", Address="Groningen, The Netherlands", Year=1980, Annote="56 references." } @Article{Talpin-Jouvelot94, key = "Talpin \& Jouvelot", author = "Jean-Pierre Talpin and Pierre Jouvelot", title = "The Type and Effect Discipline", year = 1994, url = "http://cri.ensmp.fr/~talpin/ic94.ps.gz", journal = "Information and Computation", month = Jun, number = 2, pages = "245--296", volume = 111 } @Article{Tarditi-etal96, key = {Tarditi, {\em et al}}, author = {D. Tarditi and G. Morrisett and P. Cheng and C. Stone and R. Harper and P. Lee}, title = {{TIL}: A Type-Directed Optimizing Compiler for {ML}}, journal = SIGPLAN, year = 1996, volume = 31, number = 5, month = May, pages = {181-192}, note = {Proceedings of the 1996 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).}, annote = {48 references.} } @Book{Tennent81, Key="Tennent", Author="R. D. Tennent", Title="Principles of Programming Languages", Publisher="Prentice-Hall International", Address="Englewood Cliffs, N.J.", Year=1981, Annote="Contains a chapter on types and type checking." } @Article{Tennent83, Key="Tennent", Author="R. D. Tennent", Title="Some Proposals for Improving Pascal", Journal="Computer Languages", Volume=8, Number="3/4", Pages="125-137", Year=1983, Annote="Organizing programs, exception handling, representation abstraction via hiding and a class facility. 7 references" } @InCollection{Thatte90, Key="Thatte", Author="S. Thatte", Title="Type Inference and Implicit Scaling", BookTitle="ESOP '90 3rd European Symposium on Programming, Copenhagen, Denmark", Month=May, Year=1990, Pages="406-420", Editor="N. Jones", Publisher="Springer-Verlag", Address=NY, Series=LNCS, Volume=432, Annote="19 references." } @InProceedings{Thatte94, Key = {Thatte}, Author = {Satish Thatte}, Title = "Automated Synthesis of Interface Adapters for Reusable Classes", BookTitle = "Conference Record of POPL '94: 21ST ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, Portland, Oregon", Month = Jan, Year = 1994, Organization = ACM, Address = NY, Pages = "174-187", Annote = "21 references." } @TechReport{Thomason-Touretzky90, Key = "Thomason \& Touretzky", Author = "Richmond H. Thomason and David S. Touretzky", Title = "Inheritance Theory and Networks with Roles", Institution = "School of Computer Science, Carnegie Mellon", Year = 1990, Number = "CMU-CS-90-139", Month = Jun, Annote = "22 references." } @Book{Thompson91, Key = "Thompson", Author = "Simon Thompson", Title = "Type Theory and Functional Programming", Publisher = Addison-Wesley, Year = 1991, Series = "International Computer Science Series", Annote = "Both a first and second course in type theory. 137 references." } @InCollection{Thorup-Torgersen99, key = {Thorup \& Torgersen}, author = {Kresten Krab Thorup and Mads Torgersen}, title = {Unifying Genericity: Combining the Benefits of Virtual Types and Parameterized Classes}, booktitle = {ECOOP '99 --- Object-Oriented Programming 13th European Conference, Lisbon Portugal}, publisher = {Springer-Verlag}, year = 1999, editor = {Rachid Guerraoui}, volume = 1628, series = LNCS, address = NY, month = Jun, pages = {186-204}, annote = {30 references.} } @InCollection{Thorup97, key = {Thorup}, author = {Kresten Krab Thorup}, title = {Genericity in {Java} with Virtual Types}, booktitle = {ECOOP '97 --- Object-Oriented Programming 11th European Conference, Jyv\"{a}skyl\"{a}, Finland}, publisher = {Springer-Verlag}, year = 1997, editor = {Mehmet Ak\c{s}it and Satoshi Matsuoka}, volume = 1241, series = LNCS, address = NY, month = Jun, pages = {444-471}, annote = {32 references.} } @InCollection{Tiuryn90, Key="Tiuryn", Author="Jerzy Tiuryn", Title="Type Inference Probelms: A Survey", BookTitle="Mathematical Foundations of Computer Science 1990, Bansk\`a Bystrica, Czechoslovakia", Editor="B. Rovan", Series=LNCS, Volume=452, Publisher="Springer-Verlag", Address=NY, Year=1990, Pages="105-120", Annote="44 references." } @InCollection{Tiuryn93, Key="Tiuryn", Author="J. Tiuryn", Title="Type Reconstruction with Recursive Types and Atomic Subtyping", Journal=LNCS, Number=668, Publisher="Springer-Verlag", Address=NY, Editor="M. C. Gaudel and J. P. Jouannaud", Year=1993, Note="TAPSOFT '93: Theory and Practice of Software Development. 4th International Joint Conference CAAP/FASE France, April 1993. Proceedings.", Pages="686-701", Annote="17 references" } @TechReport{Tofte89, Key="Tofte", Author="Mads Tofte", Title="Four Lectures on Standard {ML}", Institution="Laboratory for Foundations of Computer Science, Department of Computer Science, University of Edinburgh", Month=Mar, Year=1989, Number="ECS-LFCS-89-73 (also CSR-290-89)", Annote="1 reference." } @Article{Tofte99, key = {Tofte}, author = {Mads Tofte}, title = {A Brief Introduction to Regions}, journal = SIGPLAN, year = 1999, volume = 34, number = 3, month = Mar, pages = {186-195}, note = "Proceedings ISMM '98: International Symposium on Memory Management, Vancouver, Canada.", annote = {12 references.} } @InProceedings{Touretzsky84, Key="Touretzsky", Author="David S. Touretzsky", Title="Implicit Ordering of Defaults in Inheritance Systems", BookTitle="AAAI '84", Organization="AAAI?", Year=1984, Pages="322-325" } @PhDThesis{Tsu92, Author = {Hideki Tsuiki}, Title = {A record calculus witha merge operator}, School = {Faculty of Environmental Information, Keio University}, Year = {1992}, Month = nov } @InCollection{Tsuiki94, Key = "Tsuiki", Author = "Hideki Tsuiki", Title = "A Normalizing Calculus with Overloading and Subtyping", BookTitle = "Theoretical Aspects of Computer Software", Publisher = "Springer-Verlag", Year = 1994, Editor = "Masami Hagiya and John C. Mitchell", Series = LNCS, Volume = 789, Pages = "273-295", Month = Apr, Annote = "16 references." } @TechReport{Tucker-Zucker90, Key = "Tucker \& Zucker", Author = "J.V. Tucker and J.I. Zucker", Title = "Provable Computable Selection Functions on Abstract Structures", Institution = "Department of Computer Science and Systems, McMaster University", Year = 1991, Number = "91-04", Address = "Hamilton, Ontario Canada L8S 4K1", Note = "To appear in Leeds Proof Theory 1990, ed P. Aczel, H. Simmons & S.S. Wainer. Cambridge University Press.", Annote = "21 references." } @Unpublished{Tucker-Zucker91a, Key = "Tucker \& Zucker", Author = "J.V. Tucker and J.I. Zucker", Title = "Deterministic and Nondeterministic Computation, and Horn Programs, on Abstract Data Types", Note = "To appear in Journal of Logic Programming", Annote = "24 references.", Year = 1991 } @TechReport{Tucker-Zucker91b, Key = "Tucker \& Zucker", Author = "J.V. Tucker and J.I. Zucker", Title = "Examples of semicomputable sets of real and complex numbers", Institution = "Department of Computer Science and Systems, McMaster University", Year = 1991, Number = "91-03", Address = "Hamiltoon, Ontario Canada, L8S 4K1", Note = "To appear in Constructivity in Computer Science - Proceedings of Summer Symposium, San Antonio, Texas, June 1991. ed M.J. O'Donnell & J.P. Myers, Jr. Springer-Verlag.", Annote = "17 references." } @Unpublished{Tucker-Zucker91c, Key = "Tucker \& Zucker", Author = "J.V. Tucker and J.I. Zucker", Title = "Projections of Semicomputable Relations on Abstract Data Types", Note = "Submitted to International Journal Foundations of Computer Science", Annote = "15 references." } @Unpublished{Turner86b, Key = "Turner", Author = "David Turner", Title = "Constructive Type Theory as a Programming Language", Note = "Notes from lecture given", Month = May, Year = 1986 } @InProceedings{Urzyczyn93, Key={Urzyczyn}, Author = {P. Urzyczyn}, Title = {Type reconstruction in $F_{w}$ is undecidable}, BookTitle = {International Conference on Typed Lambda Calculi and Applications}, Year = {1993}, Editor = {M. Bezem and J.F. Groote}, Publisher = {Springer-Verlag}, Series = LNCS, Number = {664}, Pages = {418-432}, Address = {Utrecht, The Netherlands}, Month = Mar, Note = {TLCA'93}, Annote={22 references} } @Article{VanDusen81, Key="Van Deusen", Title="Types in Red", Author="Mary Van Deusen", Journal=SIGPLAN, Volume=16, Number=12, Pages="27-38", Year=1981, Annote="A flexible system for type visibility and definition. 10 references." } @Article{Volpano-Smith95, key = "Volpano \& Smith", author = "Dennis Volpano and Geoffrey Smith", title = "A type soundness proof for variables in LCF ML", journal = "Information Processing Letters", year = 1995, volume = 56, number = 3, month = Nov, pages = "141-146" } @InProceedings{Wadler-Blott89, Key="Wadler \& Blott", Author="Philip Wadler and Stephen Blott", Title="How to make ad-hoc Polymorphism less ad hoc", Organization=ACM, BookTitle="Conference Record of the Sixteenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Month=Jan, Year=1989, Pages="60-76", Annote="18 references." } @TechReport{Wagner81, Key = "Wagner", Author = "Eric G. Wagner", Title = "Lecture Notes on the Algebraic Specification of Data Types", Institution = "Mathematical Sciences Department: IBM Thomas J. Watson Research Center", Year = 1981, Type = "Research Report", Number = "RC 9203 (#39787)", Address = "Yorktown Heights, New York 10598", Month = October, Annote = "83 references." } @Article{Waldmann92, Key = "Waldmann", Author = "Uwe Waldmann", Title = "Semantics of Order-sorted Specifications", Journal = "Theoretical Computer Science", Volume = 94, Number = 1, Month = Mar, Year = 1992, Pages = "1-35" } @InCollection{Waller91, Key = "Waller", Author = {E. Waller}, Title = {Schema updates and consistency}, BookTitle = {Deductive and Object-Oriented Databases, second International Conference, Munich, Germany}, Editor = "C. Delobel and M. Kifer and Y. Masunaga", Year = 1991, Publisher = "Springer-Verlag", Address = NY, Series = LNCS, Volume = 566, Month = Dec, Pages = "167-188" } @InProceedings{Wand84, Key="Wand", Author="Mitchell Wand", Title="A Types-as-Sets Semantics for Milner-Style Polymorphism", Organization=ACM, BookTitle="Conference Record of the Eleventh Annual ACM Symposium on Principles of Programming Languages, Salt Lake City, Utah", Month=Jan, Year=1984, Pages="158-164", Annote="Semantics of Milner-style polymorphism. 26 references." } @InProceedings{Wand87, Key="Wand", Author="M. Wand", Title="Complete type inference for simple objects", BookTitle="Symposium on Logic in Computer Science, Ithaca, NY", Pages="37-44", Year=1987, Organization=IEEE, Month=Jun, Note="Corrigendum in {\it Third Annual Symposium on Logic in Computer Science}, page 132, 1988", Annote="Type inference for record types with multiple inheritance. 6 references." } @InProceedings{Wand89a, Key="Wand", Author="Mitchell Wand", Title="Type Inference for Record Concatenation and Multiple Inheritance", BookTitle="Fourth Annual Symposium on Logic in Computer Science, Pacific Grove, California", Organization=IEEE, Month=Jun, Year=1989, Pages="92-97", Annote="18 references." } @InCollection{Wand89b, Key="Wand", Author="Yair Wand", Title="A Proposal for a Formal Model of Objects", Editor="Won Kim and Frederick H. Lochovsky", BookTitle="Object-Oriented Concepts, Databases, and Applications", Publisher=Addison-Wesley, Address="Reading, Mass.", Year=1989, Chapter=21, Pages="537-559", Annote="16 references" } @Article{Wasserman-etal81, Key="Wasserman, {\em et al.}", Author="Anthony I. Wasserman and David D. Sheretz and Martin L. Kersten and Reid P. van de Reit and Mark D. Dippe", Title="Revised Report on the Programming Language PLAIN", Journal=SIGPLAN, Volume=16, Number=5, Month=May, Pages="59-80", Year=1981, Annote="Strongly typed language with modules and data base relation types built-in. Good string support. 9 references." } @TechReport{Wegner-Zdonik87, Key="Wegner \& Zdonik", Author="Peter Wegner and Stanley B. Zdonik", Title="Why Like Isn't Like Is-a (or As You Like It)", Institution="Brown University, Department of Computer Science", Month=Jul, Year=1987, Number="CS-87-17", Annote="21 references." } @TechReport{Wegner-Zdonik88, Key="Wegner \& Zdonik", Author="Peter Wegner and Stanley B. Zdonik", Title="Inheritance as an Incremental Modification Mechanism or What Like Is and Isn't Like", BookTitle="ECOOP '88, European Conference on Object-Oriented Programming, Oslo, Norway", Editor="S. Gjessing and K. Nygaard", Publisher="Springer-Verlag", Address=NY, Month=Aug, Year=1988, Pages="55-77", Series=LNCS, Volume=322, Annote="27 references." } @InProceedings{Wegner83, Key="Wegner", Author="P. Wegner", Title="On the Unification of Data and Program Abstraction in Ada", Organization=ACM, BookTitle="Conference Record of the Tenth Annual ACM Symposium on Principles of Programming Languages, Austin, Texas", Month=Jan, Year=1983, Pages="256-264", Annote="8 references." } @TechReport{Wegner86, Key="Wegner", Author="Peter Wegner", Title="Classification as a Paradigm for Computing", Institution="Brown University, Department of Computer Science", Month=May, Year=1986, Number="CS-86-11", Annote="29 references." } @TechReport{Weihl86, Key="Weihl", Author="William E. Weihl", Title="Type-Checking for Remote Procedure Calls", Institution=MITLCS, Type="DSG Note", Number=138, Month=Jan, Year=1986, Annote="Raises the issue of having a different type-checking rule for RPCs as opposed to the rule for normal calls. Proposes having classes of types that are similar enough to be identified for call-by-value." } @TechReport{Weinreb-Moon80, Key="Weinreb \& Moon", Author="Daniel Weinreb and David Moon", Title="Flavors: Message Passing in the Lisp Machine", Institution=MITAI, Type="AI Memo", Number=602, Month=Nov, Year=1980, Annote="This is a draft of the chapter on flavors from the Lisp Machine manual. It is obsolete with respect to the current Lisp machine, but only in details." } @TechReport{Weller82, Key="Weller", Author="D. L. Weller", Title="A Relational Representation of an Abstract Type System", Institution="IBM Research Laboratory, San Jose, CA", Year=1982, Number="RJ3503", Type="IBM Research Report", Month=Jun, Annote="14 references." } @InProceedings{Wells94, key = "Wells", author = "J. B. Wells", title = "Typability and Type Checking in the Second-Order $\lambda$-Calculus Are Equivalent and Undecidable", booktitle = "Proceedings Ninth Annual IEEE Symposium on Logic in Computer Science, Paris", pages = "176-185", year = 1994 } @Article{Wetherell82, Key="Wetherell", Title="Error Data Values in the Data-Flow Language VAL", Author="C. S. Wetherell", Journal=TOPLAS, Volume=4, Number=2, Month=Apr, Year=1982, Pages="226-238", Annote="Describes the error algebra in VAL. 17 references." } @Article{Wharton83, Key="Wharton", Author="R. Michael Wharton", Title="A Note on Types and Prototypes", Journal=SIGPLAN, Month=Dec, Year=1983, Volume=18, Number=12, Pages="122-126", Annote="Instead of predefined types, has predefined variables. 6 references." } @InProceedings{Wirth80, Key="Wirth", Author="N. Wirth", Title="The Module: A System Structuring Facility in High-Level Programming Languages", BookTitle="Language Design and Programming Methodology. Proceedings of a Symposium, September 1979, Sydney, Australia", Year=1980, Publisher="Springer-Verlag", Pages="1-24", Editor="Jeffery M. Tobias", Note="Volume 79 in the Lecture Notes in Computer Science Series.", Annote="Modules are a means to partition systems effectively. Presentation of Modula-2. Separation into definition and implementation parts. 11 references." } @Article{Wirth87, Key="Wirth", Author="N. Wirth", Title="Extensions of Record Types", Journal=SIGCSE, Volume=19, Number=2, Month=Jun, Year=1987, Pages="2-9", Note="Revised version appears in TOPLAS, Vol 10, Number 2, April 1988, pages 204--214.", Annote="Variables of an extended type form a subset of the variables of the ancestor type. Two new language constructs: type test and type guards. 6 references." } @Article{Wirth88, Key="Wirth", Author="N. Wirth", Title="Type Extensions", Journal=TOPLAS, Volume=10, Number=2, Month=Apr, Year=1988, Pages="204-214", Annote="Extensible data types, like subclasses but without extra language features. Variables of an extended type form a subset of the variables of the ancestor type. Two new language constructs: type test and type guards. 8 references." } @Article{Woitok83, Key="Woitok", Author="Rainer Woitok", Title="Abstracting Linked Data Structures Using Incremental Records", Journal=SIGPLAN, Year=1983, Volume=18, Number=11, Month=Nov, Pages="54-63", Annote="Practical paradigm problem. How should list pointers be abstractly reflected? The conventional list[t] abstracting has no provision for pointers from (t) objects back to list placeholders, so more indirectness is required, and in particular one cannot go from one list to the next through an element. Backward pointers cannot be used without exposing the rep. How can pointers be put in user data structures and still controlled? Abstract list elements instead of lists. But this solution involves allowing abstract types to live in different parts of the same record, namely extensible records. This allows the list element abstraction to point at the whole of a list element object without affecting modularity or abstraction. Generics allow code savings and ability to thread multiple lists through elements. 9 references" } @Book{Wolfram93, Key = "Wolfram", Author = "D.A, Wolfram", Title = "The Clausal Theory of Types", Publisher = "Cambridge University Press", Year = 1993, Series = "Cambridge tracts in Theoretical Computer Science", Annote = "204 references." } @InCollection{Wolter-Lowe92, Key = "Wolter \& Lowe", Author = "Uwe Wolter and Michael Lowe", Title = "Beyond Conditional Equations: Quasi-Initial Semantics for Parametric Algebraic Specifications", BookTitle = "CAAP '92, 17th Colloquium on Trees in Algebra and Programming, Rennes, France, February 1992, Proceedings", Publisher = "Springer-Verlag", Year = 1992, Editor = "Jean-Claude Raoult", Series = LNCS, Address = NY, Volume = 581, Pages = "342-361", Annote = "22 references" } @TechReport{Wraith89, Key="Wraith", Author="G. C. Wraith", Title="Categorical Datatypes", Institution="Computer Science, School of Cognitive and Computing Sciences, University of Sussex", Address="Brighton BN1 9QH", Month=Jan, Year=1989, Number="1/89", Note="Appears in {\em Category Theory and Computer Science}, (D. Pitts, {\em et al.}, eds., Springer-Verlag, LNCS 389).", Annote="Modeling Hagino's categorical datatypes in the the second order polymorphic lambda calculus. 8 references." } @TechReport{Wright-Cartwright93, Key = "Wright \& Cartwright", Author = "Andrew K. Wright and Robert Cartwright", Title = "A Practical Soft Type System for {Scheme}", Institution = "Department of Computer Science, Rice University", Year = 1993, Number = "COMP TR93-918", Address = "Houston, Texas", Month = Dec, Annote = "24 references." } @Article{Wright-Cartwright97, Key = "Wright \& Cartwright", Author = "Andrew K. Wright and Robert Cartwright", Title = "A Practical Soft Type System for {Scheme}", journal = TOPLAS, year = 1997, volume = 19, number = 1, month = Jan, pages = {87-152}, annote = {83 references.} } @TechReport{Wright-Felleisen91, Key = "Wright \& Felleisen", Author = "Andrew K. Wright and Matthias Felleisen", Title = "A Syntactic Approach to Type Soundness", Institution = "Department of Computer Science, Rice University", Year = 1991, Number = "COMP TR91-160", Address = "Houston, Texas", Month = Apr, Annote = "35 references." } @InCollection{Wright92, Key = "Wright", Author = "Andrew K. Wright", Title = "Typing References by Effect Inference", BookTitle = "ESOP '92, 4th European Symposium on Programming, Rennes, France, February 1992, Proceedings", Publisher = "Springer-Verlag", Year = 1992, Editor = "Bernd Krieg-Bruckner", Series = LNCS, Address = NY, Volume = 582, Pages = "473-491", Annote = "19 references" } @Article{Wright-Felleisen94, Key = "Wright \& Felleisen", Author = "Andrew K. Wright and Matthias Felleisen", Title = "A Syntactic Approach to Type Soundness", Journal = "Information and Computation", Year = 1994, Number = 1, Volume = 115, Month = Nov, Pages = "38-94", Annote = "38 references." } @Article{Wulf80, Key="Wulf", Author="William A. Wulf", Title="Trends in the Design and Implementation of Programming Languages", Journal="Computer", Year=1980, Volume=13, Number=1, Pages="14-25", Month=Jan, Annote="33 references." } @Article{Xi-Pfenning98, key = {Xi \& Pfenning}, author = {Hongwei Xi and Frank Pfenning}, title = {Eliminating Array Bound Checking Through Dependent Types}, journal = SIGPLAN, year = 1998, volume = 33, number = 5, month = May, pages = {249-257}, note = {Proceedings of the 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI).}, annote = {24 references.} } @InProceedings{Xi-Pfenning99, key = {Xi \& Pfenning}, author = {Howgwei Xi and Frank Pfenning}, title = {Dependent Types in Practical Programming}, booktitle = {Conference Record of POPL 99: The 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Antonio, Texas}, year = 1999, organization = ACM, address = NY, month = Jan, pages = {214-227}, annote = {28 references.} } @Article{Yamane85, Key="Yamane", Author="Yoshito Yamane", Title="Some Thoughts on the Type System of B", Journal=SIGPLAN, Volume=20, Number=10, Month=Oct, Year=1985, Pages="105-110", Annote="4 references." } @InProceedings{Yang-Huang98, author = {Honseok Yang and Howard Huang}, title = {Type Reconstruction for Syntactic Control of Interference}, booktitle = {IEEE Computer Society International Conference on Computer Languages 1998, Loyola University, Chicago}, key = {Yang \& Huang}, year = 1998, organization = IEEE, address = {Los Alamitos, California}, month = {May}, pages = {164-173}, annote = {20 references.} } @Article{Yardeni-Shapiro91, Key = "Yardeni \& Shapiro", Author = "Eyal Yardeni and Ehud Shapiro", Title = "A Type System for Logic Programs", Journal = "Journal of Logic Programming", Year = 1991, Volume = 10, Number = 2, Month = Feb, Pages = "125-154" } @InProceedings{Yelland89a, Key="Yelland", Author="P. M. Yelland", Title="First Steps Towards Fully Abstract Semantics for Object-Oriented Languages", BookTitle="{ECOOP'89}, European Conference on Object-Oriented Programming, British Computer Society Workshop Series", Editor="Stephen Cook", Month=Jul, Year=1989, Publisher="Cambridge University Press", Pages="348-364", Annote="Formal characterization of the visible behavior of objects. 19 references." } @Article{Yelland89b, Key="Yelland", Author="P. M. Yelland", Title="First Steps Towards Fully Abstract Semantics for Object-Oriented Languages", Journal="The Computer Journal", Volume=32, Number=4, Month=Aug, Year=1989, Pages="290-296" } @InProceedings{Yves-Laurent92, Key = "Yves \& Laurent", Author = "Caseau Yves and Perron Laurent", Title = "A type system for object-oriented database programming and querying languages.", BookTitle= "Proceedings of the Third International Workshop, Nafplion, Greece, August, 1991", Publisher = "Morgan-Kaufman Publishers Inc.", Year = 1992, Page = "218-235", Annote = "extracted from Computing reviews." } @Article{Zilles73, Key="Zilles", Title="Procedural Encapsulation: A Linguistic Protection Technique", Author="Steven Zilles", Journal=SIGPLAN, Volume=8, Number=9, Year=1973, Pages="142-146" } @Article{Zilles81, Key="Zilles", Title="Types, Algebras and Modeling", Author="Stephen N. Zilles", Journal=SIGPLAN, Volume=16, Number=1, Pages="207-209", Month=Jan, Year=1981, Note="Proceedings of the Workshop on Data Abstraction, Databases and Conceptual Modeling, June, 1980", Annote="Tries to unify types in data bases and programming languages. 7 references." } @Article{Zippel83, Key="Zippel", Author="Richard Zippel", Title="Capsules", Journal=SIGPLAN, Year=1983, Month=Jun, Volume=18, Number=6, Pages="166-169", Note="Proceedings of the SIGPLAN '83 Symposium on Programming Language Issues in Software Systems, San Francisco", Annote="Sharing code by referring to code by its desired behavior and having the system find it. Protocol consists of operations, their semantics, axioms, instance variables and attributes. Protocols collect operations. Semantics and axioms are not understood. Capsules implement a protocol and operations. Separation of code and specifications. Functionality can be added while the system runs. 5 references." } @Unpublished{Zippel84, Key="Zippel", Author="Richard Zippel", Title="Private Communication", Year=1984, Note="Discussion of Flavors and capsules mechanisms.", Annote="Lisp machine used with exploratory methodology, programming by experiment, building tools and from bottom up. Inheritance of data definitions important for controlling complexity, building software in layers. Run-time redefinition of methods important for debugging and they are always debugging. Deamons used very often. Keyword arguments more important than optional arguments and highly used. Flavors not usually used to allow multiple implementations of an abstraction to interact in one program, usually have one or a few implementations which are selected when mixed in. More common to take some flavor, mix it in and extend it. Ad hoc and message passing polymorphism both heavily used. Meta capsules provide templates in which method combination style can be defined for a capsule. Capsules allow one to ignore the implementations of lower layers and only specify performance desired." } @InCollection{deBruijn80, Key="de Bruijn", Author="N. G. de Bruijn", Title="A Survey of the Project AUTOMATH", BookTitle="To H. B. Curry: Essays on Combinatory Logic, Lambda Calculus and Formalism", Editor="J. P. Seldin and J. R. Hindley", Publisher="Academic Press, Inc.", Address=NY, Year=1980, Pages="579-606", Annote="34 references." } @PhDThesis{vanDaalen80a, Key="van Daalen", Author="Diedrik T. van Daalen", Title="The Language Theory of AUTOMATH", School="The University of Technology, Eindhoven", Year=1980 }