编译课程教学相关工具资源研究.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文档。上传文档
查看更多
编译课程教学相关工具资源研究

编译课程教学相关工具资源研究   摘要:结合编译课程教学特点,收集当前常用的编译资源,并从编程语言和教学知识点两个角度对这些资源进行归类分析;在此基础上,探讨如何利用这些资源开展编译课程的课堂教学和实践教学。 关键词:编译原理;工具资源;实践教学 1.背景 编译理论与技术是计算机科学中发展最迅速、最成熟的一个重要分支,程序设计语言和编译的发展集中体现了计算机科学的重要成果与精华。编译原理课程是计算机科学与技术专业的专业必修课程,主要讲授程序设计语言编译程序构造的基本原理和方法。编译程序的开发堪称经典理论和先进技术紧密结合的典型示范,因此理论学习和实践的紧密结合是本课程的突出特色。通过编译程序构造的问题,可以体验到如何从实际需求中提出理论问题、理论研究推动技术进步、运用技术工具解决实际问题的过程。 在经典理论的支持下,在编译程序的研制过程中,产生了非常丰富的工具资源。在这些工具资源的支持下,编译程序开发的自动化程度得到了显著提高;相对其他软件开发任务,编译程序开发在效率和质量上的优势非常明显。更为重要的是,编译的理论和技术对于计算机科学中的其他领域也有重要的影响。一直以来,编译的理论和技术在程序设计语言的实现、针对计算机体系结构的优化、新的计算机体系结构的设计、自然语言理解、网络信息处理、网络协议的分析与实现等领域都是不可或缺的。国外著名大学(如美国哥伦比亚大学、哈佛大学和斯坦福大学等)的编译课程教学都特别重视相关的课程实践项目。以哥伦比亚大学为例,在编译原理的课程教学中开展了贯穿整个学期的课程实践项目。在项目中,学生分成小组,自主设计并实现一个小的语言,而这个语言涉及了丰富的领域,包括量子计算、音乐合成、计算机图形学、游戏、矩阵计算和很多其他领域。在这些教学实践中,很多编译开发工具都被应用于各种案例中,包括ANTLR、LEX和YACC等编译领域经典的开源软件工具。 通过收集编译资源(包括开源的编译器和编译程序开发工具),以及这些工具在计算机科学各领域中的成功应用案例,可以为开展案例式教学改革打下坚实的基础。笔者收集了编译领域常用的开源软件工具及其应用案例,并对其进行归类分析和整理,以形成支撑编译课堂教学和实践教学的资源库。基于该资源库,在今后的编译原理课程教学中,可以通过采取基于案例的教学方法,形象地向学生展示编译研究中“经典理论和先进技术有机结合”的突出特点,使学生能够通过具体的案例切实体验编译经典理论在各领域的重要作用。 2.编译资源分析 在几十年的研究过程中,编译领域已经形成了很多编译资源,如LEX、YACC、JavaCC为代表的编译模块开发工具,以及精简语言编译器、产品级开源编译器等。这些工具实现了从Ada、C、Pascal等面向过程语言到Java、C++等面向对象语言的编译程序,覆盖了文法、词法分析、语法分析、中间代码生成、代码优化、目标代码生成等编译原理教学中所有的知识点。基于这些工具也开发了SQL、XML分析等计算机科学其他领域的应用。下面,笔者从生成语言、知识点覆盖等角度对互联网上的编译资源进行整理分析。 2.1从编程语言的角度分析 从编译资源所面向的程序语言来看,从面向特殊领域的Fortran语言、DSP语言,面向过程的C语言、Pascal语言,到常见的面向对象的Java语言、C++、C#语言等,均有种类繁多的分析器、生成器、目标代码优化器等可用于案例教学的编译资源。 1)面向过程语言的编译资源。 这方面的编译资源主要针对C语言和Pascal语言。C语言作为最被广泛使用的编程语言,也拥有最多的编译工具资源,如YACC、LEX、ACCENT、BANSHEE等经典工具均可用来产生C语言编程的分析器、生成器。其中,最知名的C语言解析器生成器YACC已经在各种场合得到了广泛应用。YACC也是常用于编译课程教学的工具,它采用LALR(1)语法分析方法,最初由ATT为Unix操作系统开发,在漫长的演变中产生了如Berkeley YACC、GNU BISON、MKS YACC和Abraxas YACC等变种版本,也出现了AYACC、YACC++等面向ADA、c++其他语言的编译器。由于所产生的解析器需要词法分析器配合,因此YACC经常和词法分析器产生器LEX一起使用,目前已有IEEE相关标准对YACC和LEX的功能进行了标准化描述。此外,ACCENT、BEG、CKIT等面向c语言的编译资源也可以用于编译课程教学。据我们初步统计,目前互联网上可用的针对c语言的编译资源多达20余种,涵盖了词法分析、语法分析、前端、后端生成器、代码优化、程序分析等编译过程中的各个环节。 2)面向对象语言的编译资源。 面向对象语言已成为程序开发的主流语言,在应用层软件、

文档评论(0)

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

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

1亿VIP精品文档

相关文档