java generics are turing complete
play

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


  1. Java Generics Are Turing Complete Radu Grigore September 2017 Highlights

  2. Why do we care?

  3. . . . . . .

  4. distinguished at ECOOP 2016

  5. But . . . Java is messy!

  6. FOOL 2007

  7. Problem Input infinite directed graph two distinguished vertices t and t ′ Output Is there a finite path t � t ′ in the given graph?

  8. Vertices: Types f ( g ( x ) , h ())

  9. Vertices: Types f 2 ( g 1 ( x ) , h 0 ())

  10. Vertices: Types f gxh

  11. Vertices: Types 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

  12. Arcs: Inheritance Rules the inheritance rule Cx < :: t ( x ) means that, for all ground types s , there is an arc Cs → t ( s )

  13. Arcs: Inheritance Rules 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

  14. Arcs: Contravariance if s � t then Ct → Cs

  15. Theorem It is undecidable whether t � t ′ according to a given unambiguous class table.

  16. Theorem It is undecidable whether t � t ′ according to a given unambiguous class table. Turing machine input tape subtype query class table type checker Y/N/?

  17. Theorem It is undecidable whether t � t ′ according to a given unambiguous class table. applies to Java! Turing machine input tape subtype query class table type checker Y/N/?

  18. eof

Recommend


More recommend