基干MOOC编译原理分阶段课程教学研究.docVIP

基干MOOC编译原理分阶段课程教学研究.doc

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

基于MOOC的编译原理分阶段课程教学研究   摘要:针对编译原理课程教学内容抽象、算法复杂等特点及教学实际,充分探讨MOOC教学模式与编译原理教学过程交叉、融合的可能,提出基于MOOC教学模式的、适于面向对象高级语言的编译原理分阶段课程教学方案,旨在充分发挥MOOC教学模式在编译原理教学环节中的作用,在提高学生专业学习能力的同时,重点培养学生从代码优化的角度审视大型软件开发过程,培养学生提出问题、解决问题的科研思维 关键词:MOOC;编译原理;分阶段教学;面向对象程序设计 0.引言 MOOC(massive open online course,大规模在线开放课程,简称幕课)因其在高校知识资源整合和共享方面具备的天然优势,近年来备受全球教育界的重视,甚至形成了席卷全球的“数字海啸”,代表了现阶段高等教育发展的前沿和趋势。同时,素有“计算机科学与技术皇后”之称的编译原理属于计算机专业核心课程之一,是计算机基础科学研究与实践应用之间的一座桥梁。然而,编译原理教学内容抽象、理论性强、算法复杂、难于理解,教师对理论知识讲解难度较高。因此,如何结合MOOC教学模式重组编译原理教学内容,不仅是MOOC模式优点在计算机类教学过程中的体现,也是编译原理课程发展自身、完善自我的需要 1.基于Mooc的编译原理分阶段教学设计 考虑编译原理课程内容抽象、理论性较强、涉及算法较多等特点,结合MOOC教学模式的优点,旨在更加合理、有效地整合教学资源、共享知识,笔者设计了一种基于MOOC的编译原理分阶段教学模式。教学形式方面,以传统教学模式穿插MOOC视频教学展开,重点关注MOOC在重点知识点讲解过程中的作用;教学内容方面,分阶段讲授理论知识的同时,基于面向对象高级语言设计课程实践内容,实现基础与实践并重 1.1第一阶段:面向对象高级语言的描述、自动机构造、词法分析 1.1.1理论知识讲授 以面向对象高级程序语言词法分析为例,讲述编译原理词法分析阶段在整个编译过程中的核心任务以及解决问题所用的经典算法 (1)依据面向对象程序设计语言词法规则,设计每类单词的正则表达式; (2)讲解以正则表达式为源头,转换为非确定有限自动机(NFA),处理NFA,使其确定化、最小化,最终生成DFA的整个过程; (3)确定有限自动机(DFA)之间的转换算法; (4)讲解由正则表达式为源头,最终获取最简DFA的相关算法及步骤 其中,NFA和DFA生成过程中保存单词类别信息,状态合并时也将单词类别集合合并,以便在使用DFA分析单词时得到单词类别,这一点也是对目前单词识别算法的改进。针对多个NFA合并必然产生冲突的情况,即在某个终态会产生多种单词类别的选择,这时采用人工干预的方法,一般以长单词优先、短单词类别优先 1.1.2实践环节设计 根据本阶段讲授的理论知识,设计课程实践环节,主要实现对输入面向对象程序源代码文件的预处理,多NFA合并为一个NFA,并最终确定、化简处理过程,处理形式最终以DFA五元组形式存储于二进制文件中。通过实践环节,学生能进一步掌握词法分析中的算法思想,进一步深化词法分析中处理源程序的过程及相互关系,巩固所学知识 1.1.3 MOOC展示 本阶段教学内容将录制视频着重讲解次有正则表达式转换到DFA的整个流程及核心算法,使学生能够通过观看视频对此部分内容进行预习、掌握,之后通过翻转课堂的形式解答学生的问题和学习难点。同时,教师录制视频详细讲解编译器实现过程中,本阶段所涉及的编程知识,使学生能跟随视频内容学习相关内容 1.2第二阶段:面向对象高级语言的文法设计、语法分析 1.2.1理论知识讲授 语法分析方面,主要涉及面向对象的文法,包括类、继承、重载、虚函数、接口、属性、事件、委托等的处理。以c#高级语言为例,重点讲述针对面向对象语言各类语法的相关文法设计;了解消除左递归及提取左公因子的相关算法,进一步处理文法;以LL(1)、LR(I)、LALR(1)经典算法为例,讲述以词法分析程序翻译的“单词符号序列”为输入,将单词作为语句成分进行语法检测,若装配的语句成分符合语法规则,则进行相应的翻译,进入第三阶段,若不成功,则说明不符合c#的语法规则 1.2.2实践环节设计 消除左递归及提取左公因子之后的文法,构造LL(1)语法分析表,其中主要包括两个符号集合FIRST(α)和FOLLOW(A);在此基础上构造LR(1)分析表,主要采用构造项目规范族和“展望”搜索方法;最终依据LL(1)和LR(1)分发构造文法总控程序,依据分析表分别进行递归下降分析和从左到右、自上而下的分析,将单词符号序列装配成语句成分,并进行语法检查 1.2.3 MOOC展示 本

文档评论(0)

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

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

1亿VIP精品文档

相关文档