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
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)
A Theory of Objects
A lambda calculus of objects and method specialization
Nordic Journal of Computing
From Classes to Objects via Subtyping
ESOP '98 Proceedings of the 7th European Symposium on Programming: Programming Languages and Systems
A Lambda Calculus of Incomplete Objects
MFCS '96 Proceedings of the 21st International Symposium on Mathematical Foundations of Computer Science
Notes on Typed Object-Oriented Programming
TACS '94 Proceedings of the International Conference on Theoretical Aspects of Computer Software
TACS '97 Proceedings of the Third International Symposium on Theoretical Aspects of Computer Software
Matching Constraints for the Lambda Calculus of Objects
TLCA '97 Proceedings of the Third International Conference on Typed Lambda Calculi and Applications
An Imperative, First-Order Calculus with Object Extension
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Subtyping Constraints for Incomplete Objects (Extended Abstract)
TAPSOFT '97 Proceedings of the 7th International Joint Conference CAAP/FASE on Theory and Practice of Software Development
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
Type systems for object-oriented programming languages
Type systems for object-oriented programming languages
Combining subsumption and binary methods: an object calculus with views
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
More dynamic object reclassification: Fickle∥
ACM Transactions on Programming Languages and Systems (TOPLAS)
Fickle: Dynamic Object Re-classification
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
RTA '01 Proceedings of the 12th International Conference on Rewriting Techniques and Applications
A Framework for Defining Object-Calculi
FM '99 Proceedings of the Wold Congress on Formal Methods in the Development of Computing Systems-Volume II
An Interpretation of Extensible Objects
FCT '99 Proceedings of the 12th International Symposium on Fundamentals of Computation Theory
Extensible objects without labels
ACM Transactions on Programming Languages and Systems (TOPLAS)
Addressed term rewriting systems: application to a typed object calculus
Mathematical Structures in Computer Science
FeatherTrait: A modest extension of Featherweight Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Three approaches to object evolution
PPPJ '09 Proceedings of the 7th International Conference on Principles and Practice of Programming in Java
Addressed Term Rewriting Systems: Syntax, Semantics, and Pragmatics
Electronic Notes in Theoretical Computer Science (ENTCS)
Polymorphic type inference for scripting languages with object extensions
Proceedings of the 7th symposium on Dynamic languages
Talents: dynamically composable units of reuse
Proceedings of the International Workshop on Smalltalk Technologies
A tested semantics for getters, setters, and eval in JavaScript
Proceedings of the 8th symposium on Dynamic languages
Dependent types for JavaScript
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
In this paper we investigate, in the context of functional prototype-based languages, objects which might extend themselves upon receiving a message. The possibility for an object of extending its own "self", referred to by Cardelli, as a self-inflicted operation, is novel in the context of typed object-based languages. We present a sound type system for this calculus which guarantees that evaluating a well-typed expression will never yield a message-not-found run-time error. We give several examples which illustrate the increased expressive power of our system with respect to existing calculi of objects. The new type system allows also for a flexible width-subtyping, still permitting sound method override, and a limited form of object extension. The resulting calculus appears to be a good starting point for a rigorous mathematical analysis of class-based languages.