Go home now Header Background Image
Search
Submission Procedure
share: |
 
Follow us
 
 
 
 
Volume 11 / Issue 10

available in:   PDF (357 kB) PS (404 kB)
 
get:  
Similar Docs BibTeX   Write a comment
  
get:  
Links into Future
 
DOI:   10.3217/jucs-011-10-1613

 

Analyzing Module Diversity

Alexandre Bergel (Software Composition Group, University of Bern, Switzerland)

Stéphane Ducasse (LISTIC - Language and Software Evolution Group, University of Savoie, France)

Oscar Nierstrasz (Switzerland, Software Composition Group, University of Bern)

Abstract: Each object­oriented programming language proposes various grouping mechanisms to bundle interacting classes (i.e., packages, modules, selector namespaces, etc). To understand this diversity and to compare the different approaches, a common foundation is needed. In this paper we present a simple module calculus consisting of a small set of operators over environments and modules. Using these operators, we are then able to specify a set of module combinators that capture the semantics of Java packages, C# namespaces, Ruby modules, selector namespaces, gbeta classes, classboxes, MZScheme units, and MixJuice modules. We develop a simple taxonomy of module systems, and show how particular combinations of module operators help us to draw sharp distinctions between classes of module systems that share similar characteristics.

Keywords: C#, Java, Ruby, Small-talk, classboxes, module, package, selector namespaces, virtual classes

Categories: D.1.5, D.2.1, D.2.2, D.3.2, D.3.3