基于模块单子语义的程序切片技术研究

来源 :东南大学 | 被引量 : 0次 | 上传用户:fang514
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
程序切片是一种重要的程序分析理解方法,用于从源程序中抽取对程序中特定点上的特定变量有影响的语句和谓词,组成新的程序(称作切片),然后通过分析切片来分析源程序的行为。二十多年来,人们对它进行了广泛而深入的研究,取得了许多研究成果,使得它在软件调试、测试、维护、度量、程序变换、软件逆向工程与再工程等方面得到广泛应用,受到了广大软件研究和开发人员的高度重视。 论文主要工作包括:(1)将程序切片这类计算抽象成独立于具体语言的切片单子转换器,据此提出一种新型的形式化程序切片方法-模块单子切片,相应切片算法将具有较强的可重用性和程序语言适应性;(2)通过这种新型的形式化切片方法研究过程间程序和含指针程序的切片;(3)实现模块单子切片算法,开发相应的模块单子切片器。 论文工作的主要成果表现在以下几个方面: ·设计了一种切片单子转换器SliceT。我们将程序切片这类计算抽象成独立于具体语言的实体:切片单子转换器,以此来统一描述切片计算。SliceT不仅提供了一种抽象化表示程序切片的能力,而且还允许人们访问其低层语义的细节部分。切片单子转换器可与其它(表示某种程序特性)的单子转换器或单子组合,并通过提升函数lift与这些不同程序特性进行交互,从而可计算具有不同特性的程序切片。 ·提出了模块单子切片概念,并给出了一种高精度的动态切片方法——模块单子动态切片。它是一种随着程序的执行同时计算动态切片的正向切片方法,无需记录程序执行历史,从而将追踪的信息量减少到最低。我们还证明了该单子切片算法所得结果是精确的,即算法可捕获对应PDG中可达信息,且算法结果中不含多余的依赖信息。该算法的平均每个变量单子切片的时间复杂度是线性的,空间复杂度与程序执行的长度无关。 ·此基础上提出了模块单子静态切片算法。它可直接在抽象语法结构上计算切片,无需显示地构造诸如PDG的中间结构。此外,切片单子转换器的模块化抽象机制使得单子切片算法具有很强的可扩展性和重用性。 ·为求过程间程序切片,提出了基于回填待定标号的两阶段单子切片算法。该算法可求按值、结果、值-结果调用的过程间程序切片,且可避免上下文调用问题。与基于SDG两阶段扫描算法相比,因其无需构造PDG和SDG,故可避免由于程序复杂、SDG过于庞大而难以理解、实现时内存空间紧张等问题。 ·通过将指向分析融入到已有的模块单子切片,提出了一种改进的单子切片方法以处理含指针的程序。不同于将指向分析与切片计算分开的传统切片方法,改进的单子切片方法将程序正向切片思想与数据流迭代分析相结合,可同时进行切片计算和指向分析,从而保证了较高的精度,而且比一般的数据流迭代方法节省空间。此外,它还继承了原有单子切片方法所具有的强重用性和程序语言适应性的优点。 ·开发了一个程序切片器原型系统,实现了我们的模块单子切片技术。我们所开发的切片系统MPS基于模块单子语义,结合共代数和类属概念,支持增量式开发,其实现语言为Haskell。
其他文献
医学图像三维重建是医学仿真领域研究的热点问题之一,而网格自动生成技术又是是医学图像三维重建的关键性问题。医学图像三维重建是整个虚拟手术系统的基础部分,虚拟手术系统
零售制造业是典型的生产-销售型企业,这些企业常常需要大量的业务员全天候地采集来自四面八方的订单.过去,这些订单只能通过电话、传真、业务员拜访和客户联系等途径进行采集
随着工业自动化技术和网络通信技术的飞速发展,工业企业要求SCADA(数据采集与监控)系统采用可靠性高、实时性强、安全稳定、人机界面友好的组态软件,通过先进的网络通信技术,
随着Internet的飞速发展,商业应用对网络服务的可用性要求越来越高,对高可用系统的研究也日益增多。高可用系统通过监视系统中各节点机器的运行状态及时调度配置系统,将计算
随着信息网络技术的快速发展,作为Internet基石的TCP/IP协议族正进行着一场前所未有的变革。这场变革的起因是IPv4协议在面对Internet发展时出现越来越多的不足,人们为解决这
随着计算机科学技术的日益成熟及其软硬件迅速发展,计算机图形学和虚拟现实技术在影视动画、电脑游戏、工业仿真、军事模拟等方面的应用也愈加广泛。自然景物的真实感仿真一直
随着计算机技术和图形图像学的发展,医学影像技术也不断得到提高。为了使医务人员更直观和全面地了解人体病灶结构信息,医学图像三维重建技术的发展日益显得重要。 三维重建
心脏病一直是危害健康、造成人类死亡的几种重要疾病之一。长期以来,心脏病的临床诊断、治疗及预防主要依赖于体表心电图,但由于人类至今对体表心电信息与心脏工作状态之间的
推荐系统在社交领域和电子商务领域的成功应用,推动了推荐系统的研究热,大量的推荐系统算法开始涌现出来。但是,在科技论文推荐领域,相关研究还甚少。科技论文的“信息爆炸”问题
网络安全风险评估是动态网络安全模型的基础。但目前大多数的网络安全风险评估方法是静态的评估方法,只能粗略的估计网络长期所处的风险状态,不能在遭受攻击时实时地检测网络