巴特·雅各布斯 带有JML注释的Java程序的最弱前置条件推理。 (英语) Zbl 1073.68024号 J.日志。代数。程序。 58,编号1-2,61-88(2004). 摘要:本文区分了在定理证明器中组织最弱先决条件(WP)微积分的几种不同方法。本文描述了其中两种方法在LOOP项目中的Java实现。这涉及定理证明器PVS的高阶逻辑中的WP基础结构,以及为Java实现自动证明JML规范的相关规则和策略。所有WP规则的可靠性已经在底层Java语义的基础上得到了证明。这些WP-calculi与现有的Hoare逻辑集成在一起,在PVS中形成一个验证工具包:通常使用Hoare的逻辑规则将大型验证任务分解为较小的部分,这些部分可以由其中一个WP策略自动处理。 引用于7文件 MSC公司: 68甲15 编程语言理论 68吨15 定理证明(演绎、解析等)(MSC2010) 关键词:Java语言;程序正确性;程序逻辑;最弱的前提条件 软件:JML公司;电子稳定控制系统/Java;霍尔;PVS公司;环路;卡拉卡拉 PDF格式BibTeX公司 XML格式引用 \textit{B.Jacobs},J.Log。代数。程序。58,编号1--2,61-88(2004;Zbl 1073.68024) 全文: 内政部 参考文献: [1] 范登伯格,J。;Huisman,M。;雅各布斯,B。;Poll,E.,用于验证顺序Java程序的一种类型理论内存模型,(Bert,D.;Choppy,C.;Mosses,P.,《代数开发技术的最新趋势》,《Lect.Notes Comp.Sci.(2000),第1827号,Springer:Springer Berlin》),1-21·兹伯利0966.68554 [2] 范登伯格,J。;Jacobs,B.,Java和JML的LOOP编译器,(Margaria,T.;Yi,W.,《系统构建和分析的工具和算法》,Lect.Notes Comp.Sci.(2001)第2031号,Springer:Springer Berlin),299-312·Zbl 0978.68708号 [3] 范登伯格,J。;雅各布斯,B。;Poll,E.,《JavaCard应用程序标识符类的形式规范和验证》(Attali,I.;Jensen,Th.,《智能卡上的Java:编程和安全》,Lect.Notes Comp.Sci.(2001)中的编号2041,Springer:Springer Berlin),137-150·Zbl 0980.68685号 [4] de Boer,F.S。;Pierik,C.,带注释的面向对象程序的计算机辅助规范和验证,(Jacobs,B.;Rensink,A.,开放式基于对象的分布式系统的形式化方法V(2002),Kluwer学术出版社),163-177·Zbl 1048.68050号 [5] 布鲁内斯,C.-B。;范登伯格,J。;Jacobs,B.,为智能卡指定和验证Java中的十进制表示,(Kirchner,H.;Ringeisesen,C.,代数方法论和软件技术。代数方法论和软件技术,Lect.Notes Comp.Sci.(2002)中的2422号,施普林格:施普林格柏林),304-318 [6] Chen,Z.,《智能卡的Java卡技术》,《Java系列》(2000年),Addison-Wesley [7] Dijkstra,E.W.,编程学科(1976),普伦蒂斯·霍尔·Zbl 0286.00013号 [8] C.Flanagan、K.R.M.Leino、M.Lillibridge、G.Nelson、J.B.Saxe、R.Stata,Java扩展静态检查,摘自:2002年ACM SIGPLAN编程语言设计与实现会议(PLDI)论文集,SIGPLAN通知第37(5)卷,ACM,2002年,第234-245页;C.Flanagan、K.R.M.Leino、M.Lillibridge、G.Nelson、J.B.Saxe、R.Stata,Java扩展静态检查,摘自:2002年ACM SIGPLAN编程语言设计与实现会议(PLDI)论文集,SIGPLAN通知第37(5)卷,ACM,2002年,第234-245页 [9] Gordon,M.J.C.,《在高阶逻辑中实现编程逻辑的机械化》(Birtwistle,G.;Subrahmanyam,P.A.,《硬件验证和自动定理证明的当前趋势》,《计算机科学学报》(1989),施普林格:施普林格-柏林),387-489 [10] 戈登,M.J.C。;Melham,T.F.,《HOL简介:高阶逻辑的定理证明环境》(1993),剑桥大学出版社·Zbl 0779.68007号 [11] J.Gosling,B.Joy,G.Steele,G.Bracha,Java语言规范第二版,Java系列,Addison-Wesley,2000年,可从<_>获得;J.Gosling,B.Joy,G.Steele,G.Bracha,Java语言规范第二版,Java系列,Addison Wesley,2000,可从<_>获得 [12] Gries,D.,《编程科学》(1981),斯普林格出版社·Zbl 0472.68003号 [13] 瓜斯帕里,D。;Marceau,C。;Polak,W.,Ada程序的形式验证,IEEE Trans。软件工程,16,9,1058-1075(1990) [14] Homeier,P.V。;Martin,D.F.,机械验证验证条件生成器,The Compute。J.,38,2,131-141(1995) [15] M.Huisman,《用PVS和Isabelle推理高阶逻辑中的JAVA程序》,奈梅亨大学博士论文,2001年;M.Huisman,《用PVS和Isabelle推理高阶逻辑中的JAVA程序》,奈梅亨大学博士论文,2001年 [16] Huisman,M。;雅各布斯,B。;van den Berg,J.,《类库验证案例研究:Java的向量类》,《国际软件工具技术》。事务处理。,3, 3, 332-352 (2001) ·Zbl 0993.68060号 [17] Jacobs,B.,Java异常机制的形式化,(Sands,D.,编程语言和系统(ESOP))。编程语言与系统(ESOP),Lect第2028期。票据构成。科学。(2001),《施普林格:柏林施普林格》,284-301·Zbl 0977.68579号 [18] B.Jacobs,M.Oostdijk,M.Warnier,安全支付小程序的源代码验证,J.Logic Alg。程序。,这个问题;B.Jacobs,M.Oostdijk,M.Warnier,安全支付小程序的源代码验证,J.Logic Alg。程序。,这个问题·Zbl 1066.68005号 [19] 雅各布斯,B。;Poll,E.,《Java建模语言JML的逻辑》(Hussmann,H.,《软件工程基本方法》(FASE))。软件工程基本方法(FASE),Lect 2029号。票据构成。科学。(2001),《施普林格:柏林施普林格》,284-299·Zbl 0977.68588号 [20] Leavens,G.T。;贝克律师事务所。;Ruby,C.,JML:详细设计的符号,(Kilov,H.;Rumpe,B.,《商业和系统的行为规范》(1999),Kluwer),175-188 [21] G.T.Leavens,A.L.Baker,C.Ruby,《JML的初步设计:Java的行为接口规范语言》,技术代表98-06,爱荷华州大学计算机科学系,可从<>获得,1999年;G.T.Leavens,A.L.Baker,C.Ruby,《JML的初步设计:Java的行为接口规范语言》,技术代表98-06,爱荷华州大学计算机科学系,可从<>获得,1999年 [22] K.R.M.Leino,J.B.Saxe,R.Stata,通过保护命令检查Java程序,收录于:B.Jacobs,G.T.Leavens,P.Müller,A.Poetzsch-Heffter(编辑),Java程序的形式化技术,ECOOP’99研讨会论文集。技术代表251,Fernuniversität Hagen,1999,也作为技术说明1999-002,Compaq系统研究中心,Palo Alto;K.R.M.Leino,J.B.Saxe,R.Stata,通过保护命令检查Java程序,收录于:B.Jacobs,G.T.Leavens,P.Müller,A.Poetzsch-Heffter(编辑),Java程序的形式化技术,ECOOP’99研讨会论文集。技术代表251,Fernuniversität Hagen,1999,也作为技术说明1999-002,Compaq系统研究中心,Palo Alto [23] C.Marché,C.Paulin-Mohring,X.Urbain,用于认证JML中注释的JAVA/JAVACARD程序的KRAKATOA工具,J.Logic Alg。程序。,这个问题;C.Marché,C.Paulin-Mohring,X.Urbain,用于认证JML中注释的JAVA/JAVACARD程序的KRAKATOA工具,J.Logic Alg。程序。,这个问题·Zbl 1073.68678号 [24] Meijer,H。;Poll,E.,《迈向Java卡API的完整正式规范》,(Attali,I.;Jensen,Th.,《智能卡编程与安全》,Lect.Notes Comp.Sci.(2001)第2140号,Springer:Springer Berlin),165-178·Zbl 1002.68667号 [25] Meyer,J。;Poetzsch-Heffter,A.,《交互式程序证明程序的体系结构》,(Graf,S.;Schwartzbach,M.,《系统构建和分析的工具和算法》,《系统构造与分析的工具与算法》,Lect.Notes Comp.Sci.(2000),编号1785,Springer:Springer Berlin),63-77·Zbl 0971.68585号 [26] Owre,S。;Rushby,J.M。;北卡罗来纳州Shankar。;von Henke,F.,《容错体系结构的形式验证:PVS设计序言》,IEEE Trans。软件工程,21,2,107-125(1995) [27] 诗人赫夫特。;Müller,P.,《顺序Java的编程逻辑》,(Swierstra,S.D.,《编程语言和系统》,《程序语言和系统,Lect.Notes Comp.Sci.(1999)第1576号,Springer:Springer Berlin),162-176 [28] 波尔,E。;范登伯格,J。;Jacobs,B.,JML中JavaCard API的正式规范:APDU类,Comput。网络,36,4,407-421(2001) [29] Loop Project,可从<>获得;循环项目,可从<>获得 [30] N.Rauch,A.Poetzsch-Heffter,谓词转换作为证明策略,收录于:Java程序的形式化技术,《ECOOP’02研讨会论文集》,2002年;N.Rauch,A.Poetzsch-Heffter,谓词转换作为证明策略,收录于:Java程序的形式化技术,ECOOP’02研讨会论文集,2002年 [31] 扩展静态检查器ESC/Java,Compaq系统研究中心,可从<>获得;扩展静态检查器ESC/Java,Compaq系统研究中心,可从<>获得 此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。