000227019 001__ 227019
000227019 005__ 20190317000653.0
000227019 0247_ $$2doi$$a10.1145/2983990.2984004
000227019 022__ $$a0362-1340
000227019 02470 $$2ISI$$a000393581000048
000227019 037__ $$aCONF
000227019 245__ $$aJava and Scala's Type Systems are Unsound The Existential Crisis of Null Pointers
000227019 269__ $$a2016
000227019 260__ $$bAssoc Computing Machinery$$c2016$$aNew York
000227019 300__ $$a11
000227019 336__ $$aConference Papers
000227019 520__ $$aWe 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.
000227019 6531_ $$aUnsoundness
000227019 6531_ $$aJava
000227019 6531_ $$aScala
000227019 6531_ $$aNull
000227019 6531_ $$aExistential
000227019 6531_ $$aDesign
000227019 6531_ $$aLanguages
000227019 6531_ $$aReliability
000227019 6531_ $$aSecurity
000227019 700__ $$0246589$$g164625$$uEcole Polytech Fed Lausanne, Lausanne, Switzerland$$aAmin, Nada
000227019 700__ $$aTate, Ross
000227019 7112_ $$dNOV 02-04, 2016$$cAmsterdam, NETHERLANDS$$aACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA)
000227019 773__ $$j51$$tAcm Sigplan Notices$$k10$$q838-848
000227019 8564_ $$uhttps://infoscience.epfl.ch/record/227019/files/unsound-oopsla.pdf$$zPostprint$$s220114$$yPostprint
000227019 909C0 $$xU10409$$0252187$$pLAMP
000227019 909CO $$ooai:infoscience.tind.io:227019$$qGLOBAL_SET$$pconf$$pIC
000227019 917Z8 $$x164625
000227019 937__ $$aEPFL-CONF-227019
000227019 973__ $$rREVIEWED$$sPUBLISHED$$aEPFL
000227019 980__ $$aCONF