OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
A simple technique for handling multiple polymorphism
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
A proposal for making Eiffel type-safe
The Computer Journal - Special issue on object-oriented programming
The O2 database programming language
VLDB '89 Proceedings of the 15th international conference on Very large data bases
Toward a typed foundation for method specialization and inheritance
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '90 Proceedings of the 17th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Handbook of theoretical computer science (vol. B)
Handbook of theoretical computer science (vol. B)
Static type checking of multi-methods
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
A static type system for message passing
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
A gentle introduction to Haskell
ACM SIGPLAN Notices - Haskell special issue
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Programming with equalities, subsorts, overloading, and parametrization in OBJ
Journal of Logic Programming
A new set interpretation of the inheritance relation and its checking
ACM SIGPLAN OOPS Messenger
A calculus for overloaded functions with subtyping
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
Monotonic conflict resolution mechanisms for inheritance
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Handbook of logic in computer science (vol. 2)
Object-oriented type systems
Typechecking and modules for multi-methods
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Static typing for object-oriented programming
Science of Computer Programming
Covariance and contravariance: conflict without a cause
ACM Transactions on Programming Languages and Systems (TOPLAS)
Theory and Practice of Object Systems - Special issue: type systems
Object-oriented programming: a unified foundation
Object-oriented programming: a unified foundation
Parasitic methods: an implementation of multi-methods for Java
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
An algebraic model of sybtypes in object-oriented languages (draft)
OOPWORK '86 Proceedings of the 1986 SIGPLAN workshop on Object-oriented programming
Object-Oriented Software Construction
Object-Oriented Software Construction
A Theory of Objects
Java Language Specification, Second Edition: The Java Series
Java Language Specification, Second Edition: The Java Series
Engineering a Programming Language: The Type and Class System of Sather
Proceedings of the International Conference on Programming Languages and System Architectures
Multi-Methods in a Statically-Typed Programming Language
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Making Type Inference Practical
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Object-Oriented Multi-Methods in Cecil
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Type-Safe Compilation of Covariant Specialization: A Practical Case
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Type-safe relaxing of schema consistency rules for flexible modelling in OODBMS
The VLDB Journal — The International Journal on Very Large Data Bases
"Real World" as an Argument for Covariant Specialization in Programming and Modeling
OOIS '02 Proceedings of the Workshops on Advances in Object-Oriented Information Systems
The STSLib Project: Towards a Formal Component Model Based on STS
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
This paper presents a simple and natural semantics for object-oriented languages with classes and multiple inheritance. The model, called the Formal Class model, is an intermediate level between the algebraic specification of data type, and the implementation within an object-oriented language. Our model is equipped with an operational semantics based on conditional term rewriting. One important characteristic is the use of conditional selectors. It allows one to define a type with a flat or an ordered design. In this context, we define a safe and simple type system with single dispatch and simply covariant methods. This type system is extended to some practical aspects, such as abstract classes, abstract methods, protected methods, and super methods. We describe and compare flat and ordered designs and prove that the latter is finer than the former one. We also look at multicovariant methods and show ways to fix type-checking problems using single dispatch. We describe the least pessimistic solution. Lastly, we discuss the extension of our type checking to multiple dispatch and side effects. This paper synthesizes several practical results, their proofs, and algorithms.