广告

PASS:用参数化数组和区间自动机求解字符串

  • 李国栋
  • Indradeep Ghosh公司
会议文件
部分计算机科学讲义丛书(LNCS,第8244卷)

摘要

字符串约束和数值约束的求解问题近年来受到越来越多的关注。现有的方法使用位向量或自动机(或它们的组合)对字符串进行建模,并将字符串约束简化为位向量约束或自动机操作,然后在各自的域中求解。不幸的是,它们常常无法在效率、准确性和全面性之间取得良好的平衡。本文介绍了一种新的技术,它使用参数化数组作为主要的数据结构对字符串进行建模,并将字符串约束转换为量化表达式,通过量词消除来求解。我们提出了一个有效且合理的量词消除算法。此外,我们使用自动机模型来更快地处理正则表达式和字符串值的推理。我们的方法不需要枚举字符串长度(如基于位向量的方法那样),也不需要枚举具体的字符串值(如基于自动机的方法那样)。因此,它可以获得更好的精度和效率。特别是,它可以快速识别出不满意的案例。我们的解算器(named PASS)支持大多数流行的字符串操作,包括字符串比较、字符串数值转换和正则表达式。实验结果证明了该方法的优越性。

关键词

正则表达式字符串长度路径条件有效解决方案象征性执行
这些关键字是由机器而不是作者添加的。这个过程是实验性的,关键字可能会随着学习算法的改进而更新。

预览

无法显示预览下载预览PDF。

无法显示预览下载预览PDF。

工具书类

  1. 1
    Barrett,C.,Conway,C.L.,Deters,M.,Hadarean,L.,Jovanović,D.,King,T.,Reynolds,A.,Tinelli,C.:CVC4。在:Gopalakrishnan,G.,Qadeer,S.(编辑)CAV 2011。LNCS,第6806卷,第171-177页。斯普林格,海德堡(2011)交叉引用谷歌学者
  2. 2
    Bjørner,N.,Tillmann,N.,Voronkov,A.:字符串操作程序的路径可行性分析。在:Kowalewski,S.,Philippou,A.(编辑)TACAS 2009。LNCS,第5505卷,第307-321页。斯普林格,海德堡(2009)交叉引用谷歌学者
  3. 三。
    Bjørner,N.,Tillmann,N.,Voronkov,A.:字符串操作程序的路径可行性分析。在:Kowalewski,S.,Philippou,A.(编辑)TACAS 2009。LNCS,第5505卷,第307-321页。斯普林格,海德堡(2009)交叉引用谷歌学者
  4. 4
    布拉德利,A.R.,Manna,Z.,Sipma,H.B.:关于数组什么是可判定的?在:艾默生,E.A.,Namjoshi,K.S.(编辑)VMCAI 2006。LNCS,第3855卷,第427-442页。海德堡(2006年)交叉引用谷歌学者
  5. 5
    Cadar,C.,Dunbar,D.,Engler,D.R.:KLEE:为复杂系统程序自动生成高覆盖率测试。输入:OSDI(2008)谷歌学者
  6. 6
    Christensen,A.S.,Moller,A.,Schwartzbach,M.I.:字符串表达式的精确分析。In:Cousot,R.(编辑)SAS 2003。LNCS,第2694卷,斯普林格,海德堡(2003)交叉引用谷歌学者
  7. 7
    de Moura,L.,Bjørner,N.:Z3:一个有效的SMT求解器。在:Ramakrishnan,C.R.,Rehof,J.(编辑)TACAS 2008。LNCS,第4963卷,第337-340页。斯普林格,海德堡(2008)交叉引用谷歌学者
  8. 8
    Ganesh,V.,Kieżun,A.,Artzi,S.,Guo,P.J.,Hooimeijer,P.,Ernst,M.:用于测试、分析和漏洞检测的字符串解算器。在:Gopalakrishnan,G.,Qadeer,S.(编辑)CAV 2011。LNCS,第6806卷,第1-19页。斯普林格,海德堡(2011)交叉引用谷歌学者
  9. 9
    Ghosh,I.,Shafiei,N.,Li,G.,Chiang,W.-F.:JST:一种用于带字符串的工业java应用程序的自动测试生成工具。输入:ICSE(2013)谷歌学者
  10. 10
    Hooimeijer,P.,Veanes,M.:字符串分析的自动机算法评估。在:Jhala,R.,Schmidt,D.(编辑),VMCAI 2011。LNCS,第6538卷,第248-262页。斯普林格,海德堡(2011)交叉引用谷歌学者
  11. 11
    Hooimeijer,P.,Weimer,W.:懒惰地解决字符串约束。ASE(2010年)谷歌学者
  12. 12
    Li,G.,Ghosh,I.,Rajan,S.P.:KLOVER:C++程序的符号执行和自动测试生成工具。在:Gopalakrishnan,G.,Qadeer,S.(编辑)CAV 2011。LNCS,第6806卷,第609-615页。斯普林格,海德堡(2011)交叉引用谷歌学者
  13. 13
    Li,G.,Li,P.,Sawaga,G.,Gopalakrishnan,G.,Ghosh,I.,Rajan,S.P.:GKLEE:GPU的同源验证和测试生成。收入:PPoPP(2012年)谷歌学者
  14. 14
    Li,G.,Slind,K.:全函数语言的可信源翻译。在:Ramakrishnan,C.R.,Rehof,J.(编辑)TACAS 2008。LNCS,第4963卷,第471-485页。斯普林格,海德堡(2008)交叉引用谷歌学者
  15. 15
    Saxena,P.,Akhawe,D.,Hanna,S.,Mao,F.,McCamant,S.,Song,D.:JavaScript的符号执行框架。在:标准普尔,奥克兰(2010)谷歌学者
  16. 16
    Shannon,D.,Ghosh,I.,Rajan,S.,Khurshid,S.:用于验证web应用程序的字符串的有效符号执行。在:第二届大型软件系统缺陷国际研讨会(2009年)谷歌学者
  17. 17
    Tillmann,N.,de Halleux,J.:Pex–针对.NET的白盒测试生成。摘自:Beckert,B.,Hähnle,R.(编辑),TAP 2008。LNCS,第4966卷,第134-153页。斯普林格,海德堡(2008)交叉引用谷歌学者
  18. 18
    哈尔维安·德·勒克斯,正规的探险家。输入:ICST(2010)谷歌学者
  19. 19
    Yices:一个SMT解决方案,http://yices.csl.sri.com
  20. 20
    Yu,F.,Alkhalaf,M.,Bultan,T.:陌生人:一个基于自动机的PHP字符串分析工具。在:Esparza,J.,Majumdar,R.(编辑),2010年塔卡斯。LNCS,第6015卷,第154-157页。斯普林格,海德堡(2010)交叉引用谷歌学者
  21. 21
    Yu,F.,Bultan,T.,Ibarra,O.H.:符号字符串验证:结合字符串分析和大小分析。在:Kowalewski,S.,Philippou,A.(编辑)TACAS 2009。LNCS,第5505卷,第322-336页。斯普林格,海德堡(2009)交叉引用谷歌学者

版权信息

©瑞士施普林格国际出版公司2013

作者和附属机构

  • 李国栋
    • 1
  • Indradeep Ghosh公司
    • 1
  1. 1美国富士通实验室美国

个性化建议