% $Id$
% Type theory, abstract data types, subtyping, types in programming languages.

@Unpublished{Abadi-Cardelli-Plotkin93,
  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,
  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 =	 SV,
  Year =	 1994,
  Editor =	 "Masami Hagiya and John C. Mitchell",
  Series =	 LNCS,
  Volume =	 789,
  Pages =	 "296-320",
  Month =	 apr,
  Annote =	 "19 references."
}

@InProceedings{Abadi-Cardelli94b,
  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,
  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 =	 SV,
  Address =	 NY,
  Series =	 LNCS,
  Volume =	 788,
  Pages =	 "1-25"
}

@InProceedings{Abadi-Cardelli94d,
  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,
  Author =	 "Mart\'{\i}n Abadi and Luca Cardelli",
  Title =	 "On Subtyping and Matching",
  Series =	 LNCS,
  Publisher =	 SV,
  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,
  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 =	 SV,
  number =	 915,
  year =	 1995,
  month =	 may,
  pages =	 "471-485",
  annote =	 "26 references."
}

@Article{Abadi-Cardelli95c,
  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 =	 SV,
  year =	 1996,
  series =	 "Monographs in Computer Science",
  address =	 NY,
  annote =	 "128 references."
}

@InProceedings{Abadi-Pierce-Plotkin89,
  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,
  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,
  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,
  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,
  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,
  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,
  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",
  journal =	 "Journal of Functional Programming",
  year =	 1994,
  volume =	 4,
  number =	 2,
  pages =	 "249-283",
  month =	 apr,
  annote =	 "26 references."
}

@Article{Abdali-Cherry-Soiffer86,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Editor =	 "Oscar M. Nierstrasz",
  Number =	 707,
  BookTitle =	 "ECOOP '93 - Object-Oriented Programming 7th European
                  Conference",
  Year = 1993,
  Pages =	 "247-267",
  Annote =	 "15 references"
}

@InCollection{Agesen95,
  Author =	 "Ole Agesen",
  Title =	 "The Cartesian Product Algorithm: Simple and Precise
                  Typing of Parametric Polymorphism.",
  Series =	 LNCS,
  Publisher =	 SV,
  Address =	 NY,
  Editor =	 "Walter Olthoff",
  Number =	 952,
  BookTitle =	 "ECOOP '95 - Object-Oriented Programming 9th European
                  Conference",
  Location = "Aarhus, Denmark",
  Year =	 1995,
  Pages =	 "2-26",
  Annote =	 "25 references"
}

@InProceedings{Agrawal-DeMichiel-Lindsay91,
  Author =	 "Rakesh Agrawal and Lindga G. DeMichiel and Bruce
                  G. Lindsay",
  Title =	 "Static Type Checking of Multi-Methods",
  Booktitle =	 {OOPSLA '91: Conference proceedings on Object-oriented 
                  programming systems, languages, and applications},
  Location = "Phoenix, Arizona",
  Editor = "Andreas Paepcke",
  Series =	 SIGPLAN,
  Volume =	 "26(11)",
  Publisher = ACM,
  Address = NY,
  Month =	 nov,
  Year =	 1991,
  Pages =	 "113--128",
  Annote =	 "13 references."
}

@Article{Agrawl-Garg84,
  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,
  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,
  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 =	 SV,
  Year =	 1993,
  Editor =	 "R. K. Shyamasundar",
  Series =	 LNCS,
  Volume =	 761,
  Pages =	 "24-40",
  Month =	 oct,
  Annote =	 "13 references."
}

@TechReport{Ait-Kaci83,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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."
}

@InProceedings{Aldrich-Kostadinov-Chambers02,
  author =	 {Jonathan Aldrich and Valentin Kostadinov and Craig
                  Chambers},
  title =	 {Alias Annotations for Program Understanding},
  BookTitle =	 "Proceedings of the 17th ACM conference on
                  Object-oriented programming, systems, languages, and
                  applications",
  Series =	 SIGPLAN,
  Volume =	 "37(11)",
  Month =	 nov,
  Year =	 2002,
  organization = ACM,
  pages =	 {311--330},
  annote =	 {Many references.}
}

@Unpublished{Aldrich03,
  author =	 {Jonathan Aldrich},
  title =	 {Open Modules: Reconciling Extensibility and
                  Information Hiding},
  note =	 {Available from
                  \url{http://www-2.cs.cmu.edu/~aldrich/aosd/}},
  year =	 {2003},
  annote =	 {14 references}
}

@InCollection{Allen87,
  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},
  publisher =	 SV,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  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,
  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,
  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,
  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 =	 SV,
  Year =	 1991,
  Editor =	 "J. W. de Bakker and W. P. de Roever and
                  G. Rozenberg",
  Series =	 LNCS,
  Volume =	 489,
  Pages =	 "60-90",
  Address =	 NY,
  URL =          {http://dx.doi.org/10.1007/BFb0019440},
  Annote =	 "Design and other aspects of POOL. 16 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 =	 SV,
  year =	 "1997",
  editor =	 "M. Dam",
  number =	 "1192",
  series =	 "Lecture Notes in Computer Science",
}

@InProceedings{Ancona-Lagorio-Zucca02,
  author =	 {Davide Ancona and Giovanni Lagorio and Elena Zucca},
  title =	 {A Formal Framework for {Java} Separate Compilation},
  booktitle =	 {ECOOP 2002---Object-Oriented Programming, 16th
                  European Conference, M{\'a}laga, Spain,
                  Proceedings},
  pages =	 {609-635},
  year =	 2002,
  editor =	 {Boris Magnusson},
  volume =	 2374,
  series =	 LNCS,
  address =	 {Berlin},
  month =	 jun,
  publisher =	 SV,
  annote =	 {19 references.}
}

@InProceedings{Andreae-etal06,
  author =	 {Chris Andreae and James Noble and Shane Markstrum and Todd Millstein},
  title =	 {A Framework for Implementing Pluggable Type Systems},
  booktitle =    {{OOPSLA 2006:} Proceedings of the 21st International Conference
                    on Object-oriented Programming Systems, Languages, and
                    Applications},
  year = 2006,
  publisher = ACM,
  address = NY,
  month = oct,
  series = SIGPLAN,
  location =	 {Portland, OR},
  pages = {57-74}
}

@InProceedings{Aponte93,
  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,
  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,
  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,
  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,
  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 =	 SV,
  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,
  Author =	 "Malcolm P. Atkinson and Peter Buneman and Ronald
                  Morrison",
  Title =	 "Data Types and Persistence",
  Publisher =	 SV,
  Address =	 NY,
  Year =	 1988,
  Annote =	 "Proceedings of the Appin Workshop, 1985. Hundreds of
                  references."
}

@Article{Atkinson-Buneman87,
  Author =	 "Malcolm P. Atkinson and O. Peter Buneman",
  Title =	 "Types and Persistence in Database Programming
                  Languages",
  Journal =	 ACMCS,
  Volume =	 19,
  Number =	 2,
  Month =	 jun,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Roland Backhouse and Paul Hoogendijk",
  Title =	 "Elements of a relational theory of datatypes",
  BookTitle =	 "Formal Program Development",
  Publisher =	 SV,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Pages =	 "9-60",
  Year =	 1989,
  Annote =	 "Martin-Lof style type theory. 21 references."
}

@Article{Bailes87,
  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,
  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{Bakel95,
  Author =       "Steffan van Bakel",
  Title =        "Intersection Type Assignment Systems",
  Journal =      TCS,
  Volume =       151,
  Number =       2,
  Year =         1995,
  Pages =        "385-435"
}

@Article{Bar-David92,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Series =	 LNCS,
  Volume =	 432,
  Annote =	 "42 references."
}

@Article{Barendregt91,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  volume =	 8,
  number =	 2,
  month =	 mar,
  pages =	 {177-193},
  annote =	 {26 references.}
}

@InCollection{Bergstra-Tucker80,
  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 =	 SV,
  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,
  Author =	 "Didier Bert and Roger Soler",
  Title =	 "About Data Type Genericity",
  BookTitle =	 "Formalization of Programming Concepts, International
                  Colloquium, Peniscola, Spain, April 1981",
  Publisher =	 SV,
  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,
  Author =	 "Elisa Bertino and Biovanna Guerrini",
  Title =	 "Objects with Multiple Most Specific Classes",
  Series =	 LNCS,
  Publisher =	 SV,
  Address =	 NY,
  Editor =	 "Walter Olthoff",
  Number =	 952,
  Booktitle =	 "ECOOP '95 - Object-Oriented Programming 9th European
                  Conference",
  Location = "Aarhus, Denmark",
  Pages =	 "102-126",
  Year =	 1995,
  Annote =	 "16 references"
}

@TechReport{Bieman-Baker88,
  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",
  Year = 1988,
  Address =	 "Ames, Iowa",
  Number =	 "88-20"
}

@InProceedings{Biswas95,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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."
}

@InProceedings{Bonniot03,
  author =	 {Daniel Bonniot},
  title =	 {Using kinds to type partially-polymorphic methods},
  booktitle =	 {Electronic Notes in Theoretical Computer Science},
  year =	 {2003},
  editor =	 {Gilles Barthe and Peter Thiemann},
  volume =	 {75},
  publisher =	 {Elsevier},
  address = NY,
}

@InCollection{Bono-Patel-Shmatikov99,
  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 =	 SV,
  year =	 1999,
  editor =	 {Rachid Guerraoui},
  volume =	 1628,
  series =	 LNCS,
  address =	 NY,
  month =	 jun,
  pages =	 {43-66},
  annote =	 {45 references.}
}

@InProceedings{Borning-Ingalls82a,
  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,
  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,
  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,
  title =	 "Type-Checking Higher-Order Polymorphic
                  Multi-Methods",
  author =	 "Fran{\c{c}}ois Bourdoncle and Stephan Merz",
  pages =	 "302--315",
  booktitle =	 {POPL '97: Proceedings of the 24th ACM SIGPLAN-SIGACT 
                 symposium on Principles of programming languages},
  year =	 1997,
  publisher =	 ACM,
  address =	 NY,
  annote =	 "41 references."
}

@Article{Boute80,
  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."
}

@InProceedings{Boyapati-Lee-Rinard02,
  author =	 {Chandrasekhar Boyapati and Robert Lee and Martin
                  Rinard},
  title =	 {Ownership types for safe programming: preventing
                  data races and deadlocks},
  booktitle =	 {Proceedings of the 17th ACM conference on
                  Object-oriented programming, systems, languages, and
                  applications},
  Series =	 SIGPLAN,
  Volume =	 "37(11)",
  Month =	 nov,
  Year =	 2002,
  organization = ACM,
  pages =	 {211--230},
  annote =	 {48 references.}
}

@Article{Boyd83,
  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,
  Author =	 {John Boyland and Giuseppe Castagna},
  Title =	 {Parasitic Methods: Implementation of Multi-Methods
                  for {Java}},
  booktitle =    {OOPSLA '97: Proceedings of the 12th ACM SIGPLAN conference 
                    on Object-oriented programming, systems, languages, and
                    applications},
  editor = {A. Michael Berman},
  Location = "Atlanta, Georgia",
  Year =	 1997,
  month =	 oct,
  Pages =	 "66-76",
  Series =	 SIGPLAN,
  publisher =	 ACM,
  address =	 NY,
  volume =	 "32(10)",
  annote =	 "A way to add multimethods to single dispatch
                  languages, like Java. 15 references."
}

@InProceedings{Boyland-Noble-Retert01,
  author =	 {John Boyland and James Noble and William Retert},
  title =	 {Capabilities for Sharing},
  booktitle =	 {ECOOP 2001 --- Object-Oriented Programming: 15th
                  European Conference, Budapest, Hungary},
  pages =	 {1-27},
  year =	 2001,
  editor =	 {Jorgen Lindskov Knudsen},
  volume =	 2072,
  series =	 LNCS,
  address =	 {Berlin},
  month =	 jun,
  publisher =	 SV,
  annote =	 {42 references.}
}

@article{Boyland00,
  author =	 {John Boyland},
  title =	 {Alias burying: Unique variables without destructive
                  reads},
  journal =	 {Software---Practice and Experience},
  year =	 2001,
  Volume =	 31,
  Number =	 6,
  Pages =	 "533-553",
  Month =	 may,
}

@Article{Bracha-Griswold93,
  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,
  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,
  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,
  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,
  Author =	 "B. M. Brosgol",
  Title =	 "Some Issues in Data Types and Type Checking",
  Pages =	 "102-130",
  BookTitle =	 "Design and Implementation of Programming Languages",
  Publisher =	 SV,
  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,
  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}",
}

@Article{Bruce-Cardelli-Pierce99,
  author =	 "Kim B. Bruce and Luca Cardelli and Benjamin
                  C. Pierce",
  title =	 "Comparing Object Encodings",
  journal =	 "Information and Computation",
  year =	 1999,
  month =	 nov,
  volume =	 155,
  number =	 "1/2",
  pages =	 "108-133"
}

@InCollection{Bruce-Crabtree-Kanapathy93,
  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 =	 SV,
  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,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  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,
  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 =	 SV,
  Address =	 NY,
  Year =	 1988,
  Pages =	 "455-475",
  Annote =	 "20 references."
}

@Unpublished{Bruce-Schuett-vanGent94,
  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,
  Author =	 "Kim B. Bruce and Angela Schuett and Robert van Gent",
  Title =	 "A type-safe polymorphic object-oriented language",
  Series =	 LNCS,
  Publisher =	 SV,
  Address =	 NY,
  Editor =	 "Walter Olthoff",
  Number =	 952,
  Booktitle =	 "ECOOP '95 - Object-Oriented Programming 9th European
                  Conference",
  Pages =	 "27-51",
  Year =	 1995,
  Annote =	 "27 references."
}

@Article{Bruce-Wegner86,
  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,
  Pages =        "163-172",
  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,
  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,
  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,
  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,
  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,
  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"
}

@Book{Bruce02,
  author =	 "Kim B. Bruce",
  title =	 "Foundations of Object-Oriented Languages: Types and
                  Semantics",
  publisher =	 "The MIT Press",
  address =	 "Cambridge, MA",
  year =	 "2002",
  annote =	 "Many references."
}

@TechReport{Bruce92,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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."
}

@TechReport{Cardelli-Leroy90,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Series =	 LNCS,
  Volume =	 442,
  Pages =	 "22-52",
  Annote =	 "25 references."
}

@TechReport{Cardelli-Mitchell89b,
  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,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Luca Cardelli",
  Title =	 "A Semantics of Multiple Inheritance",
  BookTitle =	 "Semantics of Data Types: International Symposium,
                  Sophia-Antipolis, France",
  Publisher =	 SV,
  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,
  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 =	 SV,
  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,
  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."
}

@incollection{Cardelli86a,
    author = "L. Cardelli",
    title = "The Amber Machine",
    booktitle = "Combinators and Functional Programming Languages",
    publisher = SV,
    address = "Berlin",
    editor = "G. Cousineau and P.-L. Curien and B. Robinet",
    pages = "48-70",
    year = 1986,
    Annote = "An intermediate language for compiling, in the
                  tradition of the SECD Machine, specialized for the
                  Amber Language."
}

@Article{Cardelli87,
  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,
  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,
  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",
  Annote =	 "A revised version of the paper that appeared in the
                  1984 Semantics of Data Types Symposium, LNCS 173,
                  pages 51--66.  20 references."
}

@InCollection{Cardelli88c,
  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,
  Publisher = SV,
  Annote =	 "Type system based on dependent types. Sketch of some
                  type checking techniques. 13 references."
}

@TechReport{Cardelli89,
  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,
  Author =	 "Luca Cardelli",
  Title =	 "Typeful Programming",
  BookTitle =	 "Formal Description of Programming Concepts",
  Publisher =	 SV,
  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,
  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,
  Author =	 "Luca Cardelli",
  Title =	 "Typed Foundations of Object-oriented Programming",
  Note =	 "POPL '92 Tutorial",
  Annote =	 "30 references.",
  Month =	 jan,
  Year =	 1992
}

@TechReport{Cardelli93,
  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,
  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,
  publisher =	 ACM,
  address =	 NY,
  month =	 jan,
  pages =	 {266-277-},
  annote =	 {Separate compilation and linking. 21 references.}
}

@InCollection{Cardone-Coppo90,
  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,
  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,
  Author =	 "Felice Cardone",
  Title =	 "Recursive Types for Fun",
  Journal =	 TCS,
  Year =	 1991,
  Volume =	 83,
  Number =	 1,
  Month =	 jun,
  Pages =	 "29-56"
}

@InCollection{Cardone92,
  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 =	 SV,
  Year =	 1992,
  Editor =	 "Jean-Claude Raoult",
  Series =	 LNCS,
  Address =	 NY,
  Volume =	 581,
  Pages =	 "66-85",
  Annote =	 "26 references"
}

@TechReport{Carnese84,
  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,
  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,
  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,
  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,
  Author =	 "Yves Caseau and PLaurent Perron",
  Title =	 "Attaching Second-Order Types to Methods in an
                  Object-Oriented Language",
  Journal =	 LNCS,
  Publisher =	 SV,
  Address =	 NY,
  Editor =	 "Oscar M. Nierstrasz",
  Number =	 707,
  Booktitle =	 "ECOOP '93 - Object-Oriented Programming 7th European
                  Conference",
  Year = 1993,
  Pages =	 "142-160",
  Annote =	 "30 references"
}

@Article{Caseau93,
  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,
  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 =	 SV,
  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},
  annote =	 "A preliminary version appeared in {\em ACM
                  Conference on LISP and Functional Programming\/},
                  June 1992 (pp.\ 182--192)"
}

@Article{Castagna-Leavens95,
  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,
  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,
  Author =	 "G. Castagna",
  Title =	 "A Meta-Language for Typed Object-Oriented Languages",
  BookTitle =	 "Foundations of Software Technology and Theoretical
                  Computer Science",
  Publisher =	 SV,
  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 =	 SV,
  Address =	 {New York City},
  Series =	 {Workshops in Computing},
  Month =	 sep,
  Note =	 {To appear}
}

@TechReport{Castagna94,
  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,
  Author =	 "Giuseppe Castagna",
  Title =	 "A Meta-Language for Typed Object-Oriented Languages",
  Journal = TCS,
  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,
  series =	 {Progress in Theoretical Computer Science},
  address =	 {Boston},
  annote =	 {Many references.}
}

@inproceedings{Chambers-Chen99,
  author =	 {Craig Chambers and Weimin Chen},
  title =	 {Efficient Multiple and Predicate Dispatching},
  pages =	 "238--255",
  booktitle =    {OOPSLA '99: Proceedings of the 14th ACM SIGPLAN conference 
                    on Object-oriented programming, systems, languages, and
                    applications},
  editor =   {A. Michael Berman},
  year =	 1999,
  volume =	 {34(10)},
  series =	 SIGPLAN,
  Address = NY,
  location =	 {Denver, CO},
  month =	 {November},
  publisher =	 ACM,
}

@InProceedings{Chambers-Leavens94,
  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.",
  URL = {http://doi.acm.org/10.1145/191080.191083}
}

@TechReport{Chambers-Leavens94c,
  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,
  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 Multimethods",
  journal =	 TOPLAS,
  year =	 1995,
  volume =	 17,
  number =	 6,
  pages =	 "805-843",
  annote =	 "56 references.",
  URL =          "http://doi.acm.org/10.1145/218570.218571"
}

@InProceedings{Chambers-Leavens96,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Kung Chen and Martin Odersky",
  Title =	 "A Type System for a Lambda Calculus with
                  Assignments",
  BookTitle =	 "Theoretical Aspects of Computer Software",
  Publisher =	 SV,
  Year =	 1994,
  Editor =	 "Masami Hagiya and John C. Mitchell",
  Series =	 LNCS,
  Volume =	 789,
  Pages =	 "347-364",
  Month =	 apr,
  Annote =	 "20 references."
}

@inproceedings{Chin-Markstrum-Millstein05,
 author = {Brian Chin and Shane Markstrum and Todd Millstein},
 title = {Semantic type qualifiers},
 booktitle = {{PLDI '05}: Proceedings of the 2005 {ACM} {SIGPLAN} conference on Programming language design and implementation},
 year = {2005},
 pages = {85-95},
 location = {Chicago, IL, USA},
 doi = {http://doi.acm.org/10.1145/1065010.1065022},
 publisher = ACM,
 address = NY
}

@InProceedings{Chin-etal06,
  author = 	 {Brian Chin and Shane Markstrum and Todd Millstein and Jens Palsberg},
  title = 	 {Inference of User-Defined Type Qualifiers and Qualifier Rules},
  booktitle =	 {European Symposium on Programming ({ESOP} 2006)},
  year =	 2006,
  month =	 {Mar}
}

@inproceedings{Chong-Myers04,
 author = {Stephen Chong and Andrew C. Myers},
 title = {Security Policies for Downgrading},
 booktitle = {Proceedings of the 11th ACM Conference on Computer and Communications Security},
 series = {CCS '04},
 year = {2004},
 isbn = {1-58113-961-6},
 location = {Washington DC, USA},
 pages = {198-209},
 numpages = {12},
 url = {http://doi.acm.org/10.1145/1030083.1030110},
 doi = {10.1145/1030083.1030110},
 acmid = {1030110},
 publisher = ACM,
 address = NY,
 keywords = {declassification, downgrading, information flow, noninterference, security policies},
}

@InProceedings{Clarke-Drossopoulou02,
  author =	 {Dave Clarke and Sophia Drossopoulou},
  title =	 {Ownership, encapsulation and the disjointness of
                  type and effect},
  booktitle =	 {Proceedings of the 17th ACM conference on
                  Object-oriented programming, systems, languages, and
                  applications},
  Series =	 SIGPLAN,
  Volume =	 "37(11)",
  Month =	 nov,
  Year =	 2002,
  publisher =    ACM,
  address =      NY,
  pages =	 {292--310},
  url =		 {http://doi.acm.org/10.1145/582419.582447},
  annote =	 {59 references.}
}

@InProceedings{Clarke-Richmond-Noble03,
  author =	 {Dave Clarke and Michael Richmond and James Noble},
  title =	 {Saving the World from Bad Beans: Deployment-Time
                  Confinement Checking},
  booktitle =	 {Proc. of the ACM Conference on Object Oriented
                  Programming, Systems, Languages, and Applications},
  year =	 {2003},
  pages =	 {374--387},
  publisher =	 {ACM Press},
  address =	 {Anaheim, CA},
}

@Article{Claybrook-Claybrook85,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Adriana B. Compagnoni and Benjamin C. Pierce",
  Title =	 "Multiple Inheritance via Intersection Types",
  Institution =	 "University of Edinburg",
  Number =	 "ECS-LFCS-93-275",
  Month =	 aug,
  Year =	 1993,
  Annote =	 "50 references."
}

@InCollection{Constable-Smith87,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Series =	 LNCS,
  Editor =	 "Dexter Kozen",
  Volume =	 131,
  Year =	 1982,
  Pages =	 "72-93",
  Annote =	 "16 references."
}

@Article{Constable-Zlatin84,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Robert L. Constable",
  Title =	 "Assigning Meaning 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 =	 SV,
  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,
  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,
  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,
  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,
  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 =	 SV,
  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.",
  URL = {http://www.cs.utexas.edu/~wcook/papers/OOPvsADT/CookOOPvsADT90.pdf}
}

@Article{Cook92,
  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,
  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,
  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 =	 SV,
  Year =	 1992,
  Editor =	 "Jean-Claude Raoult",
  Series =	 LNCS,
  Address =	 NY,
  Volume =	 581,
  Pages =	 "102-123",
  Annote =	 "22 references"
}

@InCollection{Coppo80,
  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 =	 SV,
  Editor =	 "P. Demb\'{i}nski",
  Series =	 LNCS,
  Volume =	 88,
  Year =	 1980,
  Pages =	 "194-204",
  Annote =	 "Extends ML-like typing. 17 references."
}

@Article{Coppo83,
  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,
  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,
  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,
  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",
  Publisher = SV,
  Annote =	 "Early version of the calculus of constructions. Many
                  mathematical examples. 57 references."
}

@Article{Coquand-Huet88,
  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,
  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,
  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.}
}

@Book{Cox-Novobilski91,
  Author =	 "Brad J. Cox and Andrew J. Novobilski",
  Title =	 "Object Oriented Programming: an Evolutionary
                  Approach",
  Publisher =	 Addison-Wesley,
  Address =	 "Reading, Mass.",
  Year =	 1991,
  Edition =	 "2nd",
  Annote =	 "Discusses Objective-C."
}

@Article{Cox84,
  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,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Roy Crole",
  Title =	 "Categories for Types",
  Publisher =	 "Cambridge University Press",
  Year =	 1993,
  Address =	 "Cambridge"
}

@InCollection{Curien-Ghelli90,
  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 =	 SV,
  Address =	 NY,
  Series =	 LNCS,
  Volume =	 431,
  Pages =	 "132-146"
}

@Book{Curien86,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Ferruccio Damiani and Paola Giannini",
  Title =	 "A Decidable Intersection Type System based on
                  Relevance",
  BookTitle =	 "Theoretical Aspects of Computer Software",
  Publisher =	 SV,
  Year =	 1994,
  Editor =	 "Masami Hagiya and John C. Mitchell",
  Series =	 LNCS,
  Volume =	 789,
  Pages =	 "707-725",
  Month =	 apr,
  Annote =	 "21 references."
}

@InCollection{Damm-Fehr78,
  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 =	 SV,
  Address =	 NY,
  Series =	 LNCS,
  Volume =	 62,
  Editor =	 {G. Ausiello and C. B\"{o}hm},
  Year =	 1978,
  Pages =	 "177-191",
  Annote =	 "25 references."
}

@InCollection{Damm94,
  Author =	 "Flemming M. Damm",
  Title =	 "Subtyping with Union Types, Intersection Types and
                  Recursive Types",
  BookTitle =	 "Theoretical Aspects of Computer Software",
  Publisher =	 SV,
  Year =	 1994,
  Editor =	 "Masami Hagiya and John C. Mitchell",
  Series =	 LNCS,
  Volume =	 789,
  Pages =	 "687-706",
  Month =	 apr,
  Annote =	 "16 references."
}

@Article{Danforth-Tomlinson88,
  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,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Year =	 1977,
  Editor =	 "J. H. Williams and D. A. Fischer",
  Annote =	 "Meaning of data type and encapsulation. 17
                  references."
}

@Article{Denvir79,
  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,
  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,
  Author =	 "O. Deux",
  Title =	 "The $O_2$ System",
  Journal =	 "CACM",
  Year =	 1991,
  Volume =	 34,
  Number =	 10,
  Month =	 oct,
  Pages =	 "34-48",
  Annote =	 "23 references."
}

@InCollection{Dezani-Ciancaglini-Giovannetti-deLiguoro98,
  author =	 {Mariangiola Dezani-Ciancaglini and Elio Giovannetti
                  and Ugo de'Liguo},
  title =	 {Intersection types, $\lambda$-models, and B\"{o}hm
                  trees},
  booktitle =	 {Theories of Types and Proofs},
  pages =	 {45-97},
  publisher =	 {Mathematical Society of Japan},
  year =	 1998,
  editor =	 {Masako Takahashi and Mitsuhiro Okada and Mariangiola
                  Dezani-Ciancaglini},
  volume =	 2,
  series =	 {MSJ Memoirs},
  chapter =	 2,
  address =	 {Tokyo, Japan}
}

@InProceedings{DiGianantonio-Honsell-Liquori98,
  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,
  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,
  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,
  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 =	 SV,
  Year =	 1992,
  Editor =	 "Ole Lehrmann Madsen",
  Series =	 LNCS,
  Address =	 NY,
  Volume =	 615,
  Pages =	 "309-328",
  Annote =	 "27 references"
}

@Article{Dodani-Tsai96,
  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,
  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 =	 SV,
  Year =	 1992,
  Editor =	 "Bernd Krieg-Bruckner",
  Series =	 LNCS,
  Address =	 NY,
  Volume =	 582,
  Pages =	 "151-166",
  Annote =	 "36 references"
}

@Article{Donahue-Demers85,
  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,
  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{Donahue85a,
  Author =	 "James Donahue",
  Title =	 "Integration Mechanisms in Cedar",
  Journal =	 SIGPLAN,
  Volume =	 20,
  Number =	 20,
  Month =	 jul,
  Year =	 1985,
  Note =	 "Proceedings of the ACM SIGPLAN 85 Symposium on
                  Language Issues in Programming Environments",
  Pages =	 "245-251",
  Annote =	 "Discussion of programming in the large issues in
                  Cedar and how the Cedar mechanisms, especially
                  interfaces, garbage collection, lightweight
                  processes, and procedure objects helped in
                  presenting a unified system. 8 references."
}

@TechReport{Dorn-Leavens07,
  author = 	 {Brian Dorn and Gary T. Leavens},
  title = 	 {A Framework for Implementing Type Systems},
  institution =  {Department of Computer Science, Iowa State
                  University},
  year = 	 2007,
  number =	 {07-12},
  address =	 {226 Atanasoff Hall, Ames, Iowa 50011},
  month =	 jul,
  URL =          {ftp://ftp.cs.iastate.edu/pub/techreports/TR07-12/TR.pdf},
  annote =	 {Typedscm. 13 references.}
}

@TechReport{Dorn05,
  author = 	 {Brian J. Dorn},
  title = 	 {Design and implementation of a reusable type
	          inference engine and its application to {Scheme}},
  institution =  {Department of Computer Science, Iowa State
                  University},
  year = 	 2005,
  number =	 {05-16},
  address =	 {226 Atanasoff Hall, Ames, Iowa 50011},
  month =	 jul,
  URL =          {ftp://ftp.cs.iastate.edu/pub/techreports/TR05-16/TR.pdf},
  annote =	 {The author's MS thesis.  24 references.}
}

@Article{Dornic-etal92,
  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,
  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,
  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 =	 SV,
  Series =	 LNCS,
  Number =	 {664},
  Pages =	 {139-145},
  Address =	 {Utrecht, The Netherlands},
  Month =	 mar,
  Note =	 {TLCA'93},
  Annote =	 {15 references}
}

@Article{Drossopoulou-Eisenbach-Khurshid99,
  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.}
}

@InCollection{Drossopoulou-Eisenbach97,
  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 =	 SV,
  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.}
}

@InProceedings{Drossopoulou-Wragg-Eisenbach98,
  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,
  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,
  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,
  author =	 {Dominic Duggan and Constantinos Sourelis},
  title =	 {Mixin Modules},
  BookTitle = {ICFP '96: Proceedings of the first ACM SIGPLAN international
                conference on Functional programming},
 editor = {Richard L. Wexelblat},
  Series =	 SIGPLAN,
  Volume =	 "31(6)",
  Month =	 jun,
  Year =	 1996,
  publisher = ACM,
  address = NY,
  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,
  volume =	 21,
  number =	 1,
  month =	 jan,
  pages =	 {11-45},
  annote =	 {Dynamic type dispatch with refinement kinds. 53
                  references.}
}

@Article{Dungan79,
  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,
  Author =	 "Dona Marie Dungan",
  Title =	 "Variations on Data Type Equivalence",
  School =	 "University of Iowa",
  Year =	 1980
}

@InProceedings{Dzeng-Haynes94,
  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,
  Title =	 "ECOOP '87, European Conference on Object-Oriented
                  Programming, Paris, France",
  Editor =	 "Jean Bezivin and others",
  Publisher =	 SV,
  Address =	 NY,
  Month =	 jun,
  Year =	 1987,
  Note =	 "Lecture Notes in Computer Science, Volume 276"
}

@Proceedings{ECOOP88,
  Title =	 "ECOOP '88, European Conference on Object-Oriented
                  Programming, Oslo, Norway",
  Editor =	 "S. Gjessing and K. Nygaard",
  Publisher =	 SV,
  Address =	 NY,
  Month =	 aug,
  Year =	 1988,
  Note =	 "Lecture Notes in Computer Science, Volume 322"
}

@Proceedings{ECOOP89,
  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,
  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,
  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,
  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.sciencedirect.com/science/journal/15710661"
}

@inproceedings{Eifrig-etal95,
  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{Ernst01,
  author =	 {Erik Ernst},
  title =	 {Family Polymorphism},
  booktitle =	 {ECOOP 2001 --- Object-Oriented Programming},
  publisher =	 SV,
  year =	 2001,
  volume =	 2072,
  series =	 LNCS,
  address =	 NY,
  pages =	 {303-326},
  url =          {http://dx.doi.org/10.1007/3-540-45337-7_17}
}

@InCollection{Ernst99,
  author =	 {Erik Ernst},
  title =	 {Propogating Class and Method Composition},
  booktitle =	 {ECOOP '99 --- Object-Oriented Programming 13th
                  European Conference, Lisbon Portugal},
  publisher =	 SV,
  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,
  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 =	 SV,
  Address =	 NY,
  Series =	 LNCS,
  Volume =	 432,
  Annote =	 "26 references."
}

@InProceedings{Fabry76,
  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,
}

@inproceedings{Fahndrich-Leino03,
  author =	 "Manuel F{\"a}hndrich and K. Rustan M. Leino",
  title =	 "Declaring and Checking Non-null Types in an Object-Oriented Langauge",
  booktitle =    {OOPSLA '03: Proceedings of the 18th ACM SIGPLAN conference 
                    on Object-oriented programming, systems, languages, and
                    applications},
  location =	 {Anaheim, CA},
  address = NY,
  publisher = ACM,
  month =	 nov,
  series = SIGPLAN,
  volume = "38(11)",
  Pages = {302--312},
  year =	 2003,
}

@TechReport{Fairbairn82,
  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,
  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,
  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,
  Author =	 "Joseph Henry Fasel, III",
  Title =	 "Programming Languages as Abstract Data Types:
                  Definition and Implementation",
  School =	 "Purdue University",
  Year =	 1981
}

@TechReport{Fickas-etal88,
  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,
  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.}
}

@InProceedings{Fischer-Reppy00,
  author =       {Kathleen Fischer and John Reppy},
  title =        {Extending {Moby} with Inheritance-Based Subtyping},
  editor =       {Elisa Bertino},
  booktitle =    {ECOOP 2000 -- Object-Oriented Programming 14th European Conference},
  series =       LNCS,
  volume =       1850,
  year =         2000,
  pages =        {27-43},
  annote =       {16 references.}
}

@Article{Fischer-Reppy99,
  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-Felleisen98,
  author =	 {Matthew Flatt and Matthias Felleisen},
  title =	 {Units: Cool Modules for HOT Languages},
  booktitle =	 {PLDI '98: Proceedings of the ACM SIGPLAN 1998 conference
                    on Programming language design and implementation},
  editor = {A. Michael Berman},
  series =	 SIGPLAN,
  year =	 1998,
  volume =	 {33(5)},
  publisher = ACM,
  address = NY,
  month =	 may,
  pages =	 {236-248},
  annote =	 {31 references.}
}

@InProceedings{Flatt-Krishnamurthi-Felleisen98,
  author =	 {Matthew Flatt and Shriram Krishnamurthi and Matthias
                  Felleisen},
  title =	 {Classes and Mixins},
  booktitle =	 {POPL '98: Proceedings of the 25th ACM SIGPLAN-SIGACT 
                    symposium on Principles of programming languages},
  location = "San Diego, California",
  year =	 1998,
  publisher = ACM,
  address =	 NY,
  month =	 jan,
  pages =	 {171--183},
  annote =	 {29 references.}
}

@InCollection{Fokkinga81,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  Author =	 "G. Ghelli",
  Title =	 "A Class Abstraction for a Hierarchical Type System",
  BookTitle =	 "ICDT '90, Third International Conference on Database
                  Theory, Paris, France",
  Publisher =	 SV,
  Year =	 1990,
  Editor =	 "S. Abiteboul and P. C. Kanellakis",
  Series =	 LNCS,
  Volume =	 470,
  Pages =	 "56-71",
  Address =	 NY,
  Month =	 dec
}

@InCollection{Ghelli91a,
  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 =	 SV,
  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,
  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,
  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 =	 SV,
  Series =	 LNCS,
  Number =	 {664},
  Pages =	 {146-162},
  Address =	 {Utrecht, The Netherlands},
  Month =	 mar,
  Note =	 {TLCA'93},
  Annote =	 {13 refences}
}

@InProceedings{Ghelli96,
  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,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Annote =	 "17 references."
}

@TechReport{Gladney82a,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  author =	 {Aaron Greenhouse and John Boyland},
  title =	 {An Object-Oriented Effects System},
  booktitle =	 {ECOOP '99 --- Object-Oriented Programming 13th
                  European Conference, Lisbon Portugal},
  publisher =	 SV,
  year =	 1999,
  editor =	 {Rachid Guerraoui},
  volume =	 1628,
  series =	 LNCS,
  address =	 NY,
  month =	 jun,
  pages =	 {205-229},
  annote =	 {14 references.},
  URL = {http://www.springerlink.com/link.asp?id=tu309p114v1kbd8v}
}

@Article{Grogono-Bennett89,
  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{Groote93,
  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",
  Publisher =	 SV,
  Address =	 NY,
  Year =	 1993,
  Booktitle =	 "STACS 93, 10th Annual Symposium on the Theoretical
                  Aspects of Computer Science",
  Page =	 "712-23",
  Annote =	 "24 references"
}

@Article{Grosch83,
  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,
  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,
  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,
  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,
  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",
  journal =	 "TOPLAS",
  year =	 1996,
  volume =	 18,
  number =	 2,
  pages =	 "109-138",
  month =	 mar,
  annote =	 "39 references."
}

@InProceedings{Hanakata82,
  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,
  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 =	 SV,
  Year =	 1991,
  Editor =	 "S. Abramsky and T. S. E. Maibaum",
  Series =	 LNCS,
  Volume =	 494,
  Pages =	 "83-98",
  Address =	 NY,
  Month =	 apr
}

@Article{Harland-Gunn82,
  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,
  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,
  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,
  Author =	 "D. M. Harland",
  Title =	 "Polymorphic Programming Languages: Design and
                  Implementation",
  Publisher =	 Wiley,
  Address =	 NY,
  Year =	 1984
}

@Article{Harper-Duba-Macqueen93,
  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,
  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."
}

@Article{Harper-Housell-Plotkin93,
  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,
  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,
  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,
  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 =	 SV
}

@InProceedings{Harper-Mitchell-Moggi89,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  author =	 "Robert Harper",
  title =	 "A Simplified Account of Polymorphic References",
  journal =	 "Information Processing Letters",
  year =	 1994,
  volume =	 51,
  pages =	 "201-206"
}

@Article{Harper96,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Series =	 LNCS,
  Volume =	 432
}

@TechReport{Henglein89,
  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,
  Author =	 "Fritz Henglein",
  Title =	 "Dynamic Typing",
  BookTitle =	 "ESOP '92, 4th European Symposium on Programming,
                  Rennes, France, February 1992, Proceedings",
  Publisher =	 SV,
  Year =	 1992,
  Editor =	 "Bernd Krieg-Bruckner",
  Series =	 LNCS,
  Address =	 NY,
  Volume =	 582,
  Pages =	 "233-253",
  Annote =	 "24 references"
}

@Article{Henglein93,
  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,
  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,
  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,
  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,
  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,
  Author =	 "J. R. Hindley",
  Title =	 "The Simple Semantics for Coppo-Dezani-Sall{\'e}
                  Types",
  Series =	 LNCS,
  Publisher =	 SV,
  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,
  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,
  volume =	 42,
  series =	 {Cambridge Tracts in Theoretical Computer Science},
  address =	 {Cambridge, UK},
  annote =	 {Many references.}
}

@InProceedings{Hirst-Dinesh91,
  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,
  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."
}

@InProceedings{Hoffman-Pierce95,
  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."
}

@TechReport{Hofmann-Pierce92,
  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,
  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."
}

@InCollection{Hofmann-Pierce94a,
  author =	 "Martin Hofmann and Benjamin Pierce",
  title =	 "A Unifying Type-Theoretic Framework for Objects",
  booktitle =	 "STACS 94 11th Annual Symposium on Theoretical
                  Aspects of Computer Science, Caen, France,
                  Proceedings",
  publisher =	 SV,
  year =	 1994,
  editor =	 "P. Enjalbert and E. W. Mayr and K. W. Wagner",
  volume =	 775,
  series =	 LNCS,
  pages =	 "251-262",
  address =	 NY,
  annote =	 "27 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,
  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 =	 SV,
  Address =	 NY,
  Month =	 jun,
  Year =	 1987,
  Pages =	 "223-233",
  Note =	 "Lecture Notes in Computer Science, Volume 276",
  Annote =	 "10 references."
}

@Article{House83,
  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,
  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,
  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,
  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,
  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,
  Author =	 "G. Huet",
  Title =	 "The Gallina Specification Language: A Case Study",
  Series =	 "Lecture Notes in Computer Science",
  Number =	 652,
  Publisher =	 SV,
  Address =	 "Berlin, Germany",
  Editor =	 "R. Shyamasundar",
  Pages =	 "229-240",
  Year = 1993,
  Booktitle =	 "Foundations of Software Technology and Theortical
                  Computer Science. 12th Conference",
  Annote =	 "16 references"
}

@InCollection{Hyland-Pitts87,
  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,
  Publisher = "American Mathematical Society",
  Address =	 "Providence, R.I.",
  Pages =	 "137-199",
  Annote =	 "46 references."
}

@TechReport{Hyland-Robinson-Rosolini88,
  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,
  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."
}

@Article{Igarashi-Pierce-Wadler01,
author = "Atsushi Igarashi and Benjamin Pierce and Philip Wadler",
title =  "{Featherweight Java}: {A} Minimal Core Calculus for {Java} and {GJ}",
month = may,
journal = TOPLAS,
volume = 23,
number = 3,
pages = {396-459},
year = 2001
}

@InCollection{Igarashi-Pierce99,
  author =	 {Atsushi Igarashi and Benjamin C. Pierce},
  title =	 {Foundations for Virtual Types},
  booktitle =	 {ECOOP '99 --- Object-Oriented Programming 13th
                  European Conference, Lisbon Portugal},
  publisher =	 SV,
  year =	 1999,
  editor =	 {Rachid Guerraoui},
  volume =	 1628,
  series =	 LNCS,
  address =	 NY,
  month =	 jun,
  pages =	 {161-185},
  annote =	 {35 references.}
}

@InProceedings{Igarashi-Viroli02,
  author =	 {Atsushi Igarashi and Mirko Viroli},
  title =	 {On Variance-Based Subtyping for Parameteric Types},
  booktitle =	 {ECOOP 2002 --- Object-Oriented Programming, 16th
                  European Conference, M{\'a}laga, Spain,
                  Proceedings},
  pages =	 {441-469},
  year =	 2002,
  editor =	 {Boris Magnusson},
  volume =	 2374,
  series =	 LNCS,
  address =	 {Berlin},
  month =	 jun,
  publisher =	 SV,
  annote =	 {37 references.}
}

@InProceedings{Ingalls78,
  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."
}

@InProceedings{Ingalls86,
  Author =	 "Daniel H. H. Ingalls",
  Title =	 "A Simple Technique for Handling Multiple
                  Polymorphism",
  Booktitle =	 {OOPLSA '86: Conference proceedings on Object-oriented 
                   programming systems, languages and applications},
  Editor = {Norman Meyrowitz},
  Location = "Portland, Oregon",
  Address = NY,
  Publisher = ACM,
  Series =	 SIGPLAN,
  Volume =	 {21(11)},
  Month =	 nov,
  Year =	 1986,
  Pages =	 "347--349",
  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,
  Author =	 "Hiroshi Ishikawa",
  Title =	 "Object Oriented Database System: Design and
                  implementation for advanced applications",
  Publisher =	 SV,
  Year =	 1993,
  Address =	 NY,
  Annote =	 " 90 references"
}

@Article{Jacobs90,
  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,
  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,
  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,
  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 =          "http://dx.doi.org/10.1016/S0096-0551(97)00002-7",
  Annote =	 "13 references."
}

@Article{Jenks-Trager81,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Neil D. Jones",
  Title =	 "Partial Evaluation, Self-application, and types",
  BookTitle =	 "17th International Colloquium on Automata,
                  Languages, and Programming (ICALP), Warwick,
                  England",
  Publisher =	 SV,
  Year =	 1990,
  Editor =	 "M. S. Paterson",
  Series =	 LNCS,
  Pages =	 "639-659",
  Address =	 NY,
  Month =	 jul
}

@InCollection{JonesMark92,
  Author =	 "Mark P. Jones",
  Title =	 "A Theory of Qualified Types",
  BookTitle =	 "ESOP '92, 4th European Symposium on Programming,
                  Rennes, France, February 1992, Proceedings",
  Publisher =	 SV,
  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,
  Author =	 "Mark P. Jones",
  Title =	 "ML Typing, Explicit Polymorphism and Qualified
                  Types",
  BookTitle =	 "Theoretical Aspects of Computer Software",
  Publisher =	 SV,
  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",
  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,
  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,
  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,
  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,
  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,
  Author =	 "Abiteboul S. Kanellakis and E. Waller ",
  Title =	 "Method Schemas",
  Year =	 1990,
  Organization = "PODS",
  BookTitle =	 "Proceedings of ACM"
}

@Article{Kaplan-Ullman80,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  year =	 1999,
  editor =	 {Rachid Guerraoui},
  volume =	 1628,
  series =	 LNCS,
  address =	 NY,
  month =	 jun,
  pages =	 {351-366},
  annote =	 {28 references.}
}

@Article{Knight89,
  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,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Volume =	 152,
  Pages =	 "146-152",
  Annote =	 "Implementing data types for objects shared by
                  parallel processes. 7 references."
}

@InProceedings{Kristensen-etal83,
  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,
  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 =	 SV,
  Address =	 NY,
  Month =	 jun,
  Year =	 1987,
  Pages =	 "98-107",
  Note =	 "Lecture Notes in Computer Science, Volume 276",
  Annote =	 "12 references."
}

@InProceedings{Kutzner-Schmidt-Schauss99,
  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,
  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,
  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,
  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,
  Publisher = "American Mathematical Society",
  Address =	 "Providence, R.I.",
  Pages =	 "201-216",
  Annote =	 "10 references."
}

@Article{Lamb-etal91,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Year =	 1992,
  Editor =	 "Bernd Krieg-Bruckner",
  Series =	 LNCS,
  Address =	 NY,
  Volume =	 582,
  Pages =	 "321-340",
  Annote =	 "26 references"
}

@InProceedings{Launchbury-Sabry97,
  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,
  Author =	 "Carlos Helmut Lauterbach",
  Title =	 "Hierarchical Organization of Data Types for Program
                  Modularity",
  School =	 "University of California, Los Angeles",
  Year =	 1977
}

@TechReport{Leavens-Clifton-Dorn06,
  author = 	 {Gary T. Leavens and Curtis Clifton and Brian Dorn},
  title = 	 {A Type Notation for {Scheme}},
  Year =         2006,
  Month =	 jan,
  Institution =	 "Department of Computer Science, Iowa State
                  University",
  Address =	 "Ames, Iowa, 50011",
  Number =	 "05-18a",
  Note =	 "Available by anonymous ftp from ftp.cs.iastate.edu.",
  URL = 	 {ftp://ftp.cs.iastate.edu/pub/techreports/TR05-18/TR.pdf},
  Annote =	 "7 references."
}

@TechReport{Leavens-Clifton05,
  author = 	 {Gary T. Leavens and Curtis Clifton},
  title = 	 {A Type Notation for {Scheme}},
  Institution =	 "Department of Computer Science, Iowa State
                  University",
  Address =	 "Ames, Iowa, 50011",
  Number =	 "05-03",
  Year =	 2005,
  Month =	 feb,
  Note =	 "Available by anonymous ftp from ftp.cs.iastate.edu.",
  URL = 	 {ftp://ftp.cs.iastate.edu/pub/techreports/TR05-03/TR.pdf},
  Annote =	 "8 references."
}

@TechReport{Leavens-Dhara92,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Pages =	 "223-238",
  Year =	 1988,
  Annote =	 "18 references."
}

@Article{Lee-Yi98,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Year =	 1991,
  Editor =	 "C. Choffrut and M. Jantzen",
  Series =	 LNCS,
  Volume =	 480,
  Pages =	 "1-15",
  Address =	 NY,
  Month =	 feb
}

@Article{Levin-Pierce03,
  AUTHOR = {Michael Y. Levin and Benjamin C. Pierce},
  TITLE = {{TinkerType}: {A} Language for Playing with Formal Systems},
  JOURNAL = {Journal of Functional Programming},
  VOLUME = 13,
  NUMBER = 2,
  MONTH = mar,
  YEAR = 2003,
  URL = {http://www.cis.upenn.edu/~bcpierce/papers/tt-jfp.pdf}
}

@Article{Lieberman86,
  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,
  type =	 {Informatik-Bericht},
  number =	 {93-10},
  month =	 oct
}

@Article{Lipkie-etal82,
  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",
  series =	 "Lecture Notes in Computer Science",
  booktitle =	 "1996 Asian Computing Conference",
  year =	 1996
}

@InCollection{Liquori97,
  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 =	 SV,
  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.}
}

@Book{Liskov-etal81,
  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 =	 SV,
  Address =	 NY,
  Year =	 1981,
  Annote =	 "Strongly typed, exception handling, abstraction
                  mechanisms."
}

@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"
}

@Article{Liskov88,
  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,
  Author =	 "Barbara Liskov",
  Title =	 "Constraining Subtypes",
  Institution =	 MITLCS,
  Year =	 1990,
  Type =	 "Mercury Design Note",
  Number =	 49,
  Month =	 dec
}

@InProceedings{Litvinov98,
  Author =	 "Vassily Litvinov",
  Title =	 "Constraint-Based Polymorphism in {Cecil}: Towards a
                  Practical and Static Type System",
  booktitle =    {OOPSLA '98: Proceedings of the 13th ACM SIGPLAN conference 
                    on Object-oriented programming, systems, languages, and
                    applications},
  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 mistakenly contain a preliminary version of
                  the paper. The final version is at \url{ftp://ftp.cs.washington.edu/pub/chambers/sbp-oopsla.ps.gz}.",
  Publisher = ACM,
  Address = NY,
  Annote =	 "38 references."
}

@Article{Liu-Ku92,
  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,
  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,
  Author =	 "G. Longo",
  Title =	 "Types as Parameters",
  Journal =	 LNCS,
  Number =	 668,
  Publisher =	 SV,
  Address =	 NY,
  Editor =	 "M. C. Gaudel and J. P. Jouannaud",
  Year =	 1993,
  Booktitle =	 "TAPSOFT '93: Theory and Practice of Software
                  Development. 4th International Joint Conference
                  CAAP/FASE",
  Pages =	 "658-670",
  Annote =	 "40 references"
}

@InProceedings{Lucassen-Gifford88,
  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,
  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,
  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,
  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 =	 SV,
  Year =	 1991,
  Editor =	 "S. Abramsky and T. S. E. Maibaum",
  Series =	 LNCS,
  Volume =	 493,
  Pages =	 "143-168",
  Address =	 NY,
  Month =	 apr
}

@Article{Ma-Kessler90,
  Author =	 "K.-L. Ma and R. R. Kessler",
  Title =	 "TICL---A Type Inference System for Common Lisp",
  Journal =	 SPandE,
  Volume =	 20,
  Number =	 6,
  Month =	 jun,
  Year =	 1990,
  Pages =	 "593-624"
}

@InProceedings{Ma92,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Narciso Mart\'\i-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."
}

@Article{Marti-Oliet-Meseguer96a,
  title =	 {Inclusions and Subtypes {I}: First Order Case},
  author =	 {Narciso Mart\'\i-Oliet and Jos\'e Meseguer},
  journal =	 {Journal of Logic and Computation},
  volume =	 6,
  pages =	 {409-438},
  year =	 1996
}

@Article{Marti-Oliet-Meseguer96b,
  title =	 {Inclusions and Subtypes {II}: Higher-Order Case},
  author =	 {Narciso Mart\'\i-Oliet and Jos\'e Meseguer},
  journal =	 {Journal of Logic and Computation},
  volume =	 6,
  pages =	 {541-572},
  year =	 1996
}

@TechReport{Martin-Lof80,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Ian Maung",
  Title =	 "A Study of Behavioural Subtyping",
  Note =	 "Obtained from the author",
  Year =	 1993,
  Month =	 oct,
  Annote =	 "32 references."
}

@Article{McAllester-Zabih86,
  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,
  Author =	 "N. McCracken",
  Title =	 "An Investigation of a Programming Language with a
                  Polymorphic Type Structure",
  School =	 "Syracuse University",
  Year =	 1979
}

@InCollection{McCracken84,
  Author =	 "Nancy McCracken",
  Title =	 "The Typechecking of Programs with Implicit Type
                  Structure",
  BookTitle =	 "Semantics of Data Types: International Symposium,
                  Sophia-Antipolis, France",
  Publisher =	 SV,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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."
}

@Article{Millstein-Chambers02,
  author =	 "Todd Millstein and Craig Chambers",
  title =	 "Modular Statically Typed Multimethods",
  journal =	 "Information and Computation",
  year =	 2002,
  pages =	 "76-118",
  month =	 may,
  volume =	 175,
  number =	 1,
}

@TechReport{Millstein-Chambers98,
  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,
  author =	 {Todd Millstein and Craig Chambers},
  title =	 {Modular Statically Typed Multimethods},
  booktitle =	 {ECOOP '99 --- Object-Oriented Programming 13th
                  European Conference, Lisbon Portugal},
  publisher =	 SV,
  year =	 1999,
  editor =	 {Rachid Guerraoui},
  volume =	 1628,
  series =	 LNCS,
  address =	 NY,
  month =	 jun,
  pages =	 {279-303},
  annote =	 {41 references.}
}

@PhdThesis{Millstein03,
  author =	 {Todd Millstein},
  title =	 {Reconciling Software Extensibility with Modular
                  Program Reasoning},
  school =	 {Department of Computer Science \& Engineering,
                  University of Washington},
  year =	 {2003},
}

@Article{Milner83,
  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,
  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,
  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,
  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,
  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"
}


@InProceedings{Mitchell-Meldal-Madhav91,
  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,
  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,
  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,
  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,
  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,
  Publisher = "American Mathematical Society",
  Address =	 "Providence, R.I.",
  Pages =	 "301-316",
  Annote =	 "18 references."
}

@InProceedings{Mitchell84a,
  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,
  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,
  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,
  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,
  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,
  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,
  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."
}

@Article{Moffat81,
  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{Monsuez93,
  Author =	 "B. Monsuez",
  Title =	 "Polymorphic Typing by Abstract Interpretation",
  Series =	 "Lecture Notes in Computer Science",
  Number =	 652,
  Publisher =	 SV,
  Address =	 "Berlin, Germany",
  Editor =	 "R. Shyamasundar",
  Pages =	 "217-228",
  Year = 1993,
  Booktitle =	 "Foundations of Software Technology and Theortical
                  Computer Science. 12th Conference",
  Annote =	 "17 references"
}

@InCollection{Monsuez93b,
  Author =	 "B. Monsuez",
  Title =	 "Polymorphic Typing for Call-By-Name Semantics",
  BookTitle =	 "Formal Methods in Programming and Their
                  Applications",
  Publisher =	 SV,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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"
}

@inproceedings{Mugridge-etal91,
  author =	 "W. B. Mugridge and J. G. Hosking and J. Hamer",
  title =	 "Multi-Methods in a Statically-Typed Programming
                  Language",
  booktitle =	 "ECOOP '91 European Conference on Object-Oriented 
                  Programming, Geneva, Switzerland, Proceedings",
  publisher =	 SV,
  address =	 NY,
  pages = {307--324},
  Series =	 LNCS,
  Volume =	 512,
  Editor =	 "Pierre America",
  year =	 1991
}

@PhDThesis{Murtagh83,
  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},
  year =	 1997,
  pages =	 {132-145},
  organization = ACM,
  address =	 NY,
  month =	 jan,
  annote =	 {21 references.}
}

@Article{Mylopoulos-Bernstein-Wong80,
  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."
}

@InCollection{Neilson-Neilson93,
  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",
  Publisher =	 SV,
  Address =	 NY,
  Year =	 1993,
  Booktitle =	 "Semantics: Foundations and Applications REX
                  Workshop",
  Page =	 "425-456",
  Annote =	 "13 references"
}

@Article{Netzer-Miller92,
  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,
  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
}

@Article{Nguyen-Hailpern86,
  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{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 =	 SV,
  year =	 "1997",
  editor =	 "M. Dam",
  number =	 "1192",
  series =	 "Lecture Notes in Computer Science",
}

@Article{Nielson96,
  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{Nierstrasz89,
  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,
  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,
  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,
  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,
  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,
  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",
  journal =	 "Journal of Functional Programming",
  year =	 1994,
  volume =	 5,
  number =	 2,
  pages =	 "201-224",
  month =	 apr,
  annote =	 "17 references."
}

@TechReport{Nipkow-Snelting90,
  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,
  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,
  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,
  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,
  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,
  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."
}

@article{OHearn-Pym99a,
	Author = {Peter O'Hearn and David Pym},
	Journal = {Bulletin of Symbolic Logic},
	Pages = {215-244},
	Title = {The Logic of Bunched Implication},
	Volume = 5,
	Number = 2,
	Year = {1999}
}

@inproceedings{OHearn-Reynolds-Yang01a,
	Author = {Peter O'Hearn and John Reynolds and Hongseok Yang},
	Booktitle = {Proceedings of CSL'01},
	Pages = {1-19},
	Publisher = SV,
        Address = {Berlin},
	Series = LNCS,
	Title = {Local Reasoning about Programs that Alter Data Structures},
	Volume = {2142},
	Year = {2001},
	Annote = {Connects separation logic and the logic of bunched implications}
}

@InCollection{OKeefe-Wand92,
  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 =	 SV,
  Year =	 1992,
  Editor =	 "Bernd Krieg-Bruckner",
  Series =	 LNCS,
  Address =	 NY,
  Volume =	 582,
  Pages =	 "408-417",
  Annote =	 "18 references"
}

@Article{OToole-Gifford89,
  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",
  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,
  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 =	 {POPL '97: Proceedings of the 24th ACM SIGPLAN-SIGACT 
                 symposium on Principles of programming languages},
  year =	 1997,
  pages =	 {146-159},
  publisher =	 ACM,
  address =	 NY,
  month =	 jan,
  annote =	 {26 references.}
}

@inproceedings{Odersky-etal03,
	Author = {Martin Odersky and Vincent Cremet and Christine R{\"o}ckl and Matthias Zenger},
	Title = {A Nominal Theory of Objects with Dependent Types},

  booktitle =	 {ECOOP 2003---Object-Oriented Programming, 17th
                  European Conference, Darmstadt, Germany,
                  Proceedings},
  editor = {Luca Cardelli},
  series =	 LNCS,
  volume = 2743,
  publisher =	 SV,
  address =	 NY,
  month =	 {July},
  year =	 2003,
	Pages = {201--224},
}

@InProceedings{Ohori-Buneman-Breazu-Tannen89,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Pages =	 "239-251",
  Year =	 1988,
  Annote =	 "19 references."
}

@TechReport{Oles87b,
  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,
  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,
  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,
  Author =	 "F. Orejas",
  Title =	 "On the Representation of Data Types",
  BookTitle =	 "Formalization of Programming Concepts, International
                  Colloquium, Peniscola, Spain, April 1981",
  Publisher =	 SV,
  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,
  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,
  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 =	 SV,
  Year =	 1992,
  Editor =	 "Ole Lehrmann Madsen",
  Series =	 LNCS,
  Address =	 NY,
  Volume =	 615,
  Pages =	 "329-349",
  Annote =	 "27 references"
}

@TechReport{Palsberg-Black93,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  Author =	 "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,
  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,
  Author =	 "Jens Palsberg and Michael I. Schwartzbach",
  Title =	 "Object-Oriented Type Systems",
  Publisher =	 "John Wiley and sons",
  Year =	 1994,
  Annote =	 "72 reference."
}

@Article{Palsberg96,
  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,
  Author =	 "Paolo Paolini",
  Title =	 "Abstract Data Types and Data Bases",
  School =	 "University of California, Los Angeles",
  Year =	 1981
}

@PhDThesis{Parsaye-Ghomi81,
  Author =	 "Kamran Parsaye-Ghomi",
  Title =	 "Higher Order Abstract Data Types",
  School =	 "University of California, Los Angeles",
  Year =	 1981
}

@Article{Paulson86,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  publisher =    ACM,
  address =	 NY,
  month =	 jan,
  pages =	 {252-265},
  annote =	 {45 references.}
}

@Book{Pierce02,
  author =	 "Benjamin C. Pierce",
  title =	 "Types and Programming Languages",
  publisher =	 MITP,
  address =	 "Cambridge, MA",
  year =	 2002,
  annote =	 "Many references."
}

@Book{Pierce05,
  editor =	 "Benjamin C. Pierce",
  title =	 "Advanced Topics in Types and Programming Languages",
  publisher =	 MITP,
  address =	 "Cambridge, MA",
  year =	 2005,
  annote =	 "Many references."
}

@TechReport{Pierce91a,
  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,
  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,
  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,
  Author =	 "Benjamin C. Pierce",
  Title =	 "Mutable Objects",
  Year =	 1993,
  Month =	 may,
  Note =	 "Working draft. Obtained by anonymous ftp from
                  ftp.lcs.ac.uk.",
  Annote =       "11 references."
}

@InProceedings{Pierce93b,
  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 =	 SV,
  Series =	 LNCS,
  Number =	 {664},
  Pages =	 {346-360},
  Address =	 {Utrecht, The Netherlands},
  Month =	 mar,
  Note =	 {TLCA'93},
  Annote =	 { 33 refernces}
}

@Article{Pigozzi90,
  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,
  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,
  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 =	 SV,
  Series =	 LNCS,
  Number =	 {664},
  Pages =	 {361-375},
  Address =	 {Utrecht, The Netherlands},
  Month =	 mar,
  Note =	 {TLCA'93},
  Annote =	 {20 references}
}

@PhDThesis{Polajnar78,
  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,
  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{Potanin-etal06,
  author = {Alex Potanin and James Noble and Dave Clarke and Robert Biddle},
  title = {Generic ownership for generic {Java}},
  booktitle =    {OOPSLA 2006: Proceedings of the 21st International Conference
                    on Object-oriented Programming Systems, Languages, and
                    Applications},
  year = 2006,
  publisher = ACM,
  address = NY,
  month = oct,
  location =	 {Portland, OR},
  pages =        "311-324",
  doi = {http://doi.acm.org/10.1145/1167473.1167500},
}

@Article{Potanin-etal06b,
  author =       {Alex Potanin and James Noble and Dave Clarke and Robert Biddle},
  title =        {Featherweight Generic Confinement},
  journal =      {Journal of Functional Programming},
  year =         2006,
  volume = 16,
  number = 6,
  pages = "793-811",
  month = sep
}

@InProceedings{Pottier96,
  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,
  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,
  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,
  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,
  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,
  Author =	 "Mark B. Reinhold",
  Title =	 "Typechecking is Undecidable when 'Type' is a Type",
  Institution =	 MITLCS,
  Number =	 "TR-458",
  Month =	 dec,
  Year =	 1989
}

@Article{Reiss86,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Year =	 1994,
  Editor =	 "Masami Hagiya and John C. Mitchell",
  Series =	 LNCS,
  Volume =	 789,
  Pages =	 "321-346",
  Month =	 apr
}

@Article{Reppy-Riecke96,
  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.}
}

@inproceedings{Reynolds00a,
	Author = {John Reynolds},
	Booktitle = {Millennial Perspectives in Computer Science, Proceedings of the 1999 Oxford-Microsoft Symposium in Honor of Sir Tony Hoare},
	Publisher = {Palgrave},
        address = {Hampshire, UK},
	Title = {Intuitionistic Reasoning about Shared Mutable Data Structure},
	Year = {2000},
	Annote = {Introduces separation logic}
}

@inproceedings{Reynolds02a,
	Author = {John C. Reynolds},
	Title = {Separation Logic: A Logic for Shared Mutable Data Structures},
	Booktitle = {Proceedings of the Seventeenth Annual IEEE Symposium on Logic in Computer Science},
	Publisher = {IEEE Computer Society Press},
        Address = "Los Alamitos, California",
	Year = {2002},
        Pages = {55-74},
        URL = {http://dx.doi.org/10.1109/LICS.2002.1029817},
	Annote = {Surveys early work in separation logic and describes how to extend it to cover pointer arithmetic.}
}

@InCollection{Reynolds80,
  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 =	 SV,
  Address = NY,
  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,
  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,
  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 =	 SV,
  Address =	 NY
}

@Book{Reynolds98,
  author =	 {John C. Reynolds},
  title =	 {Theories of Programming Languages},
  publisher =	 {Cambridge},
  year =	 1998,
  annote =	 {Hundreds of references.}
}

@InCollection{Riecke-Subrahmanyam94,
  Author =	 "Jon G. Riecke and Ramesh Subrahmanyam",
  Title =	 "Extensions to Type Systems Can Preserve Operational
                  Equivalences",
  BookTitle =	 "Theoretical Aspects of Computer Software",
  Publisher =	 SV,
  Year =	 1994,
  Editor =	 "Masami Hagiya and John C. Mitchell",
  Series =	 LNCS,
  Volume =	 789,
  Pages =	 "76-95",
  Month =	 apr,
  Annote =	 "28 references."
}

@InProceedings{Riely-Hennessy98,
  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,
  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,
  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,
  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."
}

@InProceedings{Robinson88,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Year =	 1991,
  Editor =	 "S. Abramsky and T. S. E. Maibaum",
  Series =	 LNCS,
  Volume =	 493,
  Pages =	 "441 ff.",
  Address =	 NY,
  Month =	 apr
}

@InProceedings{Seco-Caires00,
  author =       {Joao Seco and Luis Caires},
  title =        {A Basic Model of Typed Components},
  editor =       {Elisa Bertino},
  booktitle =    {ECOOP 2000 -- Object-Oriented Programming 14th European Conference},
  series =       LNCS,
  volume =       1850,
  year =         2000,
  pages =        {108-128},
  annote =       {26 references.}
}

@InCollection{Sekiguchi-Yonezawa94,
  Author =	 "Tatsurou Sekiguchi and Akinori Yonezawa",
  Title =	 "A Complete Type Inference System for Subtyped
                  Recursive Types",
  BookTitle =	 "Theoretical Aspects of Computer Software",
  Publisher =	 SV,
  Year =	 1994,
  Editor =	 "Masami Hagiya and John C. Mitchell",
  Series =	 LNCS,
  Volume =	 789,
  Pages =	 "667-686",
  Month =	 apr,
  Annote =	 "18 references."
}

@Article{Shankar80,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  Author =	 "G. S. Smith",
  Title =	 "Polymorphic type Inference with Overloading and
                  Subtyping",
  Journal =	 LNCS,
  Number =	 668,
  Publisher =	 SV,
  Address =	 NY,
  Editor =	 "M. C. Gaudel and J. P. Jouannaud",
  Year =	 1993,
  BookTitle =	 "TAPSOFT '93: Theory and Practice of Software
                  Development. 4th International Joint Conference
                  CAAP/FASE",
  Pages =	 "671-685",
  Annote =	 "15 references"
}

@Article{Smolka-Ait-Kaci87,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  Publisher = SV,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  Author =	 "T. Streicher",
  Title =	 "Semantics of Type Theory: Correctness, Completeness,
                  and Independence Results",
  Publisher =	 "Birkhauser",
  Year =	 1991,
  Address =	 "Boston"
}

@Article{Strom-Yemini86,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Address =	 NY,
  Series =	 LNCS,
  Volume =	 432,
  Annote =	 "19 references."
}

@InProceedings{Thatte94,
  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,
  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,
  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,
  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 =	 SV,
  year =	 1999,
  editor =	 {Rachid Guerraoui},
  volume =	 1628,
  series =	 LNCS,
  address =	 NY,
  month =	 jun,
  pages =	 {186-204},
  annote =	 {30 references.}
}

@InCollection{Thorup97,
  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 =	 SV,
  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,
  Author =	 "Jerzy Tiuryn",
  Title =	 "Type Inference Problems: A Survey",
  BookTitle =	 "Mathematical Foundations of Computer Science 1990,
                  Bansk\`a Bystrica, Czechoslovakia",
  Editor =	 "B. Rovan",
  Series =	 LNCS,
  Volume =	 452,
  Publisher =	 SV,
  Address =	 NY,
  Year =	 1990,
  Pages =	 "105-120",
  Annote =	 "44 references."
}

@InCollection{Tiuryn93,
  Author =	 "J. Tiuryn",
  Title =	 "Type Reconstruction with Recursive Types and Atomic
                  Subtyping",
  Journal =	 LNCS,
  Number =	 668,
  Publisher =	 SV,
  Address =	 NY,
  Editor =	 "M. C. Gaudel and J. P. Jouannaud",
  Year =	 1993,
  Booktitle =	 "TAPSOFT '93: Theory and Practice of Software
                  Development. 4th International Joint Conference
                  CAAP/FASE",
  Pages =	 "686-701",
  Annote =	 "17 references"
}

@TechReport{Tofte89,
  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,
  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,
  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,
  Author =	 "Hideki Tsuiki",
  Title =	 "A Normalizing Calculus with Overloading and
                  Subtyping",
  BookTitle =	 "Theoretical Aspects of Computer Software",
  Publisher =	 SV,
  Year =	 1994,
  Editor =	 "Masami Hagiya and John C. Mitchell",
  Series =	 LNCS,
  Volume =	 789,
  Pages =	 "273-295",
  Month =	 apr,
  Annote =	 "16 references."
}

@TechReport{Tucker-Zucker90,
  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,
  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,
  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,
  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,
  Author =	 "David Turner",
  Title =	 "Constructive Type Theory as a Programming Language",
  Note =	 "Notes from lecture given",
  Month =	 may,
  Year =	 1986
}

@InProceedings{Urzyczyn93,
  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 =	 SV,
  Series =	 LNCS,
  Number =	 {664},
  Pages =	 {418-432},
  Address =	 {Utrecht, The Netherlands},
  Month =	 mar,
  Note =	 {TLCA'93},
  Annote =	 {22 references}
}

@Article{VanDusen81,
  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,
  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,
  Author =	 "Philip Wadler and Stephen Blott",
  Title =	 "How to make ad-hoc Polymorphism less ad hoc",
  publisher =    ACM,
  address =      NY,
  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,
  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 =	 oct,
  Annote =	 "83 references."
}

@Article{Waldmann92,
  Author =	 "Uwe Waldmann",
  Title =	 "Semantics of Order-sorted Specifications",
  Journal =	 "Theoretical Computer Science",
  Volume =	 94,
  Number =	 1,
  Month =	 mar,
  Year =	 1992,
  Pages =	 "1-35"
}

@inproceedings{Walker-Watkins01,
 author = {David Walker and Kevin Watkins},
 title = {On regions and linear types (extended abstract)},
 booktitle = {Proceedings of the sixth ACM SIGPLAN international conference on Functional programming},
 series = {ICFP '01},
 year = 2001,
 isbn = {1-58113-415-0},
 location = {Florence, Italy},
 pages = {181-192},
 numpages = 12,
 url = {http://doi.acm.org/10.1145/507635.507658},
 doi = {10.1145/507635.507658},
 publisher = {ACM},
 address = NY,
} 

@InCollection{Waller91,
  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 =	 SV,
  Address =	 NY,
  Series =	 LNCS,
  Volume =	 566,
  Month =	 dec,
  Pages =	 "167-188"
}

@InProceedings{Wand84,
  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,
  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,
  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,
  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{Wand91a,
  author =      "Mitchell Wand",
  title =       "Type Inference for Record Concatenation and Multiple
                 Inheritance",
  journal =     "Information and Computation",
  year =        "1991",
  volume =      "93",
  pages =       "1-15",
  note = "Preliminary version appeared in {\it Proc. 4th IEEE
                 Symposium on Logic in Computer Science\/} (1989), 92--97." ,
  URL =  {ftp://ftp.ccs.neu.edu/pub/people/wand/papers/ic-91.ps},
 }

@Article{Wasserman-etal81,
  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,
  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."
}

@InCollection{Wegner-Zdonik88,
  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 =	 SV,
  Address =	 NY,
  Month =	 aug,
  Year =	 1988,
  Pages =	 "55-77",
  Series =	 LNCS,
  Volume =	 322,
  Annote =	 "27 references."
}

@InProceedings{Wegner83,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  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,
  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,
  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,
  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,
  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,
  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 =	 SV,
  Year =	 1992,
  Editor =	 "Jean-Claude Raoult",
  Series =	 LNCS,
  Address =	 NY,
  Volume =	 581,
  Pages =	 "342-361",
  Annote =	 "22 references"
}

@TechReport{Wraith89,
  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,
  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,
  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,
  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."
}

@Article{Wright-Felleisen94,
  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",
  URL =          {http://dx.doi.org/10.1006/inco.1994.1093},
  Annote =	 "38 references."
}

@InCollection{Wright92,
  Author =	 "Andrew K. Wright",
  Title =	 "Typing References by Effect Inference",
  BookTitle =	 "ESOP '92, 4th European Symposium on Programming,
                  Rennes, France, February 1992, Proceedings",
  Publisher =	 SV,
  Year =	 1992,
  Editor =	 "Bernd Krieg-Bruckner",
  Series =	 LNCS,
  Address =	 NY,
  Volume =	 582,
  Pages =	 "473-491",
  Annote =	 "19 references"
}

@Article{Wulf80,
  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,
  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,
  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.}
}

@inproceedings{Xi03,
  author = "Hongwei Xi",
  title = {Facilitating Program Verification with Dependent Types},
  booktitle = "Proceedings of the International Conference on Software Engineering and Formal Methods",
  year = 2003,
  pages = "72-81"
}

@Article{Yamane85,
  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},
  year =	 1998,
  organization = IEEE,
  address =	 {Los Alamitos, California},
  month =	 may,
  pages =	 {164-173},
  annote =	 {20 references.}
}

@Article{Yardeni-Shapiro91,
  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,
  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,
  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,
  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."
}

@techreport{Zenger-Odersky04,
	Author = {Matthias Zenger and Martin Odersky},
	Institution = {{\'E}cole Polytechnique F{\'e}d{\'e}rale de Lausanne},
	Number = {IC/2004/33},
	Title = {Independently Extensible Solutions to the Expression Problem},
	Url = {http://scala.epfl.ch/docu/related.html},
	Year = 2004
}

@InProceedings{Zenger02,
  author =	 {Matthias Zenger},
  title =	 {Type-Safe Prototype-Based Component Evolution},
  booktitle =	 {ECOOP 2002 --- Object-Oriented Programming, 16th
                  European Conference, M\'{a}alaga, Spain,
                  Proceedings},
  pages =	 {441-469},
  year =	 2002,
  editor =	 {Boris Magnusson},
  volume =	 2374,
  series =	 LNCS,
  address =	 {Berlin},
  month =	 jun,
  publisher =	 SV,
  annote =	 {First-class components on top of a class-based OO language. 57 references.}
}
	
@InProceedings{Zhao-Palsberg-Vitek03,
  author =	 {Tian Zhao and Jens Palsberg and Jan Vitek},
  title =	 {Lightweight Confinement for Featherweight Java},
  booktitle =	 {Proc. of the ACM Conference on Object Oriented
                  Programming, Systems, Languages, and Applications},
  year =	 {2003},
  pages =	 {135--148},
  publisher =	 {ACM Press},
  address =	 {Anaheim, CA},
  annote =	 {Summary: The paper formalizes the notion of
                  confinement types presented earlier by Grothoff et
                  al. Confinement types ensure that no instance of a
                  confined type may escaped the code of the package in
                  which the instance's class is declared. This is
                  coarser-grained than ownership types, but is more
                  lightweight and offers some similar benefits. The
                  paper presents a core calculus and sound type system
                  for Confined Featherweight Java. The paper then
                  extends this type system to handle generic types and
                  "post-hoc confined", where generic types
                  instantiated with confined types for the type
                  parameters become themselves confined. A core
                  calculus and sound type system for Confined Generic
                  Featherweight Java is presented. The key ideas in
                  the paper are very interesting. The paper does
                  suffer from many grammatical errors and a few key
                  errors in the formalism make me a bit
                  suspicious. All the errors I saw were typographical,
                  but the lack of attention to detail in a formal
                  paper was a bit troublesome. However, my intuition
                  says that the system is sound as they claim.},
}

@Article{Zilles73,
  Title =	 "Procedural Encapsulation: A Linguistic Protection
                  Technique",
  Author =	 "Steven Zilles",
  Journal =	 SIGPLAN,
  Volume =	 8,
  Number =	 9,
  Year =	 1973,
  Pages =	 "142-146"
}

@Article{Zilles81,
  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,
  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,
  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."
}

@TechReport{Zwanenburg99,
  author =	 {Zwanenburg},
  title =	 {Object-Oriented Concepts and Proof Rules:
                  Formalization in Type Theory and Implementation in
                  {Yarrow}},
  institution =	 {Eindhoven University of Technology},
  year =	 1999,
  type =	 {IPA Dissertation Series},
  number =	 {1999-12},
  address =	 {Eindhoven},
  month =	 dec,
  annote =	 {Many references.}
}

@InCollection{deBruijn80,
  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,
  Author =	 "Diedrik T. van Daalen",
  Title =	 "The Language Theory of AUTOMATH",
  School =	 "The University of Technology, Eindhoven",
  Year =	 1980
}
