一种基于GCC抽象语法树的程序特征提取方法.docVIP

  • 71
  • 0
  • 约3.5千字
  • 约 7页
  • 2016-10-12 发布于北京
  • 举报

一种基于GCC抽象语法树的程序特征提取方法.doc

一种基于GCC抽象语法树的程序特征提取方法.doc

一种基于GCC抽象语法树的程序特征提取方法   摘 要 提出一种基于GCC(GNU Compiler Collection)抽象语法树建立程序特征文本的方法,消除抽象语法树中与程序无关的结点,从消除冗余后的抽象语法树文本中提取可以表达程序语义的可用结点;之后对其进行信息提取,从而高效地生成程序特征文本。通过实验证明了该方法的正确性与实用性。   【关键词】抽象语法树 信息提取 程序代码 特征文本   1 引言   目前主流的程序代码抄袭检测系统JPlag[1]和YAP3[2]都采用字符串比较技术,这种技术核心问题之一是提取可以表示源程序的特征[3],即能够代表该程序内容和结构信息的字符串,该字符串是一个线性串,其包含的程序结构信息的多少,将直接影响结果的准确性。针对上述问题,本文提出了一种程序特征提取方法。该方法借助GCC(GNU Compiler Collection)编译器,将程序转换成抽象语法树(Abstract syntax tree),重点分析AST结构,从中提取表达程序语义的信息。   1.1 AST结构   GCC 编译器以源程序的过程为单位生成AST,而且包含整个编译单元的完整表示, 比较直观地表示出源程序的语法结构,并含有源程序结构显示所需的全部静态信息。AST是GCC编译器前端的中心数据结构,AST的结点类型包括以下7种:①标识符结点(identifi

文档评论(0)

1亿VIP精品文档

相关文档