C++程序动态切片系统的研究与实现

C++程序动态切片系统的研究与实现

论文摘要

程序切片技术是一种分析和理解程序的技术,其中面向过程程序切片技术已趋于成熟。但是面向对象程序切片技术,特别是面向对象程序动态切片技术起步较晚,目前仍处于初始阶段。传统的算法是通过建立程序的依赖图得到动态切片,但依赖图需要占用大量的空间,因此算法效率较低。Xiangyu Zhang等提出的LP(Limited Preprocess)动态切片算法既利用了程序中的依赖性信息,又不需要建立依赖图,具有节省内存空间,算法效率高的优点,但LP算法只能对面向过程程序进行切片。本文对面向对象动态程序切片技术进行了深入的研究,在利用LP算法优点点的基础上,结合C++语言特性对这个算法进行改进,提出了适合面向对象C++程序的动态切片算法。该算法扩展了函数的概念,把类的函数成员看作全局函数,解决了对函数成员进行切片的问题;扩展了函数调用的概念,把给对象发送消息看作函数调用,解决了C++程序中隐式调用函数的问题;采用了“object-variable”形式存储感兴趣的变量,解决了LP算法无法区分普通变量,对象的成员数据和对象变量的问题。改进后的算法可以有效地处理C++程序的多态,继承和封装等特性,和别的C++动态切片算法相比有较高的效率。在提出的算法基础上,设计并实现了一个C++程序动态切片原型系统(CPPSLICER),该系统应用本文所研制的词法、语法分析器得到C++程序中的信息,应用程序插装技术得到程序的执行序列。经测试,该系统能够正确处理C++语言的特性。最后,为了使本系统能更好地应用到程序调试领域,应用COM(Component Object Model)技术把它以插件的形式集成到了VC6.0开发环境。

论文目录

  • 摘要
  • ABSTRACT
  • 第一章 绪论
  • 1.1 研究背景和意义
  • 1.2 国内外研究现状
  • 1.3 课题主要研究内容及组织结构
  • 第二章 程序切片技术的概述
  • 2.1 程序切片的分类
  • 2.1.1 前向切片和后向切片
  • 2.1.2 过程内切片和过程间切片
  • 2.1.3 静态切片,动态切片和条件切片
  • 2.2 程序切片的准则
  • 2.3 程序切片的算法
  • 2.4 程序切片的应用
  • 2.5 程序切片工具的介绍
  • 2.6 本章小结
  • 第三章 动态程序切片技术的分析
  • 3.1 基本概念
  • 3.2 语句控制依赖关系的分析
  • 3.3 依赖图
  • 3.3.1 程序依赖图(PDG)
  • 3.3.2 系统依赖图(SDG)
  • 3.3.3 类依赖图(CLDG)
  • 3.4 基于依赖图的动态程序切片技术
  • 3.4.1 面向过程程序的动态程序切片
  • 3.4.2 面向对象程序的动态程序切片
  • 3.5 基于Demand-Driven 的动态程序切片技术
  • 3.6 其他
  • 3.7 本章小结
  • 第四章 C++程序动态切片系统的关键技术
  • 4.1 基于Demand-Driven 的动态程序切片
  • 4.2 LP 面向过程切片算法的实现
  • 4.3 LP 算法面向对象特性的改进
  • 4.3.1 函数的概念的扩展
  • 4.3.2 调用语句种类的扩展
  • 4.3.3 扩展存储变量表示形式
  • 4.3.4 对象之间的赋值
  • 4.4 C++面向对象动态切片算法
  • 4.5 本章小结
  • 第五章 C++程序动态切片系统的实现
  • 5.1 系统结构
  • 5.2 词法和语法分析工具
  • 5.2.1 ALEX 输入文件
  • 5.2.2 AYACC 输入文件
  • 5.3 程序信息的保存
  • 5.4 程序插装技术
  • 5.4.1 程序插装技术的介绍
  • 5.4.2 插装技术的应用
  • 5.5 集成到Visual C++ 6.0 IDE
  • 5.6 切片结果显示
  • 5.7 本章小结
  • 第六章 总结与展望
  • 6.1 本文的主要研究工作
  • 6.2 下一步的工作
  • 参考文献
  • 致谢
  • 在学期间的研究成果及发表的学术论文
  • 附录
  • 附录1: LEX 词法规则
  • 附录2:YACC 语法规则
  • 相关论文文献

    • [1].新工科电子商务专业面向对象课程体系教学改革[J]. 辽宁科技学院学报 2020(03)
    • [2].基于电表的面向对象与面向对象协议设计方法应用[J]. 价值工程 2019(04)
    • [3].浅析关于面向对象协议试点工作内容[J]. 中国仪器仪表 2018(02)
    • [4].面向对象技术在微波通信电路设计中的应用[J]. 科技与创新 2016(11)
    • [5].那面向对象技术与软件工程分析[J]. 电脑迷 2017(06)
    • [6].面向对象软件测试技术研究[J]. 现代职业教育 2017(03)
    • [7].面向对象程序设计语言的哲学思考[J]. 魅力中国 2017(05)
    • [8].面向对象主流切片表示法的比较研究[J]. 计算机工程与设计 2008(05)
    • [9].一种面向对象继承复杂性的综合度量[J]. 计算机工程与应用 2008(20)
    • [10].在软件易变性上下文中类规模对面向对象度量的影响分析[J]. 计算机应用研究 2017(08)
    • [11].基于面向对象技术的图书管理系统研究[J]. 中外企业家 2016(14)
    • [12].基于面向对象技术的空间数据库设计和实现[J]. 电子测试 2015(09)
    • [13].高等职业教育“面向对象”教学模式之构建[J]. 职业教育研究 2011(02)
    • [14].面向对象仿真初探[J]. 硅谷 2011(05)
    • [15].面向对象基本概念的研究[J]. 内蒙古民族大学学报 2011(02)
    • [16].面向对象设计方法学探讨[J]. 网络与信息 2011(04)
    • [17].面向对象分类方法在全国第二次土地调查中的应用[J]. 测绘技术装备 2009(02)
    • [18].面向对象分类方法在第二次土地调查中的应用研究[J]. 遥感信息 2009(06)
    • [19].面向语言编程——面向对象之后的革命[J]. 程序员 2008(05)
    • [20].浅谈博弈和面向对象理念在铁路体系管理中的应用[J]. 郑铁科技 2016(03)
    • [21].基于面向对象分类法和高分一号影像的露天矿区分类技术研究[J]. 青海大学学报 2018(01)
    • [22].基于面向对象技术的飞行仿真研究[J]. 计算机技术与发展 2010(07)
    • [23].面向对象与数据库技术结合发展现状研究[J]. 科技资讯 2009(03)
    • [24].基于面向对象技术药品管理系统开发[J]. 现代计算机(专业版) 2009(08)
    • [25].面向对象技术在学生管理系统设计中的应用[J]. 电脑与信息技术 2009(05)
    • [26].备件模型管理的面向对象技术方式的实现[J]. 科技广场 2008(12)
    • [27].面向对象协议计量设备的应用与分析[J]. 宁夏电力 2019(04)
    • [28].基于案例驱动的面向对象技术课程教学改革与实践[J]. 软件 2017(11)
    • [29].基于面向对象分类方法的低效用地信息提取研究——以福建省晋江市为例[J]. 科技创新导报 2018(03)
    • [30].基于内部视角的C++面向对象教学实践[J]. 中国校外教育 2010(08)

    标签:;  ;  ;  ;  

    C++程序动态切片系统的研究与实现
    下载Doc文档

    猜你喜欢