×

Sawja:Java静态分析研讨会。 (英语) Zbl 1308.68028号

Beckert,Bernhard(编辑)等人,面向对象软件的形式验证。2010年6月28日至30日,法国巴黎,FoVeOOS 2010国际会议。修订了选定的论文。柏林:施普林格出版社(ISBN 978-3-642-18069-9/pbk)。计算机科学课堂讲稿6528,92-106(2011)。
摘要:静态分析是一种强大的程序自动验证技术,但在为现实语言(如Java)开发成熟的分析器时,会带来重大的工程挑战。这种工具的效率和精度部分依赖于底层组件,这些组件只依赖于语言的语法结构,因此不应为新的静态分析的每个实现重新设计。本文描述了Sawja库:一个与Java6完全兼容的静态分析车间,它提供了OCaml模块,用于有效地操作Java字节码程序。我们介绍了该库的主要特征,包括i)高效的函数数据结构,用于表示具有隐式共享和惰性解析的程序,ii)中间无堆栈表示,以及iii)快速计算和操作完整程序。我们对时间、记忆和精确度方面的不同特征进行了实验评估。
有关整个系列,请参见[Zbl 1204.68003号].

MSC公司:

68甲15 编程语言理论
68甲19 其他编程范式(面向对象、顺序、并发、自动等)
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] Bacon,D.F.,Sweeney,P.F.:C++虚拟函数调用的快速静态分析。In:程序。OOPSLA 1996,第324–341页(1996)·数字对象标识代码:10.1145/236337.236371
[2] 比科拉诺-网络主页,http://mobius.inria.fr/bicolano
[3] Blanchet,B.,Cousot,P.,Cousot,R.,Feret,J.,Mauborgne,L.,Miné,A.,Monniaux,D.,Rival,X.:大型安全关键软件的静态分析器。In:程序。PLDI 2003,美国加利福尼亚州圣地亚哥,6月7-14日,第196-207页。ACM出版社,纽约(2003)·兹比尔1026.68514
[4] Bravenboer,M.,Smaragdakis,Y.:对复杂分析点的严格声明性规范。SIGPLAN不是。44(10)、243–262(2009年)·数字对象标识代码:10.1145/1639949.1640108
[5] Bryant,R.E.:有序二元判定图的符号布尔运算。ACM计算调查24(3),293–318(1992)·doi:10.1145/136035.136043
[6] Burke,M.G.,Choi,J.,Fink,S.,Grove,D.,Hind,M.,Sarkar,V.,Serrano,M.J.,Sreedhar,V.C.,Srinivasan,H.,Whaley,J.:Java的Jalapeño动态优化编译器。In:程序。JAVA 1999,第129-141页。ACM,纽约(1999)
[7] 克雷克·X:巴里斯塔,http://barista.x9c.fr/
[8] Coq证明助理,http://coq.inia.fr/ ·兹比尔1465.03051
[9] Dean,J.,Grove,D.,Chambers,C.:使用静态类层次分析优化面向对象程序。收录:Olthoff,W.(编辑)ECOOP 1995。LNCS,第952卷,第77-101页。斯普林格,海德堡(1995)·Zbl 05761510号 ·doi:10.1007/3-540-49538-X_5
[10] Demange,D.,Jensen,T.,Pichardie,D.:Java字节码的可证明正确的无堆叠中间表示。研究报告7021,INRIA(2009),http://www.irisa.fr/celtique/ext/bir/rr7021.pdf
[11] Ershov,A.P.:关于算术运算的编程。Commun公司。ACM 1(8),3–6(1958)·Zbl 0086.33203号 ·数字对象标识代码:10.1145/368892.368907
[12] Grove,D.,Chambers,C.:调用图构造算法框架。托普拉斯23(6),685–746(2001)·Zbl 05459271号 ·文件编号:10.1145/506315.506316
[13] Hubert,L.:Java字节码的非完整注释推断器。In:程序。PASTE 2008,第36-42页。ACM,纽约(2008年11月)
[14] Hubert,L.,Jensen,T.,Monfort,V.,Pichardie,D.:用java强制安全对象初始化。收录:Gritzalis,D.,Preneel,B.,Theoharidou,M.(编辑)ESORICS 2010。LNCS,第6345卷,第101-115页。斯普林格,海德堡(2010)·Zbl 05788998号 ·doi:10.1007/978-3-642-15497-37
[15] IBM:T.J.Watson分析库(Wala),http://wala.sourceforge.net
[16] Jensen,T.,Pichardie,D.:保护克隆:静态强制执行安全对象复制策略。技术报告,INRIA(2010年6月);在OWASP上发表(2010)·兹比尔1326.68098
[17] Leroy,X.,Doligez,D.,Garrigue,J.,Rémy,D.,Vouillon,J.:目标凸轮系统,Inria(2007年5月),网址:http://caml.inia.fr/ocaml/
[18] Lhoták,O.,Hendren,L.:缩放java指向使用SPARK进行分析。收录:Wang,H.(编辑)CC 2003。LNCS,第2622卷,第153-169页。斯普林格,海德堡(2003)·Zbl 1032.68905号 ·doi:10.1007/3-540-36579-6_12
[19] Lhoták,O.,Hendren,L.:评估上下文敏感点的好处——使用基于BDD的实现进行分析。ACM事务处理。柔和。工程方法。 18(1) (2008) ·Zbl 05517472号 ·doi:10.1145/1391984.1391987
[20] Lindholm,T.,Yellin,F.:JavaTM虚拟机规范,第2版。普伦蒂斯·霍尔PTR,恩格伍德悬崖(1999)
[21] Livshits,V.B.,Whaley,J.,Lam,M.S.:java的反射分析。载于:Yi,K.(编辑)APLAS 2005。LNCS,第3780卷,第139-160页。斯普林格,海德堡(2005)·Zbl 1159.68375号 ·doi:10.1007/11575467_11
[22] Meyer,J.,Downing,T.:Java虚拟机。O'Reilly Associates,塞巴斯托波尔(1997),网址:http://jasmin.sourceforge.net ·Zbl 0893.68018号
[23] Morrison,D.R.:PATRICIA–检索字母数字编码信息的实用算法。J.ACM 15(4)(1968年)·数字对象标识代码:10.1145/321479.321481
[24] Pagano,B.、Andrieu,O.、Moniot,T.、Canou,B.、Chailloux,E.、Wang,P.、Manoury,P.和ColaçO,J.L.:经验报告:使用Objective Caml在认证框架中开发安全关键嵌入式工具。第215-220页。ACM,纽约(2009)·Zbl 06383956号 ·doi:10.1145/1596550.1596582
[25] Rose,E.:轻量级字节码验证。J.汽车。原因。 31(3-4), 303–334 (2003) ·Zbl 1069.68542号 ·doi:10.1023/B:JARS.0000021015.15794.82
[26] Spoto,F.:Julia:Java字节码的通用静态分析器。In:程序。FTfJP研讨会(2005)
[27] Stata,R.,Abadi,M.:Java字节码子程序的类型系统。In:程序。第149-160页。纽约ACM出版社(1998年)
[28] Tip,F.,Palsberg,J.:基于可扩展传播的调用图构建算法。In:程序。OOPSLA 2000,第281–293页。ACM出版社,纽约(2000年10月)
[29] Vallée-Rai,R.,Co,P.,Gagnon,e.,Hendren,L.,Lam,P.和Sundaresan,V.:Soot-Java字节码优化框架。In:Proc。CASCON 1999(1999)
[30] Whaley,J.:通过使用自动运行时专门化进行动态优化。麻省理工学院硕士论文(1999年5月)
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。