Informatics Report Series


Report   

EDI-INF-RR-0590


Related Pages

Report (by Number) Index
Report (by Date) Index
Author Index
Institute Index

Home
Title:Featherweight Java: a minimal core calculus for Java and GJ
Authors: Atsushi Igarashi ; Benjamin Pierce ; Philip Wadler
Date:May 2001
Publication Title:ACM Transactions on Programming Languages and Systems (TOPLAS)
Publisher:ACM
Publication Type:Journal Article Publication Status:Published
Volume No:23(3) Page Nos:396-450
DOI:10.1145/503502.503505
Abstract:
Several recent studies have introduced lightweight versions of Java: reduced languages in which complex features like threads and reflection are dropped to enable rigorous arguments about key properties such as type safety. We carry this process a step further, omitting almost all features of the full language (including interfaces and even assignment) to obtain a small calculus, Featherweight Java, for which rigorous proofs are not only possible but easy. Featherweight Java bears a similar relation to Java as the lambda-calculus does to languages such as ML and Haskell. It offers a similar computational "feel," providing classes, methods, fields, inheritance, and dynamic typecasts with a semantics closely following Java's. A proof of type safety for Featherweight Java thus illustrates many of the interesting features of a safety proof for the full language, while remaining pleasingly compact. The minimal syntax, typing rules, and operational semantics of Featherweight Java make it a handy tool for studying the consequences of extensions and variations. As an illustration of its utility in this regard, we extend Featherweight Java with generic classes in the style of GJ (Bracha, Odersky, Stoutamire, and Wadler) and give a detailed proof of type safety. The extended system formalizes for the first time some of the key features of GJ.
Links To Paper
ACM Digital Portal
Bibtex format
@Article{EDI-INF-RR-0590,
author = { Atsushi Igarashi and Benjamin Pierce and Philip Wadler },
title = {Featherweight Java: a minimal core calculus for Java and GJ},
journal = {ACM Transactions on Programming Languages and Systems (TOPLAS)},
publisher = {ACM},
year = 2001,
month = {May},
volume = {23(3)},
pages = {396-450},
doi = {10.1145/503502.503505},
url = {http://portal.acm.org/citation.cfm?id=503505},
}


Home : Publications : Report 

Please mail <reports@inf.ed.ac.uk> with any changes or corrections.
Unless explicitly stated otherwise, all material is copyright The University of Edinburgh