2001
DOI: 10.1145/503502.503505
|View full text |Cite
|
Sign up to set email alerts
|

Featherweight Java

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… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

1
718
0

Year Published

2004
2004
2021
2021

Publication Types

Select...
5
2
1

Relationship

0
8

Authors

Journals

citations
Cited by 786 publications
(719 citation statements)
references
References 23 publications
1
718
0
Order By: Relevance
“….]" delimit an optional part of the syntax, we use x , y, z for variable names, 22 P. Giannini, A. Shaqiri e :: = x | n | tr | fls | F | e+e | if e then e else e | e e | e, e | let [mutable] x :T =e in e | let rec w :T =F in e | x <-e | raise e | try e with x -> e expression F :: = fun x :T ->e function T :: = int | bool | T → T type Figure 1: Syntax of core F# and the overbar sequence notation is used according to [15]. For instance: " x :T =F " stands for " x 1 :T 1 =F 1 · · · x n :T n =F n ".…”
Section: Core F#mentioning
confidence: 99%
“….]" delimit an optional part of the syntax, we use x , y, z for variable names, 22 P. Giannini, A. Shaqiri e :: = x | n | tr | fls | F | e+e | if e then e else e | e e | e, e | let [mutable] x :T =e in e | let rec w :T =F in e | x <-e | raise e | try e with x -> e expression F :: = fun x :T ->e function T :: = int | bool | T → T type Figure 1: Syntax of core F# and the overbar sequence notation is used according to [15]. For instance: " x :T =F " stands for " x 1 :T 1 =F 1 · · · x n :T n =F n ".…”
Section: Core F#mentioning
confidence: 99%
“…We present three type systems: Core JQual, which is a fieldbased, context-insensitive inference system, FS JQual, a field-sensitive extension, and CS/FS JQual, which further adds context-sensitivity. We describe both systems for the source language in Figure 3, which is a variation of Featherweight Java [22] that has been extended with qualifiers. Programs P consists of a sequence of class definitions L. Each class extends exactly one other class, and there is a built-in base class Object.…”
Section: Type Qualifier Inferencementioning
confidence: 99%
“…We formalize type qualifier inference as a system called Core JQual, which operates on a variant of Featherweight Java [22] with optional type qualifier annotations.…”
Section: Introductionmentioning
confidence: 99%
“…for π-calculus-based formalisms [4,5,13,15,17,25], for CORBA [26], for a λ-calculus with side-effects [14], for a multi-threaded functional language [27], and recently, for a W3C standard description language for web services called Choreography Description Language (CDL) [29]. To our knowledge, the integration of session types into an object-oriented language (even a small, core calculus, as in [3,10,18]) has not been attempted so far.…”
Section: Introductionmentioning
confidence: 99%
“…To focus on the introduction of session types, L doos does not include language features such as exceptions [2], synchronisation, serialisation [1], class (down)loading [1,11], code or agent mobility [1,7,28], polymorphism [6,18,27], recursive types [26] or correspondence assertions [4,5]. We believe that the inclusion of such features into L doos is possible, albeit not necessarily trivial.…”
Section: Introductionmentioning
confidence: 99%