- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理课程教学之思索
编译原理课程教学之思索 摘要:结合编译原理课程教学工作,从课程特点、教学内容的合理取舍、语法和语义分析等难点内容的讲授方式、实验内容的设计等方面进行深入探讨,对教学过程进行总结,讲述如何提高教学质量。
关键词:编译原理;课程内容;实验环节
文章编号:1672-5913(2013)18-0066-03
中图分类号:G642
0 引言
编译原理是计算机专业本科生的重要核心课程,通常开设在大学3年级。编译器是计算机3大系统软件之一,其构造原理和技术是计算机科学技术领域的重要组成部分。虽然绝大多数计算机专业学生未来不可能去构造或维护一个主流程序设计语言的编译器,但与编译原理相关的模型、理论和算法可以用在多种应用领域,将对研究开发产生有益的影响。学习该课程可以培养学生抽象思维、独立解决复杂问题、编程和调试等涉及多门专业课程知识的综合应用能力。
编译原理课程内容抽象、理论性强、形式化方法不易理解,对学生编程实践有较高的要求。对于教师而言,如何在有限的学时内优化教学内容,合理安排实验环节,是值得探讨的问题。
1 课程特点
编译领域里的经典教材作者Alfred V.Aho认为编写编译器的原理和技术还可以用于编译器设计之外的众多领域,这些原理和技术通常会在一个计算机科学家的职业生涯中多次被用到。这句话给出了编译原理课程的教学定位——兼具理论与实践两方面的高要求。
编译器构造各阶段的工作均有其抽象理论基础,涉及多种数学模型,词法分析阶段涉及正则表达式与有穷状态自动机理论;语法分析阶段涉及上下文无关文法;语义分析阶段涉及属性文法、类型系统;而树形结构是表示程序语法结构以及源程序到中间代码翻译的重要模型。编译器中的算法研究同样重要,必须考虑算法的功能、通用性,其中语法分析阶段的算法最为典型,依次引入了一系列算法。而编译器开发的实践性强,需要学生实际动手实现一个规模较大的编译器,这本身是一个较复杂的软件工程项目,必须考虑子模块划分、模块之间信息传递、算法效率、编译器构造自动工具等多方面因素。
编译原理融合多门专业课程,包括来自于计算机科学不同领域的思想,如高级语言程序设计、形式语言与自动机理论、数据结构中树及图形算法;操作系统中存储分配方式、人工智能中的贪婪算法、启发式搜索技术;汇编指令系统等。编译原理和高级语言程序设计联系紧密,学好该门课程有利于学生对程序设计语言的理解,可以迅速掌握新的语言工具,在遇到新的程序语言时,学生不会因为没有学过某一门语言而无从人手,这对学生今后从事软件开发工作有重要价值。编译原理课程蕴含着计算机学科中解决问题的思路和方法。学习编译原理课程,不仅要学习如何构造编译器,还要学习解决复杂和开放性问题的一般方法,从中接受的思维训练将会在今后的学习、工作中逐渐体现其价值。
2 合理安排课程内容,突出重点,注重方法
厦门大学计算机科学系的编译原理课程历年采用经典编译教材“编译原理、技术与工具”,其中讲解的核心编译原理是教学内容的重要部分,包括词法分析、语法分析、语义分析、中间代码生成以及运行时环境、优化和代码生成方法的基本技术,教材中对编译前端的技术进行了详细的阐述,但在一个学期60~64学时课堂讲授中,往往无法详尽地介绍所有内容,需要突出重点,对某些章节适当选择。
例如,运行时环境中有关源程序语言相关问题的讨论、非局部命名的访问、参数传递等高级程序语言设计可略讲,向学生列举这些技术在哪些相关课程、书籍或文献中找到参考,拓宽学生思路,培养其自学能力。代码生成、代码优化等编译器后端技术限于学时数,往往涉及甚少,匆匆带过。而这一部分内容对于编译器构造十分重要,关系到生成代码的质量,也是现代编译技术的研究重点。在教学中可介绍代码优化的主要来源、几种经典的优化方法,优化的主要数据结构和实现技术,让学生对这部分知识有所了解,便于将来深入学习。
又如,语法分析方法是编译教学的重点,详细介绍自顶向下分析和自底向上分析,LR分析中有LR(0)、SLR、LR(1)、LALR不同方法,若拘泥于教材逐一讲授,学生较难接受,没有头绪。教师注重讲授方法,在讲解过程中不断提出问题,寻求解决技术及其背后的原理。在语法分析讲授中先介绍递归子程序法,可以用该方法编写某些语法的语法分析器,但这必须对于每个文法手工编写相应的编译程序,教师提出是否可以找到非递归的自动生成语法分析器的方法问题,由此引出LL(1)分析方法。进一步提出LL(1)分析方法适应的文法是有限定的,是否有更普遍适用的分析方法问题,由此引出自底向上的LR分析方法,从SLR、LR(1)到LALR方法,每一种分析方法的引入相互关联。这一方法能够保证语法分析这一要点有清晰的脉络贯穿,让学生能把握这一主线。
语法制导定义
您可能关注的文档
最近下载
- 小学英语自然拼读法基本规则.doc VIP
- 肿瘤内科护理常规.pdf VIP
- 消防设施通用规范GB 55036-2022与《消防给水及消火栓系统技术规范》GB 50974-2014失效条款对比分析.pdf VIP
- 《预防导尿管相关尿路感染(CAUTI)指南2025》解读(2).docx VIP
- 船员起居舱室.pdf VIP
- 慢性肾脏病PPT【71页】_20212085.pptx VIP
- 《闻鸡起舞》儿童绘本成语故事演讲ppt课件(图文).pptx VIP
- 6.13 中国华能集团公司电力安全生产奖惩办法 .pdf VIP
- 山西汾酒-市场前景及投资研究报告-汾酒复兴进阶.pdf VIP
- 中建一局集团公司总承包公司质量管理手册(2013版)(OCR).pdf VIP
原创力文档


文档评论(0)