编译实习课程创新教学.docVIP

  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文档。上传文档
查看更多
编译实习课程创新教学

编译实习课程创新教学   摘要:编译实习是深入学习和理解编译原理和技术的重要手段,也是编译课程的重要组成部分。针对当前计算平台和系统的迅速演进和发展,北京大学在编译实习的教学过程中进行创新尝试,让学生面向包括智能手机等在内的新型计算平台开发一个完整的小型编译器。文章介绍编译实习课程的创新思路,对北京大学近3年来的实践情况进行总结分析并提出展望。   关键词:编译原理;编译实习;课程创新;移动平台   0.引言   编译原理是计算机科学与技术专业本科生的必修课程。国内外高校多年的教学实践表明,编译实习是深入理解编译原理和技术的重要途径,即所有学生都应该能够自己动手实现一个面向某个简单语言或语言子集的小型编译器。编译实习可以与编译原理课程安排在同一个学期,也可以分开。由于编译原理课程内容较多并且较难,目前北京大学采用的方法是在学生上完编译原理课程的下一个学期开设编译实习课程。   我们曾经尝试过不同的编译实习题目。例如,在20世纪90年代采用的是面向Pascal语言子集Mini-Pascal的编译器,后来转为实现C语言子集Mini-C的编译器,随着Java语言的流行,最近几年改成了面向Java语言子集MiniJava的编译器。虽然面向的语言不同,但总体目标都是要实现一个相对完整的编译过程,包括词法分析、语法分析、语义分析和类型检查、中间代码生成、编译优化、寄存器分配等编译阶段,最后生成面向一种虚拟机的可执行目标代码,编译器产生的最终结果可以在虚拟机上执行和验证。   进入21世纪以来,各种新型计算平台和环境不断涌现,特别是在2008年之后,随着iOS、Android等移动智能计算平台的流行,许多大学生都拥有了智能手机并热衷于开发智能手机上的应用。如果能够让学生面向包括智能手机在内的新型计算平台开发自己的编译器,使生成的目标代码可以在各种实际的计算机硬件和操作系统上运行,那么会激发学生对计算机技术和编译技术的更大兴趣。   基于此出发点,作为对编译实习课程的创新探索,我们从2010年起在北京大学设立编译实习实验班(以下简称实验班),提出把要实现的编译器运行平台从课程提??的虚拟机平台,转移到实际的计算机硬件和操作系统平台上,如Java虚拟机(JVM)、Windows等传统平台以及较新的Android、iPhone等智能手机平台。通过选修实验班课程,学生可以利用编译基本原理实现一个在实际平台上运行的编译器;也可以选择面向新的语言实现编译器或解释器,如Ruby、Scheme等比较新的语言。另外,在编译器实现过程中,我们通过数据流分析等技术,实现更深入的编译优化功能,提高编译器生成程序的执行效率。   1.设计目标与理念   1.1设计目标   在课程的设计上,实验班专为编程能力较强、有结合最新计算平台开发真实编译器意愿的高年级学生开设。在编译实习普通班上,我们仅仅要求编译结果能在模拟器上运行,但这与实际平台的运行还有一定距离。实验班要求编译结果能在最新出现的平台上运行,如JVM、Android、Iphone/Ipad等,挑战性更大,收获也更大。编译实习课的总体目标是培养学生具有良好的实践能力,充分发挥学生的主动性和积极性,给学生上讲台的机会,以充分展示自己。   具体来说,实验班希望学生达到以下主要目标:(1)深入掌握编译技术并将其应用到编译器的实现中;(2)深入掌握运行平台的细节,在使用中得到更好的认识;(3)开阔视野,提高学习计算机科学的兴趣爱好;(4)培养合作开发大型软件能力以及工程实践能力;(5)培养学生的演讲和沟通能力。   1.2设计理念与特色   实验班的主要目的是把要实现的编译器的运行平台从课程提供的虚拟机平台,转移到实际的计算机硬件和操作系统平台上。实践证明,虽然面向实际应用平台开发编译器原型系统挑战很大,但是这可以在很大程度上提高学生对编译器开发的兴趣,在实际教学中取得很好的效果。通过近3年的实践,我们打造了拥有以下特色的实验班课程。   (1)面对新计算平台不断出现的特点,结合实际的计算平台实现可用的编译器。与普通班采用统一虚拟机作为编译的目标平台不同,实验班要求学生选择一个实际的计算平台作为编译的目标平台,同时鼓励学生选择包括Android、iOS等移动平台在内的新型计算设备作为编译的目标平台。在实践中,学生对新型平台非常感兴趣,如在2011年的编译实习实验板上,4组学生都选择面向Android平台开发相应的编译器。   (2)鼓励学生自主探索相关领域的最新技术,如新计算平台技术、新程序分析技术等。由于使用新的平台需要学习许多新的知识,包括该平台上的体系结构、目标代码格式、相应的运行环境等内容,而这些内容无法通过课程讲授完全获得,因此我们鼓励学生通过阅读相关技术资料,特别是通过上网

文档评论(0)

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

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

1亿VIP精品文档

相关文档