Completing the Functional Approach in Object-Oriented Languages
Martin Pluemicke

TL;DR
This paper presents Java-TX, an extension of Java that introduces global type inference and real function types for lambda expressions, aiming to complete the functional features in object-oriented languages.
Contribution
It proposes a comprehensive integration of functional features into Java, including global type inference and function types, with a focus on type inference and bytecode translation.
Findings
Global type inference allows omission of type annotations.
Function types are integrated into Java's type system.
Type parameter inference is automated for classes and methods.
Abstract
Over the last two decades practically all object-oriented programming languages have introduced features that are well-known from functional programming languages. But many features that were introduced were fragmentary. In Java-TX we address the latter features and propose a completion. Java-TX (i.e. Type eXtended) is a language based on Java. The predominant new features are global type inference and real function types for lambda expressions. Global type inference means that all type annotations can be omitted, and the compiler infers them without losing the static type property. We introduce the function types in a similar fashion as in Scala but additionally integrated them into the Java target-typing as proposed in the so-called strawman approach. In this paper, we provide an integrated presentation of all Java-TX features. The focus is therby on the automatic inference of type…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
