Java and scala's type systems are unsound: the existential crisis of null pointers
Accepted version
Peer-reviewed
Repository URI
Repository DOI
Change log
Authors
Abstract
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.
Description
Journal Title
Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
Conference Name
Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications
Journal ISSN
Volume Title
Publisher
Association for Computing Machinery (ACM)
Publisher DOI
Rights and licensing
Except where otherwised noted, this item's license is described as http://www.rioxx.net/licenses/all-rights-reserved
