×

兹马思-数学第一资源

用于Java字节码本地化分析的魔术集。(英语) Zbl 1244.68052
本文开发了一种程序转换技术,可以很好地将基于指称语义的静态分析的范围扩展到描述Java字节码的内部行为。这克服了这种静态分析的主要局限性,传统的静态分析只能对代码行为进行功能建模,即输入/输出。所提出的技术是基于一个魔术集转换,类似于那些已经被用于函数和逻辑语言,它在不改变程序语义的情况下向程序添加新的代码块(只有字节码块的结构被转换,而字节码本身保持不变)。这些块的函数行为捕捉程序在插入点的内部行为。从操作语义的角度证明了转换的正确性,在此基础上定义了转换程序的等价指称语义。然后利用所获得的语义推导出五种类型的静态分析,即对共享、循环性、空性、类初始化和大小。在JULIA指称分析器的上下文中实现并实验了转换和导出的分析。
关于稿件的组织,它几乎是自成体系的。第2节和第3节给出了所提出的幻集变换。第4节深入描述了Java字节码的操作语义,在此基础上,第5节证明了所设计的转换是正确的。第6节详细介绍了指称语义,第7节证明了它与第4节的操作语义等价。第8节详细介绍了指称语义的空抽象。报告的材料使读者能够掌握指称语义在实践中是如何被利用的,即使我希望看到它应用在一个小而完整的例子上。我认为,这样做可以不影响论文的长度,例如牺牲包含一些Java相关技术的第6.1节。我还认为,包括一个具体的例子,涉及一个抽象领域,不满足上升链条件,并显示一个适当的扩展算子,将有助于理解这样一个问题。第8节中报告的结果和JULIA提供的简单web界面证明了该方法的有效性和效率。
不过,总的来说,这是一篇写得很好,非常值得一读的论文。尤其是,我欣赏它的完整性,以及介绍、发展和讨论这样一个复杂主题的渐进方式,使它对非专业读者来说相当容易理解。
Java字节码的指称语义使人们能够进行不同类型的静态分析,其优点超出了通过编译“纯”Java源代码获得的字节码。在过去的几年里,其他的编程语言(其源代码编译目标是Java字节码)已经被引入,即Clojure、Groovy和最近的Scala。指称语义可以很容易地定制,只需很少的努力,甚至不需要任何努力,也可以处理这些语言。

理学硕士:
68问55 计算理论中的语义学
6830号 软件工程的数学方面(规范、验证、度量、需求等)
68N19 其他编程范例(面向对象、顺序、并发、自动等)
PDF格式 BibTeX公司 XML 引用
全文: 内政部
参考文献:
[1] Aho,A.V.,Sethi,R.,Ullman,J.D.:编译器,原理,技术和工具。艾迪森韦斯利,雷丁(1986)·Zbl 1155.68020
[2] Albert,E.,Arenas,P.,Codish,C.,Genaim,S.,Puebla,G.,Zanardini,D.:Java字节码的终止分析。作者:Barthe,G.,de Boer,F.S.(编辑)Proc。开放式基于对象的分布式系统的正式方法,第10届IFIP工作组6.1国际会议,FMOODS'08,挪威奥斯陆,2008年6月。计算机科学课堂讲稿,第5051卷,第2-18页。斯普林格,柏林(2008)
[3] Armstrong,T.,Marriott,K.,Schachte,P.,Sødergaard,H.:用于依赖分析的两类布尔函数。科学。计算机。程序。第31卷第1卷,第3-45页(1998年)·Zbl 0942.68018·doi:10.1016/S0167-6423(96)00039-1
[4] Bagnara,R.,Hill,P.M.,Zaffanella,E.:Parma多面体库:面向硬件和软件系统分析和验证的完整数值抽象集。科学。计算机。程序。第72卷第1-2页,第3-21页(2008年)·Zbl 05312355·doi:10.1016/j.scico.2007.08.001
[5] Bancilon,F.,Maier,D.,Sagiv,Y.,Ullman,J.:实现逻辑程序的魔术集和其他奇怪的方法。在:过程。第五届ACM数据库系统原理研讨会,第1-15页(1986年)
[6] Barnett,M.,Chang,B.-Y.E.,DeLine,R.,Jacobs,B.,Boogie,K.R.M.Leino:面向对象程序的模块化可重用验证器。作者:de Boer,F.S.,Bonsangue,M.M.,Graf,S.,de Roever,W.P.(编辑)Proc。2005年11月在荷兰阿姆斯特丹举行的第四届构件和物体形式化方法国际研讨会(FMCO'05)。《计算机科学》第417卷第367页讲义。斯普林格,柏林(2005)
[7] Barnett,M.,Fahndrich,M.,Logozzo,F.:Foxtrot and Clousot:语言无关的.NET动态和静态契约检查。技术报告MSR-TR-2008-105,微软研究院(2008年8月)
[8] 比里,C.,罗摩克里希南,R.:论魔法的力量。J、 日志。程序。10(3&4),255–300(1991年)·Zbl 0722.68018·文件编号:10.1016/0743-1066(91)90038-Q
[9] Bodei,C.,Degano,P.,Nielson,F.,Nielson,H.R.:过程网络中保密性和不干扰的静态分析。在:过程。《计算机科学讲座笔记》,第2127卷,第27-41页。斯普林格,柏林(2001)·Zbl 1005.68064
[10] Bryant,R.E.:布尔函数操作的基于图的算法。IEEE传输。计算机。第35卷第8卷,第677-691页(1986年)·05ZB942.93号·doi:10.1109/TC.1986.1676819
[11] 克拉克,D.,汉金,C.,亨特,S.:类算法语言的信息流。计算机。语言28(1),3-28(2002)·Zbl 1027.68021
[12] Codish,M.:逻辑程序的有效目标导向自下而上评估。J、 日志。程序。38(3),355–370(1999年)·Zbl 0937.68023·doi:10.1016/S0743-1066(98)10024-9
[13] Codish,M.,Dams,D.,Yardeni,E.:逻辑程序的自下而上的抽象解释。J、 理论。计算机。科学。12493-125(1994年)·Zbl 0795.68038·内政部:10.1016/0304-3975(94)90055-8
[14] Cook,B.,Podelski,A.,Rybalchenko,A.:系统代码的终止证明。作者:Schwartzbach,M.I.,Ball,T.(编辑)Proc。2006年6月,加拿大安大略省渥太华市,第415-426页。纽约ACM(2006年)
[15] Cousot,P.,Cousot,R.:抽象解释:通过构造或近似不动点对程序进行静态分析的统一格模型。在:过程。第四届ACM SIGPLAN-SIGACT编程语言原理研讨会(POPL'77),第238-252页(1977年)
[16] 系统框架:cosur,coust程序设计。在:过程。第六届ACM编程语言原理研讨会(POPL'79),第269-282页(1979)·Zbl 0413.06004号
[17] 库索,P.,库索,R.:抽象解释和逻辑程序的应用。J、 日志。程序。13(2&3),103–179(1992年)·Zbl 0776.68024·内政部:10.1016/0743-1066(92)90030-7
[18] Cousot,P.,Halbwachs,N.:程序变量间线性约束的自动发现。在:过程。第五届ACM研讨会。编程语言原理,第84-96页(1978)
[19] Danvy,O.,Filinski,A.:代表控制,CPS转换的研究。数学。结构。计算机。科学。2(4),361–391(1992年)·Zbl 0941.00040·doi:10.1017/S0960129500001535
[20] Hubert,L.,Jensen,T.,Pichardie,D.:非空注释的语义基础和推理。作者:Barthe,G.,de Boer,F.S.(编辑)Proc。2008年6月在挪威奥斯陆举行的第十届基于对象的分布式系统的正式方法国际会议(FMOODS'08)。《计算机科学讲座笔记》,第142页。斯普林格,柏林(2008)
[21] 检查了虚拟机的编译程序。ACM传输。程序。语言系统。(TOPLAS)28(4),619–695(2006年)·数字标识码:10.1145/1146809.1146811
[22] 计算安全信息流的语义和程序分析。在:过程。第十届欧洲程序设计研讨会(ESOP'01)。计算机科学课堂讲稿,第2028卷,第77-91页。斯普林格,柏林(2001)·Zbl 0977.68524
[23] Leino,K.R.M.,Müller,P.:动态上下文中的对象不变量。作者:Odersky,M.(编辑)Proc。第18届面向对象编程欧洲会议(ECOOP'04),挪威奥斯陆,2004年6月。计算机科学课堂讲稿,第3086卷,第491-516页。斯普林格,柏林(2004)
[24] Leino,K.R.M.,Wallenburg,A.:类局部对象不变量。在:过程。第一届印度软件工程会议(ISEC'08),2008年2月,印度海得拉巴,第57-66页。纽约ACM(2008)
[25] 虚拟机规范第二版。艾迪生·韦斯利,雷丁(1999)
[26] Cibai:一个基于抽象解释的静态分析器,用于Java类的模块化分析和验证。In:Cook,B.,Podelski,A.(编辑),第八届验证、模型检查和抽象解释国际会议(VMCAI'07),法国尼斯,2007年1月。计算机科学课堂讲稿,第4349卷,第293-298页。斯普林格,柏林(2007)·Zbl 1132.68329
[27] Logozzo,F.:类不变量作为跟踪语义的抽象解释。计算机。语言系统。结构。35(2),100–142(2009年)·Zbl 1387.68052
[28] Logozzo,F.,Fähndrich,M.:字节码分析与源代码分析的相对完整性。作者:Hendren,L.J.(编辑)Proc。第17届国际编译器建设大会(CC'08),匈牙利布达佩斯,2008年。计算机科学课堂讲稿,第4959卷,197-212页。斯普林格,柏林(2008)
[29] Méndez,M.,Navas,J.,Hermenegildo,M.V.:用于Java字节码增量分析的有效参数不动点算法。在:过程。2007年3月在葡萄牙布拉加举行的第二届字节码语义、验证、分析和转换研讨会。理论计算机科学电子笔记,第190卷(1),第51-66页
[30] Miné,A:基于差分界矩阵的一个新的数值抽象域。在:过程。第二届程序数据对象研讨会(PADO II),奥胡斯,达尼马克,2001年5月。计算机科学课堂讲稿,2053卷,155-172页。斯普林格,柏林(2001)·Zbl 0984.68034
[31] Müller,P.:使用所有权对对象结构进行推理。作者:Meyer,B.,Woodcock,J.(编辑),Proc。验证软件研讨会:理论,工具,实验(VSTTE'07)。计算机科学讲义,第4171卷。斯普林格,柏林(2007)
[32] Palsberg,J.,Schwartzbach,M.I.:面向对象的类型推理。在:过程。OOPSLA'91,ACM SIGPLAN Notices,第26卷(11),第146-161页。ACM出版社,纽约(1991年)
[33] Payet,É.,Spoto,F.:用于Java字节码分析的Magic sets转换。In:Nielson,H.R.,Filé,G.(编辑),《第14届国际静态分析研讨会论文集》(SAS'07),丹麦Kongens Lyngby,2007年8月。计算机科学课堂讲稿,4634卷,452-467页。斯普林格(2007年,柏林)·Zbl 1244.68052
[34] Pollet,I.,Le Charlier,B.,Cortesi,A.:Java程序静态分析的差异性和共享域。在:第15届面向对象编程欧洲会议(ECOOP'01),匈牙利布达佩斯,2001年6月。计算机科学课堂讲稿,2072卷,77-98页。斯普林格,柏林(2001)
[35] Rossignoli,S.,Spoto,F.:通过抽象编译到布尔函数来检测非循环性。作者:艾默生,E.A.,Namjoshi,K.S.(编辑),Proc。验证,模型检查和抽象解释,查尔斯顿,南卡罗来纳州,美国,2006年1月。计算机科学课堂讲稿,第3855卷,第95-110页。斯普林格,柏林(2006)·Zbl 1176.68043
[36] Sabelfeld,A.,Myers,A.C.:基于语言的信息流安全。IEEE J.Sel.公司。地区公社。第21卷第1卷,第5-19页(2003年)·doi:10.1109/JSAC.2002.806121
[37] Schmidt,D.A.:基于跟踪的操作语义的抽象解释。J、 Lisp符号。计算机。第10卷第3期,第237-271页(1998年)
[38] Secci,S.,Spoto,F.:面向对象程序的对共享分析。在:汉金,C.(编辑)过程。第12届静态分析研讨会(SAS'05),伦敦,英国,2005年9月。计算机科学课堂讲稿,第3672卷,第320-335页。斯普林格,柏林(2005)·Zbl 1141.68378
[39] Spoto,F.:精确的空指针分析。J、 软。系统。模型。(出现)
[40] Watchpoint语义:一个用于组合和集中静态分析的工具。In:Cousot,P.(编辑),《第八届国际静态分析研讨会论文集》(SAS'01),巴黎,2001年7月。计算机科学课堂讲稿,第2126卷,127-145页。斯普林格,柏林(2001)·Zbl 0997.68517
[41] Spoto,F.:布尔形式的零度分析。在:Cerone,A.,Gruner,S.(编辑)Proc。2008年11月,南非开普敦,第6届IEEE软件工程和形式化方法国际会议(SEFM'08),第21-30页。IEEE,纽约(2008)
[42] Spoto,F.,Hill,P.M.,Payet,а.:面向对象程序的路径长度分析。在:过程。2006年3月,奥地利维也纳。profs.sci.univr.it/\(\sim\)spoto/papers.html
[43] Spoto,F.,Mesnard,F.,Payet,É:基于路径长度的Java字节码终止分析器。ACM传输。程序。语言系统。第32卷第3卷(2010年)·Zbl 1244.68052
[44] Sussman,G.J.,Steele,G.L.:Scheme:扩展lambda微积分的解释器。在:人工智能备忘录,第349卷。1975年12月(麻省理工学院人工智能实验室)·Zbl 0929.68045
[45] Sussman,G.J.,Steele,G.L.:Scheme:扩展lambda微积分的解释器。高阶符号。计算机。11(4),405–439(1998年)·Zbl 0929.68045·doi:10.1023/A:1010035624696
[46] 塔斯基:格理论不动点定理及其应用。派克靴。J、 数学。5285-309(1955年)·Zbl 0064.26004·doi:10.2140/pjm.1955.5.285
[47] 朱莉娅静态分析仪。http://julia.scienze.univr.it
[48] Volpano,D.,Smith,G.,Irvine,C.:用于安全流分析的声音类型系统。J、 计算机。塞库尔。4(2,3),167–187(1996年)
[49] 编程语言的形式语义。麻省理工学院出版社,剑桥(1993)·Zbl 0919.68082
此参考列表基于出版商或数字数学图书馆提供的信息。它的项被试探性地匹配到zbMATH标识符,并且可能包含数据转换错误。它试图尽可能准确地反映原始论文中列出的参考文献,而不要求匹配的完整性或精确性。