Java generics are turing complete
39 Citations•2016•
Radu Grigore
It follows that subtype checking in Java is undecidable, which answers a question posed by Kennedy and Pierce in 2007 and also follows that Java's type checker can recognize any recursive language, which improves a result of Gill and Levy from 2016.
Abstract
This paper describes a reduction from the halting problem of Turing machines to subtype checking in Java. It follows that subtype checking in Java is undecidable, which answers a question posed by Kennedy and Pierce in 2007. It also follows that Java's type checker can recognize any recursive language, which improves a result of Gill and Levy from 2016. The latter point is illustrated by a parser generator for fluent interfaces.