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