【关键词】 程序分析; 转换; 比较; 评价; 可视化; 【英文关键词】 Program Analysis; Transformation; Comparison; Assessment; Visualization; 【中文摘要】 程序的分析技术在许多领域有广泛的应用前景。例如,对学生程序的自动分析评价;利用程序分析比较工具来辅助软件版权的分析鉴别。但是目前程序分析评价技术主要停留在程序输出结果的比较,并不能发现那些通过编译但语义上有问题的程序的错误;曾有个别学者尝试过在语义上分析评价程序,但是分析的目标语言并不是国内外计算机教育普遍采用的编程语言。相关的研究,如程序理解、程序度量和程序转换,虽然和程序分析评价的研究有一定的联系,但是国内外鲜有将其综合起来用于程序分析评价的研究。 本文研究基于转换的程序分析技术及其在程序评价上的应用,并讨论了在其他方面的应用前景。在研究编译器转换技术和代码优化相关技术的基础上,提出了用于分析评价C语言程序的AnalyseC框架,并实现了其软件原型。AnalyseC对程序分别进行结构相似性分析和语义分析评价,实现了程序度量及其可视化、程序转换及其可视化、程序分析评价等功能。 在AnalyseC中,使用ANTLR构造一个以抽象语法树为中间代码的C语言分析器。在结构层次上,AnalyseC基于程序的抽象语法树,应用传统的软件度量对程序进行分析和可视化,并提出将数据结构的使用列为程序度... 【英文摘要】 Program analysis technology has a bright application future in various fields, such as, automatic analysis and assessment for student programming exercises, and making use of program analyais tool to help analyse software copyright. Nowadays, the program analysis technology mainly focuses on comparison of program outputs. In this way, the errors in a successfully compiled program cannot be found through comparison. There are some scholars who has tried to figured it out by semantic comparison, but...
|