- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
国内外编译原理课程实践教学现状分析
冯向萍
(新疆农业大学计算机与信息工程学院)
摘 要:本文主要从教材的选择,实践项目的设置以及实践课程占总评成绩的比例等方面分析和比较了国内外多所高校编译原理课程实践教学的基本情况和特点。根据我院编译原理课程开设的实际情况,提出相应的对策,实现对我院计算机科学与技术专业编译原理课程实践项目的科学,合理设置,以提高学生的动手能力,锻炼学生的逻辑思维能力。
关键词: 课程 实践教学 现状
“编译原理”课程是计算机专业必修的一门重要的专业基础课程,也是计算机系统软件中非常重要的一个分支。在众多的原理性学习课程中,编译原理主要承担了语言实现原理、方法和技术的介绍。但该课程内容有一定深度和难度,且综合性比较强,涉及的先修课程比较多,包括离散数学、程序设计、数据结构、汇编语言、操作系统等,对学生专业知识掌握情况也要求比较高,学生在学习过程中感到内容抽象、算法复杂,是一门公认比较难学、比较难教的课程。同时,计算机学科是一门对实践性要求比较高的学科,很多东西不能认为听懂看懂就是理解、掌握,需要编程去实现才能说是真正理解、掌握。因此,在考虑如何使学生学好“编译原理”课程理论知识时,如何把理论和实践结合起来,促进和激发学生的学习兴趣,锻炼学生用计算机解决问题的能力和逻辑思维能力,是编译原理教学的一个主要而且极其重要的问题。本文主要对国内外编译原理课程的实践教学现状进行了分析,希望从中找到适合我院学生编译原理实践课程的教学方法。
一、 国外高校编译原理课程实践教学情况
(一) 斯坦福大学
斯坦福大学(Stanford University)的编译课程分为两个阶段,课程代码分别为CS143和CS147,CS143主要针对在Windows平台下开发编译器的本科生教学,CS147主要针对有一定编译理论和Unix环境下编程经验的的研究生。我们在此主要分析CS143课程。斯坦福大学编译课程的主要参考资料为两本,一本是《Principles, Tools, and Techniques, Second Edition》,这本书被读者称为编译理论知识讲解的“龙书”,主要注重编译理论的详细讲解。另一本书为《Parsing Techniques:A Practical Guide, Second Edition》,侧重点在于分析研究编译中各种语法分析实现的各种算法和理论技术,并从中找到解决每一个问题的最优的方法。
CS143编译课程学时为46学时,其中期中考试占2学时,讨论14学时,即课堂教学学时为30学时。
课程实验内容主要由词法分析(使用 Flex)、语法分析(使用 Bison)、语义分析和综合实验四部分组成,根据实验的难度不同,在实验成绩中所占的比例也不同,前面四个实验分别占实验总成绩的 50 分、60 分、125 分和 125 分。整个实验部分占编译课程总评的 70%。实验在课程的不同阶段发布,要求学生定时提交。课程组织主要由一名授课教师和若干名助教组成,方便学生答疑。
(二) 卡内基梅隆大学
卡内基梅隆大学(Carnegie Mellon University)在编译技术领域享有很高的国际声誉,该校的编译课程使用的主要参考教材是被业界称为“虎书”的《Modern Compiler Implementation in ML》。编译实践内容基于一个特定语言L1设置,题目共有 5 道:①扩展给定的 L1 语言的编译器,使之能够将源代码转换成真实的X86 汇编代码;②实现支持 L2 语言的完整编译器;③实现支持 L3 语言的完整编译器;④实现另一个支持 L3 语言并生成安全代码的完整编译器;⑤两者选其一,实现 L3编译器的各种代码优化或者实现 L3 的垃圾收集器,以上五个作业在实验成绩中占相同的比重。
卡内基梅隆大学编译课程实验分数占编译课程总评成绩的 70%,其余的30%是书面作业成绩。课程的组织由一名主讲教师和若干名助教组成。卡内基梅隆大学编译课程的监督措施也很到位,每次作业的发放时间和提交时间都固定,超过预定时间两天未交者成绩按0分计,对于晚交作业的学生也有相应的惩罚措施。程序代码的相似性都有专门的工具检查。
(三) 加州大学伯克利分校
加州大学伯克利分校(University of California, Berkeley)的编译课程编号为CS164,课程名称为《Programming Languages and Compilers》,该校指定了三本参考教材,分别是称之为的“龙书”的 《Compilers: Principles, Techniques, and Tools》,《Thinking in C++》和《Python Essential Referenc
文档评论(0)