Title
Component nextgen: a sound and expressive component framework for java
Abstract
Developing a general component system for a statically typed, object-oriented language is a challenging design problem for two reasons. First, mutually recursive references across components are common in object-oriented programs-an issue that has proven troublesome in the context of component systems for functional and procedural languages. Second, inheritance across component boundaries can cause accidental method overrides. Our recent research shows that a component framework can be constructed for a nominally typed object-oriented language supporting first-class generic types simply by adding appropriate annotations, syntactic sugar, and component-level type-checking. The fundamental semantic building blocks for constructing, type-checking and manipulating components are provided by the underlying first-class generic type system. To demonstrate the simplicity and utility of this approach we have designed and implemented an extension of Java called Component NEXTGEN (CGEN). CGEN, which is based on the Sun Java 5.0 javac compiler, is backwards compatible with existing Java binary code and runs on current Java Virtual Machines. The primary contribution of this paper is a technical analysis of the subtle design issues involved in building a component framework for a nominally typed object-oriented language supporting first-class generics. In contrast to component systems for structurally typed languages, mutual recursion among components is accommodated in the type system and semantics without incorporating any special machinery. Our analysis includes a presentation of Core CGEN (CCG), a small, core language modeling the CGEN framework. It is based on Featherweight GJ and incorporates some ideas from MIXGEN. CCG adds the essential features to support components, but nothing more. Our discussion includes the type rules and semantics for CCG, as well as a proof of type safety.
Year
DOI
Venue
2007
10.1145/1297105.1297039
Special Interest Group on Programming Languages
Keywords
Field
DocType
components,custom class loader,first-class generics,java implementation,modules,signatures
Programming language,Functional programming,Object-oriented programming,Computer science,Compiler,Theoretical computer science,Syntactic sugar,Generics in Java,Component-based software engineering,Java,Type safety
Conference
Volume
Issue
ISSN
42
10
0362-1340
Citations 
PageRank 
References 
0
0.34
10
Authors
2
Name
Order
Citations
PageRank
James Sasitorn181.27
Robert Cartwright252967.27