On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Type algebras, functor categories and block structure
Algebraic methods in semantics
A modest model of records, inheritance, and unbounded quantification
Information and Computation - Selections from 1988 IEEE symposium on logic in computer science
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Recursion over realizability structures
Information and Computation
Inheritance as implicit coercion
Information and Computation
Safe type checking in a statically-typed object-oriented programming language
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Object-oriented programming without recursive types
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Bounded quantification is undecidable
Information and Computation
An extension of system F with subtyping
Information and Computation - Special conference issue: international conference on theoretical aspects of computer software
Coherence of subsumption, minimum typing and type-checking in F≤
Theoretical aspects of object-oriented programming
Theoretical aspects of object-oriented programming
Extensible records in a pure calculus of subtyping
Theoretical aspects of object-oriented programming
Two semantic models of object-oriented languages
Theoretical aspects of object-oriented programming
Notes on Typed Object-Oriented Programming
TACS '94 Proceedings of the International Conference on Theoretical Aspects of Computer Software
A Theory of Primitive Objects - Untyped and First-Order Systems
TACS '94 Proceedings of the International Conference on Theoretical Aspects of Computer Software
A Unifying Type-Theoretic Framework for Objects
STACS '94 Proceedings of the 11th Annual Symposium on Theoretical Aspects of Computer Science
PROCOMET '94 Proceedings of the IFIP TC2/WG2.1/WG2.2/WG2.3 Working Conference on Programming Concepts, Methods and Calculi
Decidability of Higher-Order Subtyping with Intersection Types
CSL '94 Selected Papers from the 8th International Workshop on Computer Science Logic
A denotational semantics of inheritance
A denotational semantics of inheritance
Compositional references for stateful functional programming
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
An efficient class and object encoding
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Information and Computation - FOOL V
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
Lenses, fibrations and universal translations
Mathematical Structures in Computer Science
Hi-index | 0.00 |
The statement S≤T in a &lgr;-calculus with subtyping is traditionally interpreted by a semantic coercion function of type [[S]]→[[T]] that extracts the “T part” of an element of S. If the subtyping relation is restricted to covariant positions, this interpretation may be enriched to include both the implicit coercion and an overwriting function put[S,T] ∈ [[S]]→[[T]]→[[S]] that updates the T part of an element of S. We give a realizability model and a sound equational theory for a second-order calculus of positive subtyping.Though weaker than familiar calculi of bounded quantification, positive subtyping retains sufficient power to model objects, encapsulation, and message passing. Moreover, inheritance may be implemented very straightforwardly in this setting, using the put functions arising from ordinary subtyping of records in place of the sophisticated systems of record extension and update often used for this purpose. The equational laws relating the behavior of coercions and put functions can be used to prove simple properties of the resulting classes in such a way that proofs for superclasses are “inherited” by subclasses.