Mainly concerned with type safety, Featherweight Java, or FJ, is a well known minimal core for Java and Generic Java. However, in the type system of FJ, the treatment of downcast is omitted. In this paper we propose a stronger type system for FJ and FGJ. In order to deal with the cast problems, we introduce some special techniques for types, and also strengthen the types for expressions and methods in terms of the type declaration notations. Supported by the type system and our techniques, we can ensure properties stronger than the ones proved in Igarashi et al's original FJ paper. Examples making the above mentioned contributions clear are illustrated throughout this paper. Furthermore a case study on design patterns showing the advan...
cJ is an extension of Java that allows supertypes, fields, and methods of a class or interface to be...
The contribution of the paper is twofold. First, we provide a general notion of type system supporti...
Class inheritance and method overriding, as provided by standard class-based languages, are not flex...
Mainly concerned with type safety, Featherweight Java, or FJ, is a well known minimal core for Java ...
We implemented a prototype of the type inference algorithm described in the paper "Global Type Infer...
Abstract. Feature-oriented programming (FOP) is a paradigm that in-corporates programming language t...
Feature-oriented programming (FOP) is a paradigm that incorpo-rates programming language technology,...
Confinement properties impose a structure on object graphs which can be used to enforce encapsulatio...
This paper addresses compositional and incremental type checking for object-oriented programming lan...
Abstract. Wildcards extend Java generics by softening the mismatch between subtype and parametric po...
This paper describes a flexible type and effect inference system for Featherweight Java (FJ). The ef...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
In the context of statically-typed, class-based languages, we investigate classes that can be extend...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
cJ is an extension of Java that allows supertypes, fields, and methods of a class or interface to be...
The contribution of the paper is twofold. First, we provide a general notion of type system supporti...
Class inheritance and method overriding, as provided by standard class-based languages, are not flex...
Mainly concerned with type safety, Featherweight Java, or FJ, is a well known minimal core for Java ...
We implemented a prototype of the type inference algorithm described in the paper "Global Type Infer...
Abstract. Feature-oriented programming (FOP) is a paradigm that in-corporates programming language t...
Feature-oriented programming (FOP) is a paradigm that incorpo-rates programming language technology,...
Confinement properties impose a structure on object graphs which can be used to enforce encapsulatio...
This paper addresses compositional and incremental type checking for object-oriented programming lan...
Abstract. Wildcards extend Java generics by softening the mismatch between subtype and parametric po...
This paper describes a flexible type and effect inference system for Featherweight Java (FJ). The ef...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
In the context of statically-typed, class-based languages, we investigate classes that can be extend...
Type-directed programming is an important and widely used paradigm in the design of software. With t...
cJ is an extension of Java that allows supertypes, fields, and methods of a class or interface to be...
The contribution of the paper is twofold. First, we provide a general notion of type system supporti...
Class inheritance and method overriding, as provided by standard class-based languages, are not flex...