We present FJ&$\lambda$, a new core calculus that extends Featherweight Java(FJ) with interfaces, supporting multiple inheritance in a restricted form,$\lambda$-expressions, and intersection types. Our main goal is to formalisehow lambdas and intersection types are grafted on Java 8, by studying theirproperties in a formal setting. We show how intersection types play asignificant role in several cases, in particular in the typecast of a$\lambda$-expression and in the typing of conditional expressions. We alsoembody interface \emph{default methods} in FJ&$\lambda$, since they increasethe dynamism of $\lambda$-expressions, by allowing these methods to be calledon $\lambda$-expressions. The crucial point in Java 8 and in our calculus is that ...
AbstractA relation between recursive object types, called matching, has been proposed [8] to provide...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
International audienceJava 8 was released recently. Along with lambda expressions, a new language co...
We present FJ&$lambda$, a new core calculus that extends Featherweight Java (FJ) with interfaces, s...
We show how Java intersection types can be freed from their confinement in type casts, in such a way...
We show how Java intersection types can be freed from their confinement in type casts, in such a way...
We propose a conservative extension of the polymorphic lambda calculus ()# * ) as an intermediate la...
We show that a minimal subset of Java 8 excluding classes supports a simple and natural programming ...
AbstractIntersection types are well known to type theorists mainly for two reasons. Firstly, they ty...
We present FJig, a simple calculus where basic building blocks are classes in the style of Featherwe...
\Lname\ is a minimal core calculus that extends Featherweight (generic) Java, \FGJ, with lambda expr...
We consider semantics for the class-based object-oriented calculus Featherweight Java (without casts...
Abstract. We introduce a direct encoding of the typed λ-calculus into Java: for any Java types A, B ...
AbstractWe present FJig, a simple calculus where basic building blocks are classes in the style of F...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
AbstractA relation between recursive object types, called matching, has been proposed [8] to provide...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
International audienceJava 8 was released recently. Along with lambda expressions, a new language co...
We present FJ&$lambda$, a new core calculus that extends Featherweight Java (FJ) with interfaces, s...
We show how Java intersection types can be freed from their confinement in type casts, in such a way...
We show how Java intersection types can be freed from their confinement in type casts, in such a way...
We propose a conservative extension of the polymorphic lambda calculus ()# * ) as an intermediate la...
We show that a minimal subset of Java 8 excluding classes supports a simple and natural programming ...
AbstractIntersection types are well known to type theorists mainly for two reasons. Firstly, they ty...
We present FJig, a simple calculus where basic building blocks are classes in the style of Featherwe...
\Lname\ is a minimal core calculus that extends Featherweight (generic) Java, \FGJ, with lambda expr...
We consider semantics for the class-based object-oriented calculus Featherweight Java (without casts...
Abstract. We introduce a direct encoding of the typed λ-calculus into Java: for any Java types A, B ...
AbstractWe present FJig, a simple calculus where basic building blocks are classes in the style of F...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
AbstractA relation between recursive object types, called matching, has been proposed [8] to provide...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
International audienceJava 8 was released recently. Along with lambda expressions, a new language co...