×

Isabelle/HOL中Java的Hoare逻辑。 (英语) 兹比尔0997.68019

摘要:本文为Java Card的一个子集提供了一个Hoare风格的演算,我们称之为Java\(^{\ell ight}\)。特别是,该语言包括副作用表达式、相互递归、动态方法绑定、完全异常处理和静态类初始化。
部分正确性的Hoare逻辑不仅被证明是合理的(我们在其他地方详细描述了Java的操作语义),甚至是完整的。这是可证明完整的面向对象语言的第一个逻辑。完整性证明使用了最通用公式方法的改进。可靠性证明为类型安全的作用提供了新的见解。这项工作的进一步副产品是处理副作用表达式及其结果的新的通用方法,发现可能最强的结果规则,以及用于相互递归的灵活调用规则。我们还提供了一个小型但非平凡的应用示例。
所有的定义和证明都是用交互式定理证明器Isabelle/HOL进行的。这不仅保证了严格的定义,而且使所得结果具有最大的可信度。

MSC公司:

68甲15 编程语言理论
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[1] Java语言规范。Addison-Wesley,1996年·Zbl 0865.68001号
[2] 证明Java类型的可靠性。Java的形式语法和语义(计算机科学讲义,第1523卷),(编辑)。施普林格:柏林,1999年;83-118. ·doi:10.1007/3-540-48737-93
[3] 描述Java的语义并证明类型的可靠性。Java的形式语法和语义(计算机科学讲义,第1523卷),(编辑)。施普林格:柏林,1999年;41-82. ·doi:10.1007/3-540-48737-92
[4] 等。项目LOOP。http://www.cs.kun.nl/?bart/LOOP网站/ [1998].
[5] 关于Java类的推理(初步报告)。1998年ACM面向对象编程:系统、语言和应用研讨会论文集;329-340页。
[6] 通过带有突然终止的霍尔逻辑进行Java程序验证。软件工程的基本方法(计算机科学讲义,第1783卷)。施普林格:柏林,2000年;284-303之间·文件编号:10.1007/3-540-46428-X20
[7] 使用PVS和Isabelle在高阶逻辑中验证Java程序。奈梅亨大学博士论文,2001年。http://www-sop.inria.fr/oasis/personnel/Marieke.Huisman/thesis.ps.gz。
[8] 绿洲项目:Java语义。http://www-sop.inria.fr/oasis/java/java_sem.html [1998].
[9] Java的正式可执行语义。1998年《OOPSLA’98 Java正式基础研讨会论文集》。
[10] 通过保护命令检查Java程序。《Java程序的形式化技术》,雅各布斯B、利文斯GT、米勒P、波茨施赫夫特A(编辑)。技术报告251,Fernniversität Hagen。http://gatekeeper.dec.com/pub/dec/SRC/technical-notes/abstracts/SRC-tn-1999-002.html [1999].
[11] 面向对象程序的逻辑。技术报告SRC-161,康柏SRC,1998年·Zbl 0913.68025号
[12] 在高阶逻辑定理证明器中实现对象的程序逻辑。高阶逻辑中的定理证明:第13届国际会议,TPHOLs 2000(计算机科学讲义,第1869卷),(编辑)。施普林格:柏林,2000年;267-282. ·Zbl 0974.68185号 ·doi:10.1007/3-540-44659-1_17
[13] 应用面向对象程序的子类型、模块规范和模块验证。《技术报告92-28d》,爱荷华州立大学计算机科学系,1992年;1994年修订。
[14] JML的初步设计:一种Java行为接口规范语言。技术报告98-06l,爱荷华州立大学计算机科学系,1998年。http://www.cs.iastate.edu/leavens/JML.html。
[15] Java建模语言JML的逻辑。技术报告CSI-R0018,CSI。http://www.cs.kun.nl/csi/reports/info/csi-R0018.html [2000].
[16] 一种用于顺序Java的编程逻辑。程序设计语言与系统(ESOP’99)(《计算机科学讲义》,第1576卷),(编辑)。施普林格:柏林,1999年;162-176. ·doi:10.1007/3-5440-49099-X_11
[17] 宇宙:控制表象暴露的类型系统。《编程语言与编程基础》,Poetzsch-Heffter A,Meyer J(编辑)。技术报告263,Fernniversität Hagen。http://www.informatik.fernuni-hagen.de/pi5/publications.html [1999].
[18] POOL序列版本的证明理论。未发布。
[19] 面向对象的WP-演算。软件科学和计算结构基础(计算机科学讲义,第1578>卷)。施普林格:柏林,1999年;135-149. ·doi:10.1007/3-540-49019-110
[20] 巴厘岛项目。http://isabelle.in.tum.de/巴厘岛/ [1998].
[21] 霍尔逻辑和VDM:机器检查的可靠性和完整性证明。博士论文,ECS-LFCS-98-392,LFCS,1998年。
[22] 分析Isabelle/HOL中的Java:形式化、类型安全和Hoare逻辑。慕尼黑理工大学博士论文。http://www4.in.tum.de/?oheimb/diss/ [2001].
[23] Java卡技术。太阳微系统公司。http://java.sun.com/products/javacard/ [1999].
[24] Javalight的公理语义。Java程序的形式技术,Drossopoulou S,Eisenbach S,Jacobs B,Leavens GT,Müller P,Poetzsch-Heffter A(编辑)。技术报告2692000年5月,Fernniversität Hagen。http://isabelle.in.tum.de/Bali/papers/ECOP00.html [2000].
[25] Isabelle/HOL中Javalight的公理语义。Drossopoulou S、Eisenbach S、Jacobs B、Leavens GT、Müller P、Poetzsch-Heffter A(编辑)。俄勒冈州研究生院CSE 00-009技术报告。TPHOLs 2000补充诉讼。http://isabelle.in.tum.de/Bali/papers/TPHOLs00.html[2000]。
[26] Hoare,ACM通信12第576页–(1969年)·Zbl 0179.23105号 ·电话:10.1145/363235.363259
[27] Krzysztof,《美国计算机学会编程语言与系统汇刊》3,第431页–(1981年)·Zbl 0471.68006号 ·数字对象标识代码:10.1145/357146.357150
[28] 伊莎贝尔:一个一般定理证明者(计算机科学讲义,第828卷),(编辑)。施普林格:柏林。http://isabelle.in.tum.de/ [1994]. ·Zbl 0825.68059号 ·doi:10.1007/BFb0030541
[29] Church,《符号逻辑杂志》5,第56页–(1940)·Zbl 0023.28901号 ·doi:10.2307/2266170
[30] 爱丁堡LCF:计算的机械逻辑(计算机科学讲义,第78卷)。施普林格:柏林,1979年·Zbl 0421.68039号 ·数字对象标识代码:10.1007/3-540-09724-4
[31] 一般证明。http://www.proofgeneral.arg/ [1999].
[32] (编辑)。HOL简介:高阶逻辑的定理证明环境。剑桥大学出版社:英国剑桥,1993年·Zbl 0779.68007号
[33] 伊莎贝尔的逻辑:HOL。伊莎贝尔:一般定理证明者(计算机科学讲义,第828卷)。施普林格:柏林。http://isabelle.in.tum.de/doc/logics-HOL.pdf [1994].
[34] Isabelle/HOL库。http://isabelle.in.tum.de/library/HOL/。
[35] 伊莎贝尔/霍尔。教程。http://isabelle.in.tum.de/doc/tutorial.pdf[2001]。
[36] 机器检查Java规范:证明类型安全性。Java的形式语法和语义(计算机科学讲义,第1523卷),(编辑)。施普林格:柏林。http://isabelle.in.tum.de/Bali/papers/Spriger98.html [1999]. ·doi:10.1007/3-540-48737-94
[37] Strachey,《高阶和符号计算》13,第11页–(2000)·Zbl 0949.68510号 ·doi:10.1023/A:10100000313106
[38] Parnas,《ACM通讯》15第330页–(1972年)·数字对象标识代码:10.1145/355602.361309
[39] 有在HOL中嵌入硬件描述语言的经验。电路设计中的定理证明者(eds.)。北霍兰德/爱思唯尔,1992年;129-156.
[40] 库克,《SIAM计算机杂志》7第70页–(1978年)·Zbl 0374.68009号 ·数字对象标识代码:10.1137/0207005
[41] 迭代程序正确性的证明规则系统?一些符号和组织建议。未出版,1982年。
[42] 适用于Isar的Hoare逻辑公式。http://isabelle.in.tum.de/library/HOL/Isar_examples/Hoare.html [2000].
[43] 使用VDM的系统程序开发(计算机科学国际系列)(第2版)。普伦蒂斯·霍尔:恩格尔伍德悬崖,新泽西州,1990年。
[44] 辅助变量和递归过程。软件开发理论与实践(计算机科学讲义,第1214卷)。施普林格:柏林,1997年;697-711. ·doi:10.1007/BFb0030635
[45] 霍米耶,《计算机杂志》,第38页,第131页–(1995年)·doi:10.1093/comjnl/38.2.131
[46] 科瓦尔托夫斯基,《信息学报》第7卷第357页–(1977年)·Zbl 0325.68010号 ·doi:10.1007/BF00289468
[47] Boehm,《ACM编程语言和系统汇刊》7,第637页–(1981年)·兹比尔0575.68011 ·doi:10.11145/4472.4474
[48] 朝向可靠的模块化程序。加州理工学院博士论文,1995年;技术报告CS-TR-95-03。
[49] Semantik和验证。讲稿,德语,1997年。
[50] 用于相互递归和局部变量的Hoare逻辑。软件技术和理论计算机科学基础(计算机科学讲稿,第1738卷),(编辑)。施普林格:柏林。http://isabelle.in.tum.de/Bali/papers/FSTTCS99.html [1999]. ·doi:10.1007/3-540-46691-6_13
[51] 相互递归程序的机械验证。《第十三届自动扣除国际会议论文集》(计算机科学讲义,第1104卷),(编辑)。施普林格:柏林,1996年;201-215.
[52] 面向对象程序的模块化规范和验证。博士论文,FernUniversität Hagen,2001年。出现·Zbl 0974.68035号
[53] 一个完整的公理系统,用于证明有关递归和非递归程序的断言。技术报告75,多伦多大学计算机科学系,1975年。
[54] 处理相互递归。个人通信,1999年4月。
[55] 交互式程序证明程序的体系结构。TACAS00,《系统构建和分析的工具和算法》(计算机科学讲义,第1785卷),(编辑)。施普林格:柏林,2000年;63-77. ·doi:10.1007/3-540-46419-06
[56] 等。项目验证。http://www.cs.kun.nl/VerifiCard(验证卡)/ [2001].
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。