Featherweight Java']Java - A minimal core calculus for Java']Java and GJ

被引:91
|
作者
Igarashi, A [1 ]
Pierce, B
Wadler, P
机构
[1] Univ Penn, Dept Comp & Informat Sci, Philadelphia, PA 19104 USA
[2] Lucent Technol, Bell Labs, Murray Hill, NJ 07974 USA
关键词
theoretical foundations; language design and implementation;
D O I
10.1145/320385.320395
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 full 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 syntax, type rules, and operational semantics of Featherweight Java fit on one page, making it easier to understand 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 sketch a, proof of type safety. The extended system formalizes for the first time some of the key features of GJ.
引用
收藏
页码:132 / 146
页数:15
相关论文
共 50 条
  • [1] Featherweight Java']Java: A minimal core calculus for Java']Java and GJ
    Igarashi, A
    Pierce, BC
    Wadler, P
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2001, 23 (03): : 396 - 450
  • [2] Featherweight Wrap Java']Java
    Bettini, Lorenzo
    Capecchi, Sara
    Giachino, Elena
    [J]. APPLIED COMPUTING 2007, VOL 1 AND 2, 2007, : 1094 - +
  • [3] A core calculus for Java']Java exceptions
    Ancona, D
    Lagorio, G
    Zucca, E
    [J]. ACM SIGPLAN NOTICES, 2001, 36 (11) : 16 - 30
  • [4] JAVA']JAVA & LAMBDA: A FEATHERWEIGHT STORY
    Bettini, Lorenzo
    Bono, Viviana
    Dezani-Ciancaglini, Mariangiola
    Giannini, Paola
    Venneri, Betti
    [J]. LOGICAL METHODS IN COMPUTER SCIENCE, 2018, 14 (03)
  • [5] Lightweight confinement for Featherweight Java']Java
    Zhao, T
    Palsberg, J
    Vitek, J
    [J]. ACM SIGPLAN NOTICES, 2003, 38 (11) : 135 - 148
  • [6] SFJ: An Implementation of Semantic Featherweight Java']Java
    Usov, Artem
    Dardha, Ornela
    [J]. COORDINATION MODELS AND LANGUAGES, COORDINATION 2020, 2020, 12134 : 153 - 168
  • [7] A Generic Type System for Featherweight Java']Java
    Schoepp, Ulrich
    Xu, Chuangjie
    [J]. PROCEEDINGS OF THE 23RD ACM INTERNATIONAL WORKSHOP ON FORMAL TECHNIQUES FOR JAVA-LIKE PROGRAMS (FTFJP '21), 2021, : 9 - 15
  • [8] Featherweight Java']Java with dynamic and static overloading
    Bettini, Lorenzo
    Capecchi, Sara
    Venneri, Betti
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2009, 74 (5-6) : 261 - 278
  • [9] Safe Commits for Transactional Featherweight Java']Java
    Thi Mai Thuong Tran
    Steffen, Martin
    [J]. INTEGRATED FORMAL METHODS, 2010, 6396 : 290 - 304
  • [10] Lifted Java']Java: A Minimal Calculus for Translation Polymorphism
    Ingesman, Matthias Diehn
    Ernst, Erik
    [J]. OBJECTS, MODELS, COMPONENTS, PATTERNS, TOOLS 2011, 2011, 6705 : 179 - 193