




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1/7软件教育新形势下的编译原理课程体系改革摘要现在编译课程的教学对象已经从面向编译器设计者转变为面向软件技术人员,对编译技术相关课程的目标和教学内容提出了新的要求。为此,文章提出一种面向高水平软件人才培养的新的编译技术教学体系,内容涵盖软件系统核心机制、软件基础理论、语言及其分析技能等多个层面和阶段的培养内容。关键词编译器;课程体系;培养目标作为ACM规定的计算机科学主干课程之一1,编译原理在计算机学科的教学体系中占有重要地位。然而,目前国内外编译原理课程的主要内容来自于20世纪70、80年代编译技术发展阶段的研究成果。其经典教材的内容与教学框架在今天几乎所有编译器教材中都可找到显著痕迹。对于今天的绝大多数学生来说,也许在未来的工作中都没有机会从事编译器本身的设计与研究。因此,编译原理这门难学、难讲的“理论型”课程的学习究竟有什么现实意义,直接决定了编译原理教学的未来发展方向。这一问题的实质,实际上是对课程目标的准确定位。以加州BERKELEY大学为代表的国内外计算机领域教育机构与专家2/7对这一问题进行了深入思考,并提出了一系列的教学改革方案。其研究点主要集中在以下几个方面29第一,明确了编译课程教学对象的变化,即从面向编译器设计专家转变为面向一般性的软件专家。BERKELEY大学的RASTISLAVBODIK在文献2中明确表示,其教学内容已经从主要集中于后端优化等最新技术,向更加重视前端分析器设计的方向转变。第二,设计新型的实验型编译器和小型语言,以尽量满足不同领域教学对象的要求。如采用DSL语言等专用语言,以提高学生对编译技术实际应用的理解与操作能力。第三,采用辅助工具和方法,尽可能提高教学质量,使学生可以更方便、快捷地掌握编译技术的内容。以上三点是目前国内外对于编译技术教学所采用的主要思想和方法。然而,仅根据编译课程教学对象的变化,并不足以从软件技术发展和人才教育新需求中宏观把握编译课程发展的趋势。要真正理清编译课程在现代软件学科教学中的位置和需要进行的改革,必须寻找高水平软件人才培养的客观规律,并据此对现有的编译器设计课程的目标、内容和方法进行创新和完善。下面以此为线索,对编译课程的创新体系进行探讨和思考。1编译课程的历史地位与角色变化趋势3/7在编译技术飞速发展的时期,编译原理的教学内容属于前沿技术领域。学习这门课程的学生有很多机会成为新型编译器的设计者或完善者。但这种情况在21世纪开始时就已经发生了根本性的改变。尽管编译技术本身仍有很大发展,但其发展点已经与目前编译课程教学的重点有了很大偏离。新环境下的教学对象不再是编译软件本身的设计者,而是编译软件和编译技术的使用者。换而言之,绝大多数学生学习本课程的目的和效果,已经从本源性的创新向应用型创新转变。实际上,编译技术本身的应用与发展也正体现了这一发展趋势。在编译器前端技术中,分析算法和分析器设计占了绝大多数。这些技术除了在编译器本体中发挥作用外,在网络管理、中间件设计、软件工具设计和各种格式化文件描述等领域都得到了广泛应用。例如,在CORBA等中间件中出现的各种IDL语言编译器,即是一个典型的例子。另一方面,对编译技术的深入理解有利于提高学生对计算机软件系统的认知层次。如果只能看到应用软件的表层现象,而不能从本质上抓住软件系统的核心要点,就很难造就具有坚实理论基础和实践能力的高水平软件人才。编译技术无论从理论体系还是实际应用方面,都具有不可替代的优势。但目前的教学方式没有将编译课程与软件系4/7统的核心技术真正关联起来这里所说的核心,并不是说编译器属于核心软件,而是说对于理解软件系统的本质来讲是核心的,没有真正做到各个层面的软、硬件知识融会贯通。2课程的定位与目标设定为明确课程定位,必须首先对所培养对象的目标与未来发展进行准确分析。未来培养的学生应当具有以下基本特征第一,具有坚实的软件理论功底,能够熟练运用各种抽象工具对事物及其关系进行建模与分析。第二,具备一定的研究素养,能够做到知其然知其所以然,真正掌握各项技术的原因与本质。第三,对软、硬件系统运行机理有着深刻的认识,能够迅速抓住复杂软件的核心,并利用所建立的知识体系和技能分析实际的软件问题。第四,掌握基本的工具、方法,能够解决实际应用中的问题。对于编译课程来说,可以对以上目标进行更为明确的定义。第一,通过学习编译技术,建立自动机理论的基础,并使学生掌握自动机理论在编译技术中的应用方法。同时,通过对编译器架构设计、算法设计等进行具体讲解,使学5/7生从语言分析器的角度,看到如何将一个具体语言编写的程序表示为一个抽象模型,以及如何在编译器设计中实现这一模型,进而提高其抽象设计与实现的能力。第二,通过介绍编译器技术中的各项技术及其原理,为学生展示一个完整的理论体系与技术。具体来说就是利用理论建立模型,并以此为基础提出针对性的优化方法。第三,通过对软、硬件系统本质的对比与分析,明确指出编译技术的本质是解决软、硬件机理上的差异,并通过具体的案例向学生展示编译器设计者解决这一问题的思路和方法。由此为学生建立一条深入理解软、硬件系统核心运行机理的途径奠定基础。第四,使学生掌握语言建模、分析算法设计、代码优化等多种工具,为学生运用这些技术解决实际问题奠定基础。根据上述分析,应当对新形势下编译课程的定位进行调整,具体思路如下。1培养软件基础理论的功底,具备建立抽象模型和编程实现的能力;2培养对符号流处理的基本程序设计技巧和算法基础;3利用来自实际应用的例子提高学生在实战中运用技术解决问题的能力;6/74通过实际软件的例子,深入讲解系统如何实现各种高级语言抽象元素的方法,为建立完整的软、硬件运行机理和提高实际软件研发能力提供保证。3课程目标的实现与课程改革的思路应用领域的扩展如前所述,编译技术在软件学科中的作用早已不再局限于培养编译器设计者这个单一的目标。实际上,编译技术是诸多相关技术的基础。例如在虚拟机技术中,各种代码优化和程序解释执行的思想都与编译后端的优化密切相关。而符号调试相关的技术则与反汇编、类型理论与实现方法、控制流分析等技术密切相关。在程序分析技术中,各种程序切片、数据流/控制流分析技术得到广泛应用。在软件测试领域,这些技术也被用于进行代码覆盖和优化测试用例设计等多个方面。除此之外,在诸如数据检索、知识建模与推理、网络协议、面向方面的编程等方面,各种编译器前端与后端技术都得到广泛应用。在各种脚本语言和文档格式语言中,编译器前端技术也同样得到广泛应用。根据上述分析不难看出,在现代软件开发中,编译技术的应用范围已经远远超出传统意义上的编译器设计。实际上,除了编译器优化、代码生成等后端技术仍非常活跃外,各种新型应用对前端分析器或分析技术也同样有着7/7巨大的需求。在这种情况下,编译课程的教学对象和内容也必然发生变化,其所需要具有技能的侧重点也与传
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年二手车买卖合同及车辆维修保养服务
- 2025版跨国公司外籍员工入职及培训服务合同
- 2025年土地经营权转移代理费合同模板
- 2025年汽车租赁公司汽车租赁公司租赁车辆租赁保证金退还服务合同
- 2025版砌体工程特种施工分包合同示范文本
- 2025版海绵城市土建工程承包合同示范
- 2025材料预付款高性能材料预付款合作协议
- 2025年大数据公司创始股东合作协议及数据处理安全协议
- 2025版送餐服务合同违约责任规范范本
- 2025年度矿山开采水土保持验收技术服务协议
- 房地产样板间装饰工程重点难点及措施
- 康复科护理金点子
- 工地油库安全管理办法
- 全球治理转型-洞察及研究
- 高等数学课程教学中遇到的问题及解决对策
- (高清版)DB32∕T 4001-2025 公共机构能耗定额及计算方法
- 电力物资打包方案(3篇)
- 2025至2030中国味精行业发展趋势分析与未来投资战略咨询研究报告
- 你的样子就是教育的样子-一位校长对教师行为规范的深度思考建议收藏
- 中医治疗泌尿系结石课件
- 屠宰场入股合同协议书
评论
0/150
提交评论