Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Type inclusion constraints and type inference
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Efficient inference of partial types
Journal of Computer and System Sciences
An Efficient Unification Algorithm
ACM Transactions on Programming Languages and Systems (TOPLAS)
The Definition of Standard ML
The Java Language Specification
The Java Language Specification
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Making Type Inference Practical
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Converting java programs to use generic libraries
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Efficiently refactoring java applications to use generic libraries
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Typeless programming in Java 5.0 with wildcards
Proceedings of the 5th international symposium on Principles and practice of programming in Java
Proceedings of the 6th international symposium on Principles and practice of programming in Java
Java Type Unification with Wildcards
Applications of Declarative Programming and Knowledge Management
Hi-index | 0.00 |
With the introduction of Java 5.0 [9] the type system has been extended by parameterized types, type variables, type terms, and wildcards. As a result very complex types can arise. The termVectoris for example a correct type in Java 5.0.Considering all that, it is often rather difficult for a programmer to recognize whether such a complex type is the correct one for a given method or not. Furthermore there are methods whose principle types would be intersection types. But intersection types are not implemented in Java 5.0. This means that Java 5.0 methods often don't have the principle 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 principle types.We implement the algorithm in Java using the observer design pattern.