×

JVM中的类型安全:Java 2 SDK 1中的一些问题。2和建议的解决方案。 (英语) Zbl 0999.68034号

摘要:在为Java虚拟机(JVM)组件开发正式规范的过程中,我们发现了Sun的Java 2 SDK 1.2的字节码验证器中的一些细微错误。这些导致类型安全违规的错误与引用类型的命名有关。在某些情况下,可以通过委托类加载器伪造这些名称。这些缺陷暴露了JVM规范中的一些不准确和歧义。
我们针对所有这些错误提出了几种解决方案。特别是,我们提出了一种利用子类型加载约束的通用解决方案。这些约束补充了Java 2平台中引入的相等加载约束,并由字节码验证器在检查类类型的分配兼容性时发布。通过发布约束而不是解析和加载类,我们的解决方案中的字节码验证器与JVM的其余部分有了一个更干净的接口,并允许延迟加载。我们简要介绍了这种方法的数学形式化及其类型安全结果的一些摘录。

MSC公司:

68甲15 编程语言理论
68问题65 抽象数据类型;代数规范

关键词:

Java 2平台
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] 实现JVM字节码验证器的可证明正确的实现。1998年《OOPSLA’98 Java正式基础研讨会论文集》。
[2] Java加载和字节码验证规范。1998年第五届ACM计算机和通信安全会议记录。
[3] Java的正式规范?用于对象、方法和子例程的虚拟机指令。Java的形式语法和语义?(计算机科学讲义,第1523卷),(编辑)。施普林格:柏林,1999年。
[4] 钱,《美国计算机学会编程语言与系统汇刊》22,第638页–(2000年)·数字对象标识代码:10.1145/363911.363915
[5] Java类加载的正式规范。第十五届面向对象编程、系统、语言和应用会议论文集。ACM出版社,2000年;325-336. 长版本可在http://www.kestrel.edu/java [2000].
[6] Specware:对编写软件的正式支持。第三届程序构造数学会议论文集(计算机科学讲义,第947卷),(编辑)。施普林格:柏林,1995年;399-422. ·doi:10.1007/3-540-60117-1_22
[7] Kimera项目页面。http://kimera.cs.washington.edu。
[8] 太阳微系统公司。Java 2 SDK,标准版,版本。1.2. 可在http://java.sun.com。
[9] Java?虚拟机规范(第2版)。Addison-Wesley,1999年。
[10] 太阳微系统公司。Java 2 SDK标准版。1.3. 可在http://java.sun.com。
[11] Java中的动态类加载?虚拟机。第13届面向对象编程、系统、语言和应用会议论文集。ACM出版社,1998年;36-44.
[12] Java不是类型安全的。可在http://www.research.att.com/vj/bug.html [1997].
[13] 太阳微系统公司。Java开发工具包,版本。1.1. 可在http://java.sun.com。
[14] 仔细分析类型欺骗。JIT’99 Java-Informations-Tage 1999。施普林格:柏林,1999年;290-296.
[15] 验证链接:动态链接移动代码的模块化验证架构。1998年ACM SIGSOFT第六届软件工程基础国际研讨会论文集;222-230.
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。