Lightweight scalable components

  • Authors:
  • Tetsuo Kamina;Tetsuo Tamai

  • Affiliations:
  • The University of Tokyo, Tokyo, Japan;The University of Tokyo, Tokyo, Japan

  • Venue:
  • GPCE '07 Proceedings of the 6th international conference on Generative programming and component engineering
  • Year:
  • 2007

Quantified Score

Hi-index 0.01

Visualization

Abstract

One limitation of the well-known family polymorphism approach is that each "family" will be a large monolithic program. In this paper, we introduce a minimal lightweight set of language features that treat each member of a family as a reusable programming unit, while preserving the important feature of scalability. The only one language construct we propose in this paper is type parameter members, which allows type parameters to be referred from the outside of class declarations. To investigate properties of type parameter members in the real programming language settings, we develop a programming language Scalable Java (SJ), an extension of Java generics with type parameter members. To carefully investigate the type soundness of SJ, we develop FGJ#, a core calculus of this extension based on FGJ, a functional core of Java with generics. Furthermore, to explore how to implement this proposal, we define the erasure of FGJ# programs as an extension of the erasure of FGJ programs, which compiles SJ to Java without generics.