Treffer: JavaGI: a language with generalized interfaces ; JavaGI: eine Sprache mit generalisierten Interfaces ; JavaGI: a language with generalised interfaces; JavaGI: a language with generalised interfaces

Title:
JavaGI: a language with generalized interfaces ; JavaGI: eine Sprache mit generalisierten Interfaces ; JavaGI: a language with generalised interfaces; JavaGI: a language with generalised interfaces
Authors:
Publication Year:
2010
Document Type:
Dissertation thesis
Language:
English
Rights:
undefined
Accession Number:
edsbas.7FFA7456
Database:
BASE

Weitere Informationen

Component-based software development in statically typed, object-oriented programming languages has proven successful in reducing development costs and raising software quality. However, this form of software development still poses many challenges and thus requires better support on the programming language level. The language JavaGI, a conservative extension of Java 1.5, offers generalized interfaces as an effective improvement. Generalized interfaces subsume retroactive and type-conditional interface implementations, binary methods, symmetric multiple dispatch, interfaces over families of types, and static interface methods. These features allow non-invasive and in-place object adaptation, thus enabling solutions to several software extension, adaptation, and integration problems with components in binary form. Further, they make certain coding patterns redundant and increase the expressiveness of the type system. The generalized interface mechanism offers a unifying conceptual view on these seemingly disparate concerns, for which previously unrelated extensions have been suggested. This dissertation introduces the language JavaGI by explaining its features and motivating its design. Technical contributions of the dissertation are the formalization of a core calculus for JavaGI and a proof of type soundness, determinacy of evaluation, and decidability of subtyping and typechecking. The formalization also includes a type- and behavior-preserving translation from a significant subset of the core calculus to a slightly extended version of Featherweight Java. Moreover, the dissertation explores two extensions of the type system, which both have undecidable subtyping relations but for which several decidable fragments exist. The undecidability result for one of the extensions sheds light on the decidability of subtyping in Scala and of subtyping with Java wildcards. On the practical side, the dissertation presents the implementation of a JavaGI compiler and an accompanying run-time system. The compiler is based on ...