A programmer's guide to object-oriented programming in Common LISP
A programmer's guide to object-oriented programming in Common LISP
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A syntactic approach to type soundness
Information and Computation
A behavioral notion of subtyping
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Revised5 report on the algorithmic language scheme
ACM SIGPLAN Notices
The C++ Programming Language
The Java Language Specification
The Java Language Specification
Smalltalk-80: The Language
Overriding Operators in a Mixin-Based Framework
PLILP '97 Proceedings of the9th International Symposium on Programming Languages: Implementations, Logics, and Programs: Including a Special Trach on Declarative Programming Languages in Education
DrScheme: A Pedagogic Programming Environment for Scheme
PLILP '97 Proceedings of the9th International Symposium on Programming Languages: Implementations, Logics, and Programs: Including a Special Trach on Declarative Programming Languages in Education
Designing an Object-Oriented Programming Language with Behavioural Subtyping
Proceedings of the REX School/Workshop on Foundations of Object-Oriented Languages
A denotational semantics of inheritance
A denotational semantics of inheritance
Programming languages for reusable software components
Programming languages for reusable software components
A theory of mixin modules: basic and derived operators
Mathematical Structures in Computer Science
Selective method combination in mixin-based composition
Proceedings of the 2005 ACM symposium on Applied computing
The when, why and why not of the BETA programming language
Proceedings of the third ACM SIGPLAN conference on History of programming languages
Proceedings of the 2007 ACM symposium on Applied computing
Virtual class support at the virtual machine level
Proceedings of the Third Workshop on Virtual Machines and Intermediate Languages
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Contracts for first-class classes
Proceedings of the 6th symposium on Dynamic languages
Metamodeling semantics of multiple inheritance
Science of Computer Programming
Efficient multimethods in a single dispatch language
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Scheme with classes, mixins, and traits
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
A higher abstraction level using first-class inheritance relations
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Transactions on Aspect-Oriented Software Development IX
Contracts for First-Class Classes
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.02 |
In an object-oriented language, a derived class may declare a method with the same signature as a method in the base class. The meaning of the re-declaration depends on the language. Most commonly, the new declaration overrides the base declaration, perhaps completely replacing it, or perhaps using super to invoke the old implementation. Another possibility is that the base class always controls the method implementation, and the new declaration merely augments the method in the case that the base method calls inner. Each possibility has advantages and disadvantages. In this paper, we explain why programmers need both kinds of method redeclaration, and we present a language that integrates them. We also present a formal semantics for the new language, and we describe an implementation for MzScheme.