高级语言编译过程可视化研究
摘要:针对编译原理教学中存在的知识点多、概念抽象、算法难
于理解的情况,本文设计了一种可视化编译系统,实现了类c 语言
的文法编辑与检查、词法分析、语法分析、语义处理的过程展示。
系统界面布局一致、操作简便,为便于学生观察和分析编译过程,
采用单步分析展示每个分析步骤的分析图表的利用和变化情况,也
提供一次性分析展示整体分析过程和结果。此系统不仅有利于帮助
学生理解编译器的工作过程、原理及其具体实现方法,还有助于促
进学生将多种专业知识和技能综合运用,从而引导他们的学习兴
趣。
关键词:编译过程可视化;词法分析;语法分析;语法制导翻译
《编译原理》是计算机专业一门重要的专业基础课,讲述了将高
级编程语言翻译为机器易于执行的低级语言的编译过程和原理。由
于编译程序过程较复杂,每个阶段又包括多种实现方法,而具体的
实现技术也比较抽象、难懂,一直被学生认为是最难学习的专业课
程之一。基于此,本文设计并实现了一个可视化编译系统,并选择
大家普遍接受的类c 语言作为源程序,实现了包括文法定义和检查、
词法分析、语法分析、语义分析和代码生成的编译过程展示,帮助
学生直观地观察编译过程、理解编译方法,进而辅助其提高高级语
言编程能力。
一、系统功能架构
可视化编译系统主要包括完成了源程序、文法规则的文件操作、
词法分析、语法分析、语义处理等功能模块。其中的每个模块又包
括多个子模块,具体功能架构如图1所示。
二、词法分析
词法分析分成文法规则分析和词法分析两个界面,其中前者主要
实现与文法相关的操作,如词法文法的检查、状态转换图的生成及
状态装换矩阵的生成;后者则通过单步分析和一次分析两种方式实
现对高级语言源程序文本文件拆分单词,形成单词序列的具体过
程。
1. 词法规则编辑与检查。词法规则编辑与检查功能通过浏览历史
文法、示例文法选取、自拟文法输入三种读入方式实现文法的添加,
并可完成文法的修改、删除、保存等操作,系统根据单词描述应符
合正规文法的定义,对文法的合理性进行检查和错误提示。
通过执行正规文法到状态转换图的生成算法,生成并展示所定义
词法的状态转换图,在此图上显示单词的具体分析过程,效果非常
直观,如图2所示。为了便于学生理解状态转换图在计算机中的存
储和处理的实现方法,还在界面上同时显示与状态转换图对应的状
态矩阵,以及单词分析过程中对状态矩阵的查询和使用情况,如图
3所示。
2. 词法分析。对识别单词的具体过程展示,系统提供了单步分析
和一次分析两种方法。在单步分析中,通过实现状态转换图和状态
转换矩阵相应位置的变色处理,使学生更直观地理解词法分析过程
中每个字符的处理细节以及后续状态的选取方法。
三、语法分析
语法分析方法可以分为自顶向下分析法和自底向上分析法两种。
其中自顶向下分析法主要包括递归下降法和ll (1)分析法,自底
向上分析法主要包括优先分析法和lr ()分析法。本系统语法分析
部分对其中较复杂的ll (1)分析法、算符优先分析法和lr ()分
析法都实现了过程展示。语法分析模块的子模块及界面设计尽量与
词法分析部分保持一致,以lr ()语法为例,分为lr ()文法规
则编辑与检查、lr ()语法分析两部分,前者包括文法的添加、修
改、删除、项目集的生成及分析表的生成,后者通过单步分析及一
次分析两种分析方式实现对单词序列的语法分析过程展示,生成的
部分分析表和分析结果展示见图4。
四、语义分析与代码生成
根据语法制导翻译的原理,在系统的语法分析过程中调用语义子
程序,实现了类c 语言的变量声明、算术运算、逻辑运算、if 语句、
for 语句、while 语句等主要高级语言常规语句的语义处理,生成
了四元式序列的中间代码形式。
本文设计实现的可视化编译器实现了文法编辑与检查、词法分析、
语法分析、语义处理和代码生成过程的动态展示,适用于《编译原
理》课程的辅助教学,便于帮助学生直观理解高级语言程序的编译
过程,加深对编译方法的掌握,启发学生将编译原理知识与其他专
业知识以及先进软件开发技术相结合,从而促进学生专业知识和技
能的综合发展。
参考文献:
[1]蒋立源,康慕宁. 编译原理[m].西安:西北工业大学出版社,
2005.
[2]陈火旺,等. 程序设计语言编译原理[j].北京:国防工业出版
社,2000.
[3]蒋秀锋,任志雄. 可视编译器的设计与实现[j].计算机与现代
化,2010,(10):63-67.
[4]李冬梅,施海虎. “编译原理”课程的教学研究与探索[j].计
算机教育,2008,(8):103-104.
高级语言编译过程可视化研究
摘要:针对编译原理教学中存在的知识点多、概念抽象、算法难
于理解的情况,本文设计了一种可视化编译系统,实现了类c 语言
的文法编辑与检查、词法分析、语法分析、语义处理的过程展示。
系统界面布局一致、操作简便,为便于学生观察和分析编译过程,
采用单步分析展示每个分析步骤的分析图表的利用和变化情况,也
提供一次性分析展示整体分析过程和结果。此系统不仅有利于帮助
学生理解编译器的工作过程、原理及其具体实现方法,还有助于促
进学生将多种专业知识和技能综合运用,从而引导他们的学习兴
趣。
关键词:编译过程可视化;词法分析;语法分析;语法制导翻译
《编译原理》是计算机专业一门重要的专业基础课,讲述了将高
级编程语言翻译为机器易于执行的低级语言的编译过程和原理。由
于编译程序过程较复杂,每个阶段又包括多种实现方法,而具体的
实现技术也比较抽象、难懂,一直被学生认为是最难学习的专业课
程之一。基于此,本文设计并实现了一个可视化编译系统,并选择
大家普遍接受的类c 语言作为源程序,实现了包括文法定义和检查、
词法分析、语法分析、语义分析和代码生成的编译过程展示,帮助
学生直观地观察编译过程、理解编译方法,进而辅助其提高高级语
言编程能力。
一、系统功能架构
可视化编译系统主要包括完成了源程序、文法规则的文件操作、
词法分析、语法分析、语义处理等功能模块。其中的每个模块又包
括多个子模块,具体功能架构如图1所示。
二、词法分析
词法分析分成文法规则分析和词法分析两个界面,其中前者主要
实现与文法相关的操作,如词法文法的检查、状态转换图的生成及
状态装换矩阵的生成;后者则通过单步分析和一次分析两种方式实
现对高级语言源程序文本文件拆分单词,形成单词序列的具体过
程。
1. 词法规则编辑与检查。词法规则编辑与检查功能通过浏览历史
文法、示例文法选取、自拟文法输入三种读入方式实现文法的添加,
并可完成文法的修改、删除、保存等操作,系统根据单词描述应符
合正规文法的定义,对文法的合理性进行检查和错误提示。
通过执行正规文法到状态转换图的生成算法,生成并展示所定义
词法的状态转换图,在此图上显示单词的具体分析过程,效果非常
直观,如图2所示。为了便于学生理解状态转换图在计算机中的存
储和处理的实现方法,还在界面上同时显示与状态转换图对应的状
态矩阵,以及单词分析过程中对状态矩阵的查询和使用情况,如图
3所示。
2. 词法分析。对识别单词的具体过程展示,系统提供了单步分析
和一次分析两种方法。在单步分析中,通过实现状态转换图和状态
转换矩阵相应位置的变色处理,使学生更直观地理解词法分析过程
中每个字符的处理细节以及后续状态的选取方法。
三、语法分析
语法分析方法可以分为自顶向下分析法和自底向上分析法两种。
其中自顶向下分析法主要包括递归下降法和ll (1)分析法,自底
向上分析法主要包括优先分析法和lr ()分析法。本系统语法分析
部分对其中较复杂的ll (1)分析法、算符优先分析法和lr ()分
析法都实现了过程展示。语法分析模块的子模块及界面设计尽量与
词法分析部分保持一致,以lr ()语法为例,分为lr ()文法规
则编辑与检查、lr ()语法分析两部分,前者包括文法的添加、修
改、删除、项目集的生成及分析表的生成,后者通过单步分析及一
次分析两种分析方式实现对单词序列的语法分析过程展示,生成的
部分分析表和分析结果展示见图4。
四、语义分析与代码生成
根据语法制导翻译的原理,在系统的语法分析过程中调用语义子
程序,实现了类c 语言的变量声明、算术运算、逻辑运算、if 语句、
for 语句、while 语句等主要高级语言常规语句的语义处理,生成
了四元式序列的中间代码形式。
本文设计实现的可视化编译器实现了文法编辑与检查、词法分析、
语法分析、语义处理和代码生成过程的动态展示,适用于《编译原
理》课程的辅助教学,便于帮助学生直观理解高级语言程序的编译
过程,加深对编译方法的掌握,启发学生将编译原理知识与其他专
业知识以及先进软件开发技术相结合,从而促进学生专业知识和技
能的综合发展。
参考文献:
[1]蒋立源,康慕宁. 编译原理[m].西安:西北工业大学出版社,
2005.
[2]陈火旺,等. 程序设计语言编译原理[j].北京:国防工业出版
社,2000.
[3]蒋秀锋,任志雄. 可视编译器的设计与实现[j].计算机与现代
化,2010,(10):63-67.
[4]李冬梅,施海虎. “编译原理”课程的教学研究与探索[j].计
算机教育,2008,(8):103-104.