Java and Scala's Type Systems are Unsound The Existential Crisis of Null Pointers

We present short programs that demonstrate the unsoundness of Java and Scala's current type systems. In particular, these programs provide parametrically polymorphic functions that can turn any type into any type without (down) casting. Fortunately, parametric polymorphism was not integrated into the Java Virtual Machine (JVM), so these examples do not demonstrate any unsoundness of the JVM. Nonetheless, we discuss broader implications of these findings on the field of programming languages.


Publié dans:
Acm Sigplan Notices, 51, 10, 838-848
Présenté à:
ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Amsterdam, NETHERLANDS, NOV 02-04, 2016
Année
2016
Publisher:
New York, Assoc Computing Machinery
ISSN:
0362-1340
Mots-clefs:
Laboratoires:




 Notice créée le 2017-03-27, modifiée le 2019-03-17

Postprint:
Télécharger le document
PDF

Évaluer ce document:

Rate this document:
1
2
3
 
(Pas encore évalué)