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

被引:18
|
作者
Amin, Nada [1 ]
Tate, Ross [2 ]
机构
[1] Ecole Polytech Fed Lausanne, Lausanne, Switzerland
[2] Cornell Univ, Ithaca, NY 14853 USA
关键词
Unsoundness; !text type='Java']Java[!/text; Scala; Null; Existential; Design; Languages; Reliability; Security;
D O I
10.1145/3022671.2984004
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:838 / 848
页数:11
相关论文
共 17 条
  • [1] Java and scala's type systems are unsound: the existential crisis of null pointers
    [J]. 1600, Association for Computing Machinery, 2 Penn Plaza, Suite 701, New York, NY 10121-0701, United States (51):
  • [2] NULLAWAY: Practical Type-Based Null Safety for Java']Java
    Banerjee, Subarno
    Clapp, Lazaro
    Sridharan, Manu
    [J]. ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, : 740 - 750
  • [3] Tracking Null Checks in Open-Source Java']Java Systems
    Osman, Haidar
    Leuenberger, Manuel
    Lungu, Mircea
    Nierstrasz, Oscar
    [J]. 2016 IEEE 23RD INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), VOL 1, 2016, : 304 - 313
  • [4] Taming Wildcards in Java']Java's Type System
    Tate, Ross
    Leung, Alan
    Lerner, Sorin
    [J]. PLDI 11: PROCEEDINGS OF THE 2011 ACM CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2011, : 614 - 627
  • [5] Taming Wildcards in Java']Java's Type System
    Tate, Ross
    Leung, Alan
    Lerner, Sorin
    [J]. ACM SIGPLAN NOTICES, 2011, 46 (06) : 614 - 627
  • [6] Building Java']Java Intelligent Applications Data Mining for Java']Java Type-2 Fuzzy Inference Systems
    Castanon-Puga, Manuel
    Miguel Flores-Parra, Josue
    Ramon Castro, Juan
    Gaxiola-Pacheco, Carelia
    Enrique Palafox-Maestre, Luis
    [J]. INTERNATIONAL CONFERENCE ON COMPUTATIONAL SCIENCE, ICCS 2015 COMPUTATIONAL SCIENCE AT THE GATES OF NATURE, 2015, 51 : 2719 - 2728
  • [7] Diab Industry's Java']Java compiler for embedded systems
    不详
    [J]. COMPUTER, 1998, 31 (11) : 114 - 115
  • [8] Household food insecurity was prevalent in Java']Java during Indonesia's economic crisis
    Studdert, LJ
    Frongillo, EA
    Valois, P
    [J]. JOURNAL OF NUTRITION, 2001, 131 (10): : 2685 - 2691
  • [9] TeJaS: Retrofitting Type Systems for Java']JavaScript
    Lerner, Benjamin S.
    Politz, Joe Gibbs
    Guha, Arjun
    Krishnamurthi, Shriram
    [J]. ACM SIGPLAN NOTICES, 2014, 49 (02) : 1 - 15
  • [10] Juzzy Constrained: Software for Constrained Interval Type-2 Fuzzy Sets and Systems in Java']Java
    D'Alterio, Pasquale
    Garibaldi, Jonathan M.
    John, Robert, I
    Wagner, Christian
    [J]. 2020 IEEE INTERNATIONAL CONFERENCE ON FUZZY SYSTEMS (FUZZ-IEEE), 2020,