×

一种灵活的、基于(C)LP的面向对象程序分析方法。 (英语) Zbl 1179.68030号

安迪·金(编辑),基于逻辑的程序合成和转换。2007年8月23日至24日,第17届国际研讨会,LOPSTR,丹麦康根斯·林比。修订了选定的论文。柏林:施普林格出版社(ISBN 978-3-540-78768-6/pbk)。计算机科学课堂讲稿4915,154-168(2008)。
概要:面向对象程序的静态分析通常依赖于尊重原始语义的中间表示,同时具有更统一和基本的语法。大多数涉及面向对象语言和抽象解释的工作通常省略了该语言的描述,或者只是引用它所表示的控制流图(CFG)。然而,这种形式化的缺乏一方面导致了对转换的正确性缺乏保证,另一方面,它通常将分析与源语言紧密结合在一起。在这项工作中,我们提出了一个分析面向对象语言的框架,在第一阶段,我们将输入程序转换为基于Horn子句的表示。这一方面有助于证明针对简单条件的转换的正确性,另一方面允许应用现有的(约束)逻辑编程分析器来自动导出原始程序语义的安全近似值。这种方法是灵活的,因为第一阶段将分析器与大多数依赖于语言的特性解耦,并且是正确的,因为转换阶段返回的Horn子句集安全地接近输入程序的标准语义。由于使用了成熟的模块化(C)基于LP的分析器,因此所得分析也具有合理的可扩展性。这使我们能够报告中等规模项目的良好结果。
有关整个系列,请参见[Zbl 1154.68018号].

MSC公司:

68甲19 其他编程范式(面向对象、顺序、并发、自动等)
PDF格式BibTeX公司 XML格式引用
全文: 内政部 链接

参考文献:

[1] Albert,E.,Gómez-Zamalloa,M.,Hubert,L.,Puebla,G.:使用逻辑程序的分析和转换验证Java字节码。收录:Hanus,M.(编辑)PADL 2007。LNCS,第4354卷,第124-139页。斯普林格,海德堡(2006)·doi:10.1007/978-3-540-69611-7_8
[2] Alves-Foss,J.(编辑):Java的形式语法和语义。LNCS,第1523卷。施普林格,海德堡(1999)
[3] Bacon,D.F.,Sweeney,P.F.:c++虚拟函数调用的快速静态分析。程序。OOPSLA 1996,SIGPLAN公告31(10),324–341(1996)
[4] Blanchet,B.:面向对象语言的逃逸分析。Java应用程序(TM)。摘自:面向对象编程、系统、语言和应用会议(OOPSLA 1999),第20-34页。ACM,纽约(1999)
[5] Bruynooghe,M.:逻辑程序抽象解释的实用框架。逻辑程序设计杂志10,91–124(1991)·Zbl 0717.68010号 ·doi:10.1016/0743-1066(91)80001-T
[6] Bueno,F.、Cabeza,D.、Carro,M.、Hermenegildo,M.,López-García,P.、Puebla,G.(编辑):Ciao系统。参考手册(v1.10)。计算机科学学院(UPM)技术报告(2004),http://www.ciaohome.org
[7] Chang,B.-Y.E.,Leino,K.R.M.:用外来表达式和堆结构进行抽象解释。收录:Cousot,R.(编辑)VMCAI 2005。LNCS,第3385卷,第147-163页。斯普林格,海德堡(2005)·Zbl 1111.68397号 ·doi:10.1007/978-3-540-30579-8_11
[8] Le Charlier,B.,Van Hentenryck,P.:Prolog通用抽象解释算法的实验评估。美国计算机学会程序设计语言与系统汇刊16(1),35–101(1994)·数字对象标识代码:10.1145/174625.174627
[9] 库索,P.,库索,R.:抽象解释:通过构造或逼近不动点对程序进行静态分析的统一格模型。In:程序。POPL 1977,第238–252页(1977)·doi:10.1145/512950.512973
[10] DeLine,R.,Leino,K.R.M.:BoogiePL:用于检查面向对象程序的类型化过程语言。技术报告MSR-TR-2005-70,Microsoft Research(2005)
[11] Dietrich,S.W.:扩展表:逻辑编程中的备忘录关系。摘自:第四届IEEE逻辑编程研讨会,第264–272页(1987年9月)
[12] Fecht,C.:Gena-一种根据规范生成序言分析器的工具。收录:Mycroft,A.(编辑)SAS 1995。LNCS,第983卷,第418–419页。斯普林格,海德堡(1995)·doi:10.1007/3-540-60360-3_53
[13] Genaim,S.,Spoto,F.:Java字节码的信息流分析。In:程序。VMCAI。LNCS,斯普林格,海德堡(2005)·Zbl 1111.68505号
[14] Gosling,J.、Joy,B.、Steele,G.、Bracha,G.:Java(TM)语言规范,第三版。Addison-Wesley,专业阅读(2005)·兹比尔0865.68001
[15] Hermenegildo,M.,Puebla,G.,Bueno,F.,López-García,P.:使用抽象解释的程序开发(和Ciao系统预处理器)。In:Cousot,R.(编辑)SAS 2003。LNCS,第2694卷,第127-152页。斯普林格,海德堡(2003)·兹比尔1067.68544 ·doi:10.1007/3-540-44898-58
[16] Hermenegildo,M.,Puebla,G.,Marriott,K.,Stuckey,P.:约束逻辑程序的增量分析。ACM TOPLAS 22(2),187–223(2000)·数字对象标识代码:10.1145/349214.3492216
[17] Kowalski,R.,Kuehner,D.:带选择函数的线性分辨率。人工智能227–260(1971)·Zbl 0234.68037号 ·doi:10.1016/0004-3702(71)90012-9
[18] Leavens,G.T.,Baker,A.L.,Ruby,C.:jml的初步设计:java的行为接口规范语言。SIGSOFT软件。工程注释31(3),1–38(2006)·数字对象标识代码:10.1145/127878.1127884
[19] Leroy,X.:Java字节码验证:概述。收录:Berry,G.,Comon,H.,Finkel,A.(编辑)CAV 2001。LNCS,第2102卷,斯普林格,海德堡(2001)·Zbl 0996.68591号 ·数字对象标识代码:10.1007/3-540-44585-4_26
[20] Lev-Ami,T.,Sagiv,S.:TVLA:实施静态分析的系统。收录:Palsberg,J.(编辑)SAS 2000。LNCS,第1824卷,第280-302页。斯普林格,海德堡(2000)·Zbl 0966.68580号 ·doi:10.1007/978-3-540-45099-3_15
[21] Logozzo,F.,Cortesi,A.:抽象解释和面向对象语言:Quovadis?In:程序。第1页。国际。面向对象语言抽象解释研讨会(AIOOL 2005)。ENTCS,Elsevier Science,阿姆斯特丹(2005)
[22] Logozzo,F.:Cibai:一个基于抽象交互的静态分析器,用于java类的模块化分析和验证。摘自:Cook,B.,Podelski,A.(编辑)VMCAI 2007。LNCS,第4349卷,第283–298页。斯普林格,海德堡(2007)·Zbl 1132.68329号 ·数字对象标识代码:10.1007/978-3-540-69738-1_21
[23] Muthukumar,K.,Hermenegildo,M.:使用抽象解释的变量依赖的编译时推导。JLP 13(2/3),315–347(1992)·Zbl 0776.68032号 ·doi:10.1016/0743-1066(92)90035-2
[24] Navas,J.、Méndez-Lojo,M.、Hermenegildo,M.:Java程序的高效、上下文和路径敏感分析框架。In:第九届类Java程序正式技术研讨会FTfJP 2007(2007年7月)
[25] Peralta,J.,Cruz-Carlon,J.:从静态单一赋值形式到确定性程序,然后再回来。In:基于逻辑的程序合成与转换(LOPSTR)国际研讨会(2006年7月)的扩展摘要
[26] Peralta,J.C.,Gallagher,J.,Sağlam,H.:通过分析约束逻辑程序来分析强制程序。收录:Levi,G.(编辑)SAS 1998。LNCS,第1503卷,第246–261页。斯普林格,海德堡(1998)·doi:10.1007/3-540-49727-7_15
[27] Pollet,I.:面向Java抽象解释的通用框架。鲁汶天主教大学计算机科学系博士论文(2004年)
[28] Ruf,E.:针对java的有效同步删除。PLDI 2000,SIGPLAN通知35(5),208–218(2000)·数字对象标识代码:10.1145/349299.349327
[29] Secci,S.,Spoto,F.:面向对象程序的成对共享分析。摘自:SAS,第320–335页(2005年)·Zbl 1141.68378号 ·doi:10.1007/11547662_22
[30] Spoto,F.:Julia:Java字节码通用静态分析器。In:程序。第七届类Java程序正式技术研讨会,FTfJP 2005,苏格兰格拉斯哥(2005年7月)
[31] JOlden套房,http://www-ali.cs.umass.edu/DaCapo/benchmarks.html
[32] Vallee-Rai,R.,Hendren,L.,Sundaresan,V.,Lam,P.,Gagnon,E.,Co,P.:烟尘-Java优化框架。摘自:《1999年CASCON会议录》,第125-135页(1999)
[33] Warren,R.,Hermenegildo,M.,Debray,S.K.:关于逻辑程序的全局流分析的实用性。摘自:第五届逻辑编程国际会议和研讨会,第684-699页。麻省理工学院出版社,剑桥(1988)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。