含有replaceAll函数的字符串约束求解

来源 :中国科学院大学 | 被引量 : 0次 | 上传用户:hardy_0205
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
字符串是很多编程语言都包含的数据类型,而且字符串在实际程序中被广泛使用,比如web应用程序。字符串约束求解是对操作字符串的程序进行静态分析与验证的基础。目前主流的字符串约束求解器比如CVC4和Z3-str等一般支持对含有字符串连接函数、正则表达式、以及字符串长度的约束的求解。但这些字符串约束语言还远远满足不了对操作字符串的程序进行分析与验证的需要。这方面的一个例子是replaceAll函数。虽然replaceAll函数是web应用程序中常用的字符串操作,但由于replaceAll函数本身的递归特性,目前主流的字符串约束求解器对replaceAll函数要么不支持,要么只是提供启发式算法来求解。因此缺乏针对含有replaceAll函数的字符串约束的可靠完备的判定算法以及求解器。  本论文聚焦在对含有replaceAll函数的字符串约束的求解上。一般来讲,replaceAll函数含有三个参数:第一个参数是主体串(subject),第二个参数是形式上为字符串或正则表达式的模式(pattern),第三个参数是替代串(replacement)。replaceAll函数的直观意思是将主体串中模式的所有出现都换为替代串。Lin和Barceló在POPL2016文章中证明了含有replaceAll函数和正规表达式的字符串约束的可满足性问题是不可判定的。他们还以对操作字符串的程序进行符号执行为背景提出了字符串约束的直线子集(straight-line fragment)的概念。本论文对含有replaceAll函数和正规表达式的字符串约束的直线子集(记为SL[replaceAll])的可满足性问题进行了全面的探讨。具体来讲,本论文的贡献如下:  -证明了如果模式参数允许为字符串变量,则SL[replaceAll]的可满足性问题是不可判定的;  -证明了如果模式参数为正规表达式,则SL[replaceAll]的可满足性问题可以在指数空间内判定,而且,该判定算法基于自动机构造,具有模块化的优点,易于实现;  -我们在Z3的基础上实现了本论文中提出的判定算法,开发了原型工具Z3-replaceAll,进行了实例研究,展示了提出的判定算法的实际可行性。
其他文献
互联网的飞速发展给人们的生产生活带来了极大的便利,对整个社会产生了深刻的影响。随着网络服务种类日趋多样,各类网络应用的需求迅速增长,网络规模急剧扩大,网络设备的复杂
语义Web被看成是当前Web的扩展,目前已经成为数据与知识工程领域的研究热点。语义Web的核心思想是,通过增加一些语义信息实现对Web上信息的表示及获取方式的改进,使得信息能
随着网络应用的不断深入,软件系统的可信性问题受到人们关注的程度越来越高。系统的可信性依赖于系统组件的完整性,给软件系统提供有效的完整性度量机制以掌握系统的可信性状况
近年来,网络通信新技术层出不穷,通信技术的发展和移动终端的智能化带来的不仅是对经济增长的刺激,它同时也深深改变了大众群体的消费理念。传统的基础通话服务已经不能满足
混沌同步在物理学,电子工程学,生物科学研究中,在实际应用中,由于混沌系统的动态行为对系统初值及参数之变异非常灵敏,且混沌轨迹具有不可预测的特性,这种情况下,迫切需要一
由于互联网技术以及新的科学/工程技术的进步,以图作为存储模式的应用数量不断地增加,如在生物信息学、社会关系学、万维网等。而由于测量方法的不准确性以及对数据测量时引入
随着互联网的广泛应用,网络安全问题日益突出。网络蠕虫凭借其强大的自我复制和持续扩散能力,对网络造成了巨大威胁。蠕虫攻击的目标主机一般是有0-day漏洞的主机或持续无补
下一代网络和融合业务支撑环境有利于快速、灵活的业务开发和部署,从而使网络运营商达到提高网络使用率、增加收益的目标。业务生成环境作为融合业务支撑环境中的主要实体之
随着互联网的发展,万维网的信息量成爆炸式增长。海量的信息使得用户查找、表示和维护信息十分困难。其原因之一是信息的存储只是对信息的简单罗列,计算机不能从知识的角度去
随着中国的中小企业的实力不断加强,规模的不断扩大,相关硬件建设进一步完善提高,办公网络化、资源数字化、管理科学化也成了必需要跟上的一大发展问题。为了实现企业管理的