A semantics of multiple inheritance
Information and Computation - Semantics of Data Types
Toward a typed foundation for method specialization and inheritance
POPL '90 Proceedings of the 17th 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
Type inference for objects with instance variables and inheritance
Theoretical aspects of object-oriented programming
Extensible records in a pure calculus of subtyping
Theoretical aspects of object-oriented programming
Bananas in space: extending fold and unfold to exponential types
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Axiomatic domain theory in categories of partial maps
Axiomatic domain theory in categories of partial maps
Revisiting catamorphisms over datatypes with embedded functions (or, programs from outer space)
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Information and Computation
A Theory of Objects
A lambda calculus of objects and method specialization
Nordic Journal of Computing
Semantics and Logic of Object Calculi
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
An Extension of Models of Axiomatic Domain Theory to Models of Synthetic Domain Theory
CSL '96 Selected Papers from the10th International Workshop on Computer Science Logic
An ideal model for recursive polymorphic types
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Hi-index | 0.00 |
In this paper we give a denotational model for Abadi and Cardelli's first order object calculus FOb"1"+"x"@m (without subtyping) in the category pCpo. The key novelty of our model is its extensive use of recursively defined types, supporting self-application, to model objects. At a technical level, this entails using some sophisticated techniques such as Freyd's algebraic compactness to guarantee the existence of the denotations of the object types. The last sections of the paper demonstrates that the canonical recursion operator inherent in our semantics is potentially useful in object-oriented programming. This is witnessed by giving a straightforward translation of algebraic datatypes into so called wrapper classes.