首页> 外文学位 >Pattern matching techniques for program understanding.
【24h】

Pattern matching techniques for program understanding.

机译:用于程序理解的模式匹配技术。

获取原文
获取原文并翻译 | 示例

摘要

When a successful software system is maintained and evolved for an extended period of time, original design documents become obsolete and design rationales become lost, so reverse engineering activities to reconstruct such information become critical for the software's continued viability.; Pattern matching provides a solid framework for identifying higher level abstractions that may be instances of predefined plans (commonly used algorithms and cliches), programming concepts, or abstract data types and operations. This thesis discusses two types of pattern-matching techniques developed for plan recognition in Program Understanding.; The first type is based on Software Metrics and Dynamic Programming techniques that allow for statement-level comparison of feature vectors that characterize source code program statements. This type of pattern matching is used to identify similar code fragments, and code cloning, facilitating thus code modularization, code restructuring and efficient localization of the occurrence of similar programming errors.; The second type addresses the problem of establishing correspondences, between a parse tree of a custom abstract description language developed (ACL) and the parse tree of the code. Matching of abstract representations and source code representations involves alignment that is again performed using a Dynamic Programming algorithm that compares feature vectors of abstract descriptions, and source code. The use of a statistical formalism allows a score (a probability) to be assigned to every match that is attempted. Incomplete or imperfect matching is also possible leaving to the software engineer the final decision on the similar candidates proposed by the matcher.; The system has been implemented to analyze software systems written in PL/AS and C.
机译:当成功的软件系统经过长时间的维护和发展后,原始的设计文档将变得过时,设计原理也将消失,因此,重建此类信息的逆向工程活动对于软件的持续生存至关重要。模式匹配为识别更高级别的抽象提供了坚实的框架,这些抽象可以是预定义计划(常用的算法和剪辑),编程概念或抽象数据类型和操作的实例。本文讨论了为计划识别中的计划识别而开发的两种类型的模式匹配技术。第一类基于软件度量和动态编程技术,这些技术允许对表征源代码程序语句的特征向量进行语句级比较。这种类型的模式匹配用于识别相似的代码片段和代码克隆,从而促进代码的模块化,代码的重构以及对相似编程错误的有效定位。第二种类型解决了在开发的自定义抽象描述语言(ACL)的语法分析树与代码的语法分析树之间建立对应关系的问题。抽象表示和源代码表示的匹配涉及对齐,该对齐再次使用动态编程算法执行,该算法将抽象描述的特征向量与源代码进行比较。统计形式主义的使用允许将分数(概率)分配给每个尝试的匹配。不完全匹配或不完全匹配也可能由软件工程师决定,由匹配者提出的类似候选者的最终决定权。该系统已实现,可以分析用PL / AS和C编写的软件系统。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号