typeless programming in java 5.0 with wildcards
With the introduction of Java 5.0 [8] the type system has been extended by parameterized types, type variables, type terms, and wildcards. As a result very complex types can arise. The term Vector >> is for example a correct type in Java 5.0. Considering all that, it is often rather inconvienent to give types like this, explictly. Furthermore there are methods whose principal types would be intersection types. But intersection types are not implemented in Java 5.0. This means that Java 5.0 methods often do not have the principal type which is contradictive to the OOP-Principle of writing re-usable code. This has caused us to develop a Java 5.0 type inference system which assists the programmer by calculating types automatically. This type inference system allows us, to declare method parameters and local variables without type annotations. The type inference algorithm calculates the appropriate and principal types. In this contribution we present the ideas extending type inference for types with wildcards.
type system type inference program design and implementation language design code generation