A overview of modular smalltalk
OOPSLA '88 Conference proceedings on Object-oriented programming systems, languages and applications
Virtual classes: a powerful mechanism in object-oriented programming
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
User-level language crafting: introducing the CLOS metaobject protocol
Object-oriented programming
Back to the future: the story of Squeak, a practical Smalltalk written in itself
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Hyper/J: multi-dimensional separation of concerns for Java
Proceedings of the 22nd international conference on Software engineering
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
Object-Oriented Software Construction
Object-Oriented Software Construction
Smalltalk-80: The Language
Conquering aspects with Caesar
Proceedings of the 2nd international conference on Aspect-oriented software development
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Modules for crosscutting models
Ada-Europe'03 Proceedings of the 8th Ada-Europe international conference on Reliable software technologies
The story of moose: an agile reengineering environment
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
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
Classboxes: an experiment in modeling compositional abstractions using explicit contexts
SAVCBS '05 Proceedings of the 2005 conference on Specification and verification of component-based systems
Conservative aspect-orientated programming with the e language
Proceedings of the 6th international conference on Aspect-oriented software development
Applications = Components + GLoo
Electronic Notes in Theoretical Computer Science (ENTCS)
Encapsulating and exploiting change with changeboxes
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Implicit First Class Genericity
SC '09 Proceedings of the 8th International Conference on Software Composition
The context-dependent role model
DAIS'07 Proceedings of the 7th IFIP WG 6.1 international conference on Distributed applications and interoperable systems
Patterns of component evolution
SC'07 Proceedings of the 6th international conference on Software composition
Growing a language: the GLoo perspective
SC'08 Proceedings of the 7th international conference on Software composition
Modules as objects in newspeak
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Predicated generic functions: enabling context-dependent method dispatch
SC'10 Proceedings of the 9th international conference on Software composition
JavaGI: The Interaction of Type Classes with Interfaces and Inheritance
ACM Transactions on Programming Languages and Systems (TOPLAS)
Use of SPLE to deliver custom solutions at product cost: challenges and a way forward
Proceedings of the 2nd International Workshop on Product Line Approaches in Software Engineering
Supporting program variant generation and feature files in rbFeatures
Proceedings of the 15th International Software Product Line Conference, Volume 2
Ring: A unifying meta-model and infrastructure for Smalltalk source code analysis tools
Computer Languages, Systems and Structures
rbFeatures: Feature-oriented programming with Ruby
Science of Computer Programming
Method shelters: avoiding conflicts among class extensions caused by local rebinding
Proceedings of the 11th annual international conference on Aspect-oriented Software Development
On the revival of dynamic languages
SC'05 Proceedings of the 4th international conference on Software Composition
On the integration of classboxes into c#
SC'06 Proceedings of the 5th international conference on Software Composition
Using metadata transformations to integrate class extensions in an existing class hierarchy
APLAS'06 Proceedings of the 4th Asian conference on Programming Languages and Systems
Efficient method lookup customization for smalltalk
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Hi-index | 0.00 |
A class extension is a method that is defined in a module, but whose class is defined elsewhere. Class extensions offer a convenient way to incrementally modify existing classes when subclassing is inappropriate. Unfortunately existing approaches suffer from various limitations. Either class extensions have a global impact, with possibly negative effects for unexpected clients, or they have a purely local impact, with negative results for collaborating clients. Furthermore, conflicting class extensions are either disallowed, or resolved by linearization, with consequent negative effects. To solve these problems we present classboxes, a module system for object-oriented languages that provides for method addition and replacement. Moreover, the changes made by a classbox are only visible to that classbox (or classboxes that import it), a feature we call local rebinding. To validate the model we have implemented it in the Squeak Smalltalk environment, and performed benchmarks.