The C++ programming language
Views: a way for pattern matching to cohabit with data abstraction
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
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
Object-oriented programming in the BETA programming language
Object-oriented programming in the BETA programming language
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
ACM Transactions on Software Engineering and Methodology (TOSEM)
The Mythical Man-Month: Essays on Softw
The Mythical Man-Month: Essays on Softw
Conquering aspects with Caesar
Proceedings of the 2nd international conference on Aspect-oriented software development
Data Flow Analysis for Software Prefetching Linked Data Structures in Java
Proceedings of the 2001 International Conference on Parallel Architectures and Compilation Techniques
A Statically Safe Alternative to Virtual Types
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Dynamically Composable Collaborations with Delegation Layers
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
Pastry: Scalable, Decentralized Object Location, and Routing for Large-Scale Peer-to-Peer Systems
Middleware '01 Proceedings of the IFIP/ACM International Conference on Distributed Systems Platforms Heidelberg
Object Teams: Improving Modularity for Crosscutting Collaborations
NODe '02 Revised Papers from the International Conference NetObjectDays on Objects, Components, Architectures, Services, and Applications for a Networked World
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
Safe Upgrading without Restarting
ICSM '03 Proceedings of the International Conference on Software Maintenance
Scalable extensibility via nested inheritance
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Mutatis mutandis: safe and predictable dynamic software updating
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-based hot swapping of running modules
Acta Informatica
Scalable component abstractions
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Classbox/J: controlling the scope of change in Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The next mainstream programming language: a game developer's perspective
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
J&: nested intersection for scalable software composition
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Statically scoped object adaptation with expanders
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Tribe: a simple virtual class calculus
Proceedings of the 6th international conference on Aspect-oriented software development
Beehive: O(1)lookup performance for power-law query distributions in peer-to-peer overlays
NSDI'04 Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation - Volume 1
Beehive: O(1)lookup performance for power-law query distributions in peer-to-peer overlays
NSDI'04 Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation - Volume 1
Corona: a high performance publish-subscribe system for the world wide web
NSDI'06 Proceedings of the 3rd conference on Networked Systems Design & Implementation - Volume 3
Variant path types for scalable extensibility
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Masked types for sound object initialization
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
Chai: traits for Java-like languages
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Transactions on Aspect-Oriented Software Development I
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Mostly modular compilation of crosscutting concerns by contextual predicate dispatch
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Revisiting parametric types and virtual classes
TOOLS'10 Proceedings of the 48th international conference on Objects, models, components, patterns
Aspect-based dynamic software updating: a model and its empirical evaluation
Proceedings of the tenth international conference on Aspect-oriented software development
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Hi-index | 0.00 |
Class sharing is a new language mechanism for building extensible software systems. Recent work has separately explored two different kinds of extensibility: first, family inheritance, in which an entire family of related classes can be inherited, and second, adaptation, in which existing objects are extended in place with new behavior and state. Class sharing integrates these two kinds of extensibility mechanisms. With little programmer effort, objects of one family can be used as members of another, while preserving relationships among objects. Therefore, a family of classes can be adapted in place with new functionality spanning multiple classes. Object graphs can evolve from one family to another, adding or removing functionality even at run time. Several new mechanisms support this flexibility while ensuring type safety. Class sharing has been implemented as an extension to Java, and its utility for evolving and extending software is demonstrated with realistic systems.