On understanding types, data abstraction, and polymorphism
ACM Computing Surveys (CSUR) - The MIT Press scientific computation series
Object-oriented programming with flavors
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
A programmer's guide to object-oriented programming in Common LISP
A programmer's guide to object-oriented programming in Common LISP
Objects as closures: abstract semantics of object-oriented languages
LFP '88 Proceedings of the 1988 ACM conference on LISP and functional programming
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Parameter-passing and the lambda calculus
POPL '91 Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The revised report on the syntactic theories of sequential control and state
Theoretical Computer Science
The programming language jigsaw: mixins, modularity and multiple inheritance
The programming language jigsaw: mixins, modularity and multiple inheritance
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
Type inference for objects with instance variables and inheritance
Theoretical aspects of object-oriented programming
Two semantic models of object-oriented languages
Theoretical aspects of object-oriented programming
A syntactic approach to type soundness
Information and Computation
Sound polymorphic type inference for objects
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
Information and Computation
Theory and Practice of Object Systems - Special issue: type systems
Using role components in implement collaboration-based designs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the relationship between classes, objects, and data abstraction
Theory and Practice of Object Systems - Third workshop on foundations of object-oriented languages (FOOL 3)
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Matching for the lambda calculus of objects
Theoretical Computer Science - Special issue: Gentzen
The C++ Programming Language, Third Edition
The C++ Programming Language, Third Edition
A Theory of Objects
A lambda calculus of objects and method specialization
Nordic Journal of Computing
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
An Imperative, First-Order Calculus with Object Extension
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
An Algebraic Approach to Mixins and Modularity
ALP '96 Proceedings of the 5th International Conference on Algebraic and Logic Programming
A Subtyping for the Fisher-Honsell-Mitchell Lambda Calculus of Objects
CSL '94 Selected Papers from the 8th International Workshop on Computer Science Logic
A Delegation-based Object Calculus with Subtying
FCT '95 Proceedings of the 10th International Symposium on Fundamentals of Computation Theory
PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
Programming, Transforming, and Providing with Function Abstractions and Memories
ICALP '89 Proceedings of the 16th International Colloquium on Automata, Languages and Programming
A denotational semantics of inheritance
A denotational semantics of inheritance
Type systems for object-oriented programming languages
Type systems for object-oriented programming languages
Java(TM) Programming Language, The (4th Edition)
Java(TM) Programming Language, The (4th Edition)
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
A Basic Model of Typed Components
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
True Modules for Java-like Languages
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Type-Safe Prototype-Based Component Evolution
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
ECOOP '02 Proceedings of the Workshops and Posters on Object-Oriented Technology
Coordinating Mobile Object-Oriented Code
COORDINATION '02 Proceedings of the 5th International Conference on Coordination Models and Languages
The recursive record semantics of objects revisited
Journal of Functional Programming
Safe object composition in the presence of subtyping
ICTCS'05 Proceedings of the 9th Italian conference on Theoretical Computer Science
Types for dynamic reconfiguration
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Magda: a new language for modularity
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Gradual typing for first-class classes
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
We develop an imperative calculus that provides a formal model for both single and mixin inheritance. By introducing classes and mixins as the basic object-oriented constructs in a λ-calculus with records and references, we obtain a system with an intuitive operational semantics. New classes are produced by applying mixins to superclasses. Objects are represented by records and produced by instantiating classes. The type system for objects uses only functional, record, and reference types, and there is a clean separation between subtyping and inheritance.