- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
软件教育新形势下的编译原理课程体系改革
摘要:现在编译课程的教学对象已经从面向编译器设计者转变为面向软件技术人员,对编译技术相关课程的目标和教学内容提出了新的要求。为此,文章提出一种面向高水平软件人才培养的新的编译技术教学体系,内容涵盖软件系统核心机制、软件基础理论、语言及其分析技能等多个层面和阶段的培养内容。
关键词:编译器;课程体系;培养目标
作为ACM规定的计算机科学主干课程之一[1],编译原理在计算机学科的教学体系中占有重要地位。然而,目前国内外编译原理课程的主要内容来自于20世纪70、80年代编译技术发展阶段的研究成果。其经典教材的内容与教学框架在今天几乎所有编译器教材中都可找到显著痕迹。对于今天的绝大多数学生来说,也许在未来的工作中都没有机会从事编译器本身的设计与研究。因此,编译原理这门难学、难讲的“理论型”课程的学习究竟有什么现实意义,直接决定了编译原理教学的未来发展方向。这一问题的实质,实际上是对课程目标的准确定位。以加州Berkeley大学为代表的国内外计算机领域教育机构与专家对这一问题进行了深入思考,并提出了一系列的教学改革方案。其研究点主要集中在以下几个方面[2-9]:
第一,明确了编译课程教学对象的变化,即从面向编译器设计专家转变为面向一般性的软件专家。Berkeley大学的RastislavBodik在文献[2]中明确表示,其教学内容已经从主要集中于后端优化等最新技术,向更加重视前端分析器设计的方向转变。
第二,设计新型的实验型编译器和小型语言,以尽量满足不同领域教学对象的要求。如采用DSL语言等专用语言,以提高学生对编译技术实际应用的理解与操作能力。
第三,采用辅助工具和方法,尽可能提高教学质量,使学生可以更方便、快捷地掌握编译技术的内容。
以上三点是目前国内外对于编译技术教学所采用的主要思想和方法。然而,仅根据编译课程教学对象的变化,并不足以从软件技术发展和人才教育新需求中宏观把握编译课程发展的趋势。要真正理清编译课程在现代软件学科教学中的位置和需要进行的改革,必须寻找高水平软件人才培养的客观规律,并据此对现有的编译器设计课程的目标、内容和方法进行创新和完善。下面以此为线索,对编译课程的创新体系进行探讨和思考。
1编译课程的历史地位与角色变化趋势
在编译技术飞速发展的时期,编译原理的教学内容属于前沿技术领域。学习这门课程的学生有很多机会成为新型编译器的设计者或完善者。但这种情况在21世纪开始时就已经发生了根本性的改变。
尽管编译技术本身仍有很大发展,但其发展点已经与目前编译课程教学的重点有了很大偏离。新环境下的教学对象不再是编译软件本身的设计者,而是编译软件和编译技术的使用者。换而言之,绝大多数学生学习本课程的目的和效果,已经从本源性的创新向应用型创新转变。
实际上,编译技术本身的应用与发展也正体现了这一发展趋势。在编译器前端技术中,分析算法和分析器设计占了绝大多数。这些技术除了在编译器本体中发挥作用外,在网络管理、中间件设计、软件工具设计和各种格式化文件描述等领域都得到了广泛应用。例如,在CORBA等中间件中出现的各种IDL语言编译器,即是一个典型的例子。
另一方面,对编译技术的深入理解有利于提高学生对计算机软件系统的认知层次。如果只能看到应用软件的表层现象,而不能从本质上抓住软件系统的核心要点,就很难造就具有坚实理论基础和实践能力的高水平软件人才。编译技术无论从理论体系还是实际应用方面,都具有不可替代的优势。但目前的教学方式没有将编译课程与软件系统的核心技术真正关联起来(这里所说的核心,并不是说编译器属于核心软件,而是说对于理解软件系统的本质来讲是核心的),没有真正做到各个层面的软、硬件知识融会贯通。
2课程的定位与目标设定
为明确课程定位,必须首先对所培养对象的目标与未来发展进行准确分析。未来培养的学生应当具有以下基本特征:
第一,具有坚实的软件理论功底,能够熟练运用各种抽象工具对事物及其关系进行建模与分析。
第二,具备一定的研究素养,能够做到知其然知其所以然,真正掌握各项技术的原因与本质。
第三,对软、硬件系统运行机理有着深刻的认识,能够迅速抓住复杂软件的核心,并利用所建立的知识体系和技能分析实际的软件问题。
第四,掌握基本的工具、方法,能够解决实际应用中的问题。对于编译课程来说,可以对以上目标进行更为明确的定义。
第一,通过学习编译技术,建立自动机理论的基础,并使学生掌握自动机理论在编译技术中的应用方法。同时,通过对编译器架构设计、算法设计等进行具体讲解,使学生从语言分析器的角度,看到如何将一个具体语言编写的程序表示为一个抽象模型,以及如何在编译器
文档评论(0)