On the integration of classboxes into c#

  • Authors:
  • Markus Lumpe;Jean-Guy Schneider

  • Affiliations:
  • Department of Computer Science, Iowa State University, Ames, IA;Faculty of Information & Communication Technologies, Swinburne University of Technology, Hawthorn, Australia

  • Venue:
  • SC'06 Proceedings of the 5th international conference on Software Composition
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

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).