OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Jam---designing a Java extension with mixins
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Common Language Infrastructure Annotated Standard
The Common Language Infrastructure Annotated Standard
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
A design discipline and language features for modular reasoning in aspect-oriented programs
A design discipline and language features for modular reasoning in aspect-oriented programs
Classboxes: controlling visibility of class extensions
Computer Languages, Systems and Structures
Chai: traits for Java-like languages
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Patterns of component evolution
SC'07 Proceedings of the 6th 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
Hi-index | 0.00 |
Classboxes are a new module system for object-oriented languages defining a packaging and scoping mechanism for controlling the visibility of isolated extensions to portions of class-based systems. Unlike object-oriented specialization, the class extension mechanisms supported by classboxes preserve the identity of extended classes and, therefore, all clients of extended classes can benefit from the applied extensions. In this paper, we present a language design and a corresponding implementation strategy for classboxes in C#. A particular challenge in incorporating classboxes into C# is to preserve the identity of extended classes as the .NET framework represents classes as metadata type declarations and access to classes by static links into metadata of the host assembly. However, the local refinement of an imported class results in a new metadata type declaration. In order to guarantee the identity of extended classes, new metadata type declarations have to be incorporated into the original metadata of imported classes. But this “re-wiring” has to occur in a manner that is consistent with the Common Language Infrastructure (CLI).