Java Generics Are Turing Complete
Radu Grigore September 2017 Highlights
Java Generics Are Turing Complete Radu Grigore September 2017 - - PowerPoint PPT Presentation
Java Generics Are Turing Complete Radu Grigore September 2017 Highlights Why do we care? . . . . . . distinguished at ECOOP 2016 But . . . Java is messy! FOOL 2007 Problem Input infinite directed graph two distinguished vertices t
Radu Grigore September 2017 Highlights
. . . . . .
distinguished at ECOOP 2016
FOOL 2007
Input infinite directed graph two distinguished vertices t and t′ Output Is there a finite path t t′ in the given graph?
f (g (x), h ())
f 2(g1(x), h0())
f gxh
x, y, ...are variables C, D, ...have arity 1 Z has arity 0
Example vertex/type: CDCCDEZ
s, t, ...are meta-variables, ranging over types
the inheritance rule
Cx <:: t(x)
means that, for all ground types s, there is an arc
Cs → t(s)
the inheritance rule
Cx <:: t(x)
means that, for all ground types s, there is an arc
Cs → t(s)
class table set of inheritance rules
if
s t
then
Ct → Cs
Theorem It is undecidable whether t t′ according to a given unambiguous class table.
Theorem It is undecidable whether t t′ according to a given unambiguous class table. class table subtype query type checker Y/N/? Turing machine input tape
Theorem It is undecidable whether t t′ according to a given unambiguous class table. class table subtype query type checker Y/N/? Turing machine input tape
eof