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

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

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《编译原理》CAI动态演示系统的研究与开发.doc

《编译原理》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#语言设计实现了一个编译算法动态演示系统

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档