《编译原理》CAI动态演示系统的研究与开发

时间:2022-01-31 07:15:40

《编译原理》CAI动态演示系统的研究与开发

摘要:由于编译原理课程理论性强、抽象度高、算法体系复杂等特点,难以取得良好的教学效果。本文基于VS2010的C#设计实现了一个编译算法动态演示系统,对该课程中的大量算法的实现过程进行了形象、直观的动态演示,使学生在有限的教学时间里掌握更多的知识,具有提高教学效果、扩大教学范围和延伸教师功能的作用。

关键词:编译原理;算法;动态演示;C#

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2013)43-0157-02

《编译原理》是计算机专业的一门重要专业基础课。课程涉及形式语言、有穷自动机等抽象内容,从词法分析直到代码生成的各个阶段中包含了大量复杂抽象的算法。所以该课程本身逻辑性、理论性和实践性强,学生普遍存在畏难情绪,教学效果不理想。作为授课教师,如何使这门课教学的效果得到改观,是一个需要研究的课题。近年来,CAI(计算机辅助教学)日益成为教育领域中的主要手段,而我院《编译原理》课程辅助教学系统仅仅是利用PowerPoint制作的幻灯片。所以,计算机辅助教学在该课程中的应用还非常不足。为此,我们设计了该算法动态演示系统。学生通过该系统能清楚地观察算法的步骤、动作及关联的数据。因其具有形象、直观等特点可以将教师从烦琐的推导和讲解中解脱出来,使学生在有限的教学时间里理解和掌握更多的知识,使教学突破了空间和时间的限制,具有提高教学效果、扩大教学范围和延伸教师功能的作用。

一、系统设计原则

设计本演示系统时遵循以下设计原则:

1.正确性原则。本系统作为一种教学资源,不能出现科学性错误,绝对不能把错误的概念和理论传授给学生。所以我们将正确性作为第一设计原则。

2.辅原则。引进CAI技术,利用动态的教学演示系统能充分刺激感官,吸引注意力,有利于激发学生的学习兴趣和主动性的发挥,从而有效地突破教学重点、难点。但笔者始终认为计算机只能起到辅助教学的作用,它绝对不能取代教师的作用。因此,在设计系统过程中应按照教学过程的普遍规律,坚持教师的主体地位。

3.适用性原则。系统的制作必须从教学实际出发,按照教学的要求提取出重点和难点内容,考虑这些内容是否适合用计算机进行辅助教学。一味地追求使用辅助教学系统,会导致辅助系统成为教学的干扰因素。

二、系统的总体结构和功能

编译程序一般包括词法分析、语法分析、语义分析、中间代码生成、代码优化、目标代码生成六个阶段,除此之外,还有表格管理和出错处理程序。由于本系统的开发依托于校级教改项目,最终受益于教师的课堂教学和学生的课下自主学习,所以结合课程所使用教材,按教材章节划分模块。主界面中的每章标题都为超链接,点击后可进入各章界面。每章界面风格保持一致性原则,左侧为导航链接,右侧为演示区,在演示系统构造过程中,我们注意了系统的简约性。本系统的画面布局突出主体对象,演示算法所涉及的图表也都尽量简约化。同时,同一画面色彩数量也不多。在系统中我们大量减少了文字数量,过多的文字阅读不但容易使人疲劳,而且还会干扰学生对系统中知识的感知学习。

三、系统的设计与实现

语法分析是编译程序的核心部分。在编译原理中语法分析包括多种分析方法,其中LR分析法适用范围广但又难于理解,所以本节以LR分析法为例来说明系统的设计思路及过程。LR分析法根据现行输入符号和分析栈顶的状态来查看分析表,并根据分析表元素的指示动作采取相应的分析动作,包括移进、归约、接受、报错四类,每一类动作涉及的操作各不相同,其中以归约动作最复杂,涉及产生式、栈顶若干符号和状态的出栈、归约后的符号入栈、转移到新的状态入栈等子动作。要想清晰演示LR语法分析方法,算法所涉及的分析动作和相关数据的动态变化过程是演示的重点。因此,必须在演示界面上显示分析动作及文法产生式、输入串、分析表、分析栈等数据的变化过程。为了控制演示系统的运行,应考虑各种控制按钮。本系统通过“上一步”和“下一步”按钮可自行控制演示步骤及过程,当演示过程结束后,需重新演示一遍时,不必关闭程序重新运行,因此设置了“重新开始”按钮进行清屏。LR分析法演示界面如图1所示。本动态演示系统能够逐步演示算法从初始化到结束的每一个步骤,对于每一种动作,我们都进行了不同程度的分解,用颜色或指针等手段突出显示算法的分析动作和关联数据的变化情况。这些动作的分解和涉及的演示操作方法如表1所示。

根据表1所列的动作分类,在演示过程中按照对应的演示方法逐步演示,直到程序接受或者报错为止。通过逐步演示算法的分析执行过程,学生可以清楚地观察到LR分析算法的分析动作及相应数据的动态变化过程,从而帮助学生深刻理解LR语法分析算法。

本文利用C#语言设计实现了一个编译算法动态演示系统。该演示系统能够通过人机交互的方式,形象细致地展示编译原理中几个核心算法的基本思想、框架结构与执行步骤,使学生能够在界面友好的条件下轻松地掌握编译算法中的重点和难点。该动态演示系统是本院《编译原理》课程校级教改项目的成果,在实际的应用中取得了良好的教学效果。

参考文献:

[1]张晶,陈香凝,董德义,李鑫,赵曦.编译原理[M].哈尔滨:哈尔滨工程大学出版社,2011.

[2]王强,冯燕.编译原理算法的形象教学[J].计算机教育,2010,(3).

[3]谌志群,王荣波.基于Flash的编译算法动态演示系统设计[J].计算机时代,2011,(9).

基金项目:2011年天津工业大学校级教改项目

作者简介:赵曦(1979-),女,河北人,讲师,硕士研究生,研究方向为计算机算法与理论研究。

上一篇:《诗经》中的爱情婚姻诗探赜 下一篇:体育考生短跑全年力量分析