×

带有JML注释的Java程序的最弱前置条件推理。 (英语) Zbl 1073.68024号

摘要:本文区分了在定理证明器中组织最弱先决条件(WP)微积分的几种不同方法。本文描述了其中两种方法在LOOP项目中的Java实现。这涉及定理证明器PVS的高阶逻辑中的WP基础结构,以及为Java实现自动证明JML规范的相关规则和策略。所有WP规则的可靠性已经在底层Java语义的基础上得到了证明。这些WP-calculi与现有的Hoare逻辑集成在一起,在PVS中形成一个验证工具包:通常使用Hoare的逻辑规则将大型验证任务分解为较小的部分,这些部分可以由其中一个WP策略自动处理。

MSC公司:

68甲15 编程语言理论
68吨15 定理证明(演绎、解析等)(MSC2010)
PDF格式BibTeX公司 XML格式引用
全文: 内政部

参考文献:

[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的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。