高级语言编译过程可视化研究

高级语言编译过程可视化研究

摘要:针对编译原理教学中存在的知识点多、概念抽象、算法难

于理解的情况,本文设计了一种可视化编译系统,实现了类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.


相关文章

  • 三种常用分子模拟软件介绍
  • 三种常用分子模拟软件介绍 一.NAMD NAMD(NAnoscale Molecular Dynamics)是用于在大规模并行计算机上快速模拟大分子体系的并行分子动力学代码.NAMD用经验力场,如Amber,CHARMM和Dreiding, ...查看


  • 信息管理与信息系统就业方向
  • 信息管理与信息系统就业方向 业务培养目标和要求 业务培养目标:本专业培养具备现代管理学理论基础.计算机科学技术知识及应用能力,掌握系统思想和信息系统分析与设计方法以及信息管理等方面的知识与能力,能在国家各级管理部门.工商企业.金融机构.科研 ...查看


  • BASIC万花筒
  • BASIC万花筒 --你所熟悉和陌生的BASIC 您知道吗?BASIC四十四岁了. 经常有网友问:要学编程,应该从哪种语言入手?作为一个热爱了BASIC 20年的编程爱好者, 我会毫不犹豫的告诉你:是BASIC. 不管你过去对BASIC有何 ...查看


  • 软件开发过程概述
  • 第1章 软件开发过程概述 1.1 软件开发过程概述 1.1.1 软件的概念 软件(Software)简单的说就是那些在计算机中能看的着,但摸不着的东西,概念性的说软件也称为"软设备",广义地说软件是指系统中的程序以及开发 ...查看


  • 正确的学习态度
  • 维基百科的解释: 黑客实际是褒义词,维基百科的解释是喜欢用智力通过创造性方法来挑战脑力极限的人,特别是他们所感兴趣的领域,例如软件编程和电器工程.个人电脑,软件和互联网等划时代的产品的都是黑客创造出来的,如苹果的Apple电脑,微软的Bas ...查看


  • [机电控制系统仿真与软件设计]
  • 机械与车辆学院 <机电控制系统仿真与软件设计> 报告 (2014-2015学年第一学期) 课程设计题目:水塔水位机电控制系统设计与仿真 一.课程设计性质和目的 机械电子工程专业是一个对实践.应用能力要求很强的专业,机电控制系统设 ...查看


  • 机器人示教编程方法
  • 机器人示教编程方法 张爱红 张秋菊 江南大学机械工程学院, 江苏无锡 214000 摘要:针对工业机器人, 本文介绍了不同的示教编程方法并且分析了机器人语言系统的构成, 最后阐述了用于M OT OM AN 工业机器人的在线示教编程方法及其虚 ...查看


  • 人工智能PROLOG语言简介
  • 信息技术与工程学院 课程名称 论文题目 专业班级 作 者 指导教师 成 2016 年6月 16 日 绩 人工智能PROLOG语言简介 因特网上丰富的人工智能教育资源为我国高中人工智能教育的开展提供了一个强有力的学习支持.虽然大多以国外网站居 ...查看


  • 计算机语言发展历程
  • 简单介绍计算机语言的发展历程. 自1946年第一台电子计算机问世以来,计算机已被广泛地应用于生产.生活的各个领域,推动着社会的进步与发展.特别是Internet出现后,传统的信息收集.传输及交换方式发生了革命性的改变. 计算机科学的发展依赖 ...查看


热门内容