课程搜索
 
返回首页
国家级精品课程
省级精品课程
校级精品课程
 
今天是:
 当前位置:首页 > 观点争鸣 > 正文
深化教学改革,建设编译原理精品课程
来源:教育精品课程网站  时间:2007-10-23 15:39:58
一、编译原理课程的地位和作用
 
    自从二十世纪50年代中期诞生世界上第一个高级语言编译器—Fortran语言编译器以来,编译技术不断进步,它已经成为计算机科学中发展最迅速、最成熟的一个重要分支。编译技术集中体现了计算机科学发展的重要成果与精华。ACM图灵奖是授予在计算机技术领域作出突出贡献的科学家的最高奖励,自1966年设立以来,程序设计语言、编译理论与方法的方面的得奖成果约占总数的1/3。可见,程序语言及其编译的研究在计算机科学中的始终处于非常重要的地位。
    从计算机应用的发展来看,编译技术在其中也有着极其重要的和不可替代的作用。正是在编译技术的支持下,程序设计才从以繁琐的低级语言为工具,发展到以接近自然语言和数学语言的高级程序设计语言为工具,软件开发也从模块化的软件开发方法发展到了面向对象的开发方法。编译技术的发展极大地提高了软件开发的效率,深刻地影响着软件开发方法的变革,推动着计算机应用不断地向社会的方方面面延伸。
    五十多年来,随着编译技术的发展,有关编译原理和技术的内容被逐步引入到了计算机专业本科教学中。从早期各阶段ACM和IEEE的计算机专业教学计划,到后来的Computing’91,再到近年ACM和IEEE联合制定的CC 2001,以及中国计算机学会、全国高校计算机教育研究会制定的CCC2002,都把有关编译原理和技术的内容列入核心教学内容。目前本课程的内容覆盖了程序设计语言领域中的程序设计语言概述、虚拟机、语言翻译介绍和语言翻译系统等多个知识单元。
    编译原理课程以介绍程序设计语言编译程序构造的基本原理和设计方法为教学目标。通过本课程的学习,一方面使学生掌握和理解编译系统的结构、工作流程以及编译程序各组成部分的设计原理和实现技术,获得分析、设计、实现和维护编译系统的初步能力;另一方面,通过学习编译的理论和方法,提高学生对程序设计语言、操作系统、计算机原理和体系结构等课程知识的综合理解。对于将来从事编译系统设计工作的学生来说,编译原理课程将为其打下坚实的能力和知识基础;对于从事其它工作的学生,也能够提高他们对计算机系统总体的认识。此外,课程介绍的经典的语言分析方法和工具,对于设计一些实用的工具和软件,如自然语言理解、网络信息处理、网络协议的分析与实现等,都是必备的基础。因此,编译原理课程是高等学校培养计算机专业人才的核心课程。
二、国防科学技术大学编译原理课程的历史沿革
     国防科学技术大学计算机学院的科研以巨型机研制为主要特色,取得了许多重要的科技成果,先后获得了一系列的国家级科技成果奖。每研制出一台新的计算机,都伴随着自主开发的各种编译器的诞生。自从二十世纪60年代开始编译技术的研究工作以来,编译技术一直是计算机学院的一个重要研究方向。我们于1974年研制出我国第一个Fortran编译器。在441B-Ⅲ、718工程中心计算机DJ151语言系统、特别是银河系列机的研制过程中,编译系统都处于非常重要的地位,为总体系统的成功发挥了不可替代的作用。
    在不断取得科研成果的同时,我们及时将有关编译技术的内容引入到教学中,并于1980年正式开设编译原理课程,为文革后恢复高考的第一届软件专业学生讲授,是国内最早开设该课程的学校之一。此后,编译原理一直作为计算机专业基础课列入教学计划,并开始全面系统的课程建设,如制定大纲、编写教材、开展教学改革、设计配套实验等。在相当长的时期内,本课程按照软件专业80学时、硬件专业60学时分别开设。1990年,根据教学计划的调整,将硬件和软件专业的学生按照宽口径培养的原则,统一为60学时。2002年,根据新的教学计划,将课时调整到54课时。到目前为止,本课程的建设始终瞄准国际先进水平,每次教学计划的调整都反映了国际最新研究成果和权威教学计划的要求。
三、编译原理课程建设实践
 (一)结合科研优势,深化教学改革
    本课程的教学以培养学生的知识、能力和素质为目标,以适应计算机科学、特别是编译技术发展为主线,以经典理论的学习为基础,以分析和解决问题的能力作为实践性教学环节的突破口,突出教学内容的基础性和实践性。结合计算机学院在系统软件开发上的优势,特别是在银河编译器设计方面的成果,形成了计算机核心专业课的特色。通过课程教学内容的改革,不断完善现有教材的知识体系,突出课程理论性和实践性强的特色,既介绍本领域的经典理论和技术,又能反映当前最新的、重要的发展。在课程教学内容改革方面,课程小组贯彻知识、能力、素质辩证统一的思想,参照国外名校的教学内容,结合学术界前沿性研究成果,特别是结合我院在型号任务的编译器的研制中取得的最新成果,不断充实、更新教学内容,将最新的进展转化为课堂教学内容,帮助学生了解本领域的前沿及最新发展动态,培养学生的科研意识和素养。例如,近年来我们结合我院在编译技术方面的研究成果,在制定新的教学大纲时及时引入了并行编译的内容,并将科研实践的经验和成果吸收到新版教材中。
  (二)建设系列课程,注重知识融合
    编译原理课程是计算机学院系统软件系列课程的重要组成部分。课程小组长期跟踪、研究、借鉴国外相关教材和教育计划,坚持按照系列课程建设的目标来加强改革,不断充实编译原理课程的内容,课程知识点的安排力求体现系列课程建设的要求,充分考虑与相关课程在内容上的衔接和呼应,保证了课程建设的科学性、系统性和先进性。例如,根据CC2001和CCC2002的知识点,理清本课程与程序设计、数据结构、算法设计与分析、操作系统和体系结构等相关课程的关系,确定本课程应该覆盖的知识点。同时,课程小组加强系列课程之间横向、纵向联系与分工的研究,协调本课程在计算机知识体系中与其它课程之间的关系,开设了一些配套课程与选修课程,对本课程知识进行完善与补充。例如,为研究生开设了程序语言与编译、并行编译等配套课程,为学生提供了不同层次的选择。此外,还根据系统软件、程序设计和软件工程等相关系列课程的发展和变化,更新并完善课程实验方案。
   (三)形式内容呼应,丰富教学手段
    本课程采取了丰富的教学手段以培养学生综合运用知识的能力:课堂教学坚持采取讨论式、启发式教学方法,改变满堂灌的教学方式,活跃课堂气氛,激发学生的创新意识,提高了教学效果;通过设计综合实验,为学生提供综合运用知识、培养科研素质的机会,锻炼了学生的自主性;综合实验的验收采取演示、讲解和答辩相结合方式,使学生的科研能力和人文素质得到全方位的锻炼。
    在信息化时代的今天,课程小组特别重视通过对多媒体网络教学环境的利用和建设。本课程不仅课堂教学全部使用多媒体课件,而且还建立了课程教学的专门网站(http://sei.nudt.edu.cn/cp/),充分利用现代教学手段和网络资源,构建了在线资源、案例库、答疑区,增加与学生的交流,提高了教学质量。课程的教学资料,包括教学大纲、多媒体课件、实验所需软件都可以通过网络实现共享,并经常性保持更新,很好地满足了教学的需要。教师和学生可以通过网络环境进行备课和学习,并通过网络平台提供的多媒体交互手段进行有效的沟通,收到了很好的效果。
   (四)加强实验环境建设,不断完善编译原理实验体系
    本课程目前使用计算机学院投资500万元建设的现代化教学实验室,实验环境良好。在建设实验室硬件环境的同时,课程小组更加重视研究性和探究性学习等现代教育理念在实践教学中的应用。我校是国内最早开设编译原理综合实验的学校之一。本课程的实践教学环节充分体现了综合性、设计性和自主性的特色。课程实践包括单元实验和综合实验两部分。其中,单元实验主要包括LEX、YACC和JavaCC等经典工具的分析和使用;综合实验是对一个包含现代程序设计语言典型成分的语言的编译器进行分析和扩充。其中综合性实验为整个实验的重点,所占比例超过60%。在综合实验中,学生以PL语言编译器为基础,扩充PL语言成分,并对相应的编译程序进行扩充,扩充的内容包括:基本的控制语句、函数的说明和使用、数据类型等,并鼓励学生自主提出扩充的语言机制并独立设计实现,以培养学生的研究意识。这种综合性的课程实践为学生提供了一个综合应用本课程以及其他相关课程(如程序设计、数据结构和算法、体系结构和计算机组成原理等课程)的知识的实践机会,在实验中不但极大地提高了动手实践的能力、培养了科研素质,而且也更深刻地体会到了计算机科学理论的作用和意义。
四、编译原理课程建设特色
   (一)理论实践结合,通过编译程序形象展示经典的理论和先进的技术的紧密联系
    编译程序的构造原理和技术可以说是计算机科学与技术中理论和实践相结合的最好典范。在许多课程的教学中,经典的理论和先进的技术之间联系往往缺乏具体而形象的例证,而编译原理课程在这方面具有得天独厚的优势。经典的形式语言和自动机理论为编译程序的设计提供了坚实的理论基础,正是在科学理论的保证下,才形成了一系列先进的编译程序设计方法和工具,使得编译程序的构造具有很高的系统性和自动化程度。本课程既强调了经典理论在计算机科学中的重要作用,又注重介绍利用这些基础理论来设计和构造编译程序的先进方法及工具,具体形象地说明了基础理论与先进技术之间的关系。理论和实践相结合是编译原理课程的鲜明特色。
   (二)教学科研互动,保持教学内容的先进性
    加强教学和科研的结合,扎根于科研,是本课程重要特色。课程小组成员一直保持着教学科研紧密结合的传统,长期不间断地主持和参与重点工程、国家自然科学基金、863计划等重要科研项目的工作,特别是课程小组成员领导和参加了多项重点工程中编译系统地研制,取得了丰硕的成果。许多学生也直接参与到重点型号项目中,如许多毕业设计课题直接来源于银河系列机的编译系统。在课程内容方面,我们以我院在巨型机研制、特别是在编译系统研制方面取得的一系列科研成果为背景和基础,紧密跟踪国际学术前沿,不断更新教学内容,以体现科学经典与现代的关系。多年来,我院在编译器研制方面取得的最新成果都成为教学内容不断发展的动力和素材,从而保证了教学内容的先进性。在课程的学习中,学生也切实体会到了理论成果在技术实践中的完美应用,使得学生能够深刻理解理论与实践的相结合的意义和具体途径。
 
    (三)加强教师队伍建设,出版国家级精品教材
    编译原理课程小组十分重视对青年教师的培养,近年来采取了多种措施以提高青年教师的素质和水平。例如,新教师在担任教学任务前必须进行岗前培训;选派青年教师前往国际知名大学进行访问和学习;鼓励青年教师参加各种培训活动;鼓励任课教师承担和参与相关的前沿性、基础性的科研课题,包括973项目、国家自然科学基金、863项目等,掌握编译技术和计算机软件专业的发展方向,将先进的研究成果和长期积累的实践经验融入到课堂教学和实习指导等教学环节。不断提高的学术水平也为建设精品教材提供了良好的基础。紧跟学科发展潮流,借鉴国际著名教材,及时反映我院的科研实践的最新成果,是本课程建设教材的基本原则。由课程小组编写的《程序设计语言编译原理》经过不断推陈出新,先后修订了三版,现已累计发行了43万余册。该书1988年和2002年两次荣获国家级高等学校优秀教材一等奖,是国内使用最广、影响力最大的编译原理教材。目前课程小组正在编写第四版教材,并已列入“十一五”国家重点教材计划,将于2007年出版。此外,本课程还配有一系列的配套辅助教材,以指导学生进行实验、自学和课外开展研究型的学习,其中《并行编译方法》也获得了全国优秀科技图书三等奖。
 
    (四)能力素质并重,培养具备系统专业知识的人才
    本课程特别强调运用理论知识进行实践的能力和素质,突出计算机专业人才培养的特色。编译原理是每个优秀的计算机专业人员必修的一门课程,也是计算机专业人才区别于一般计算机人员的重要知识结构。通过编译程序这一具体的案例,可以让学生综合理解和运用计算机的程序语言、操作系统和体系结构等各种软硬件知识,形成计算机专业人才特有的系统的专业知识结构。在系统学习编译的理论和技术的过程中,学生一方面对科学理论的基础作用有了充分的认识,提高了学习经典理论的兴趣,培养了较高的理论素养;另一方面,通过课程综合性的实践,分析并扩充了一个较完整的编译程序,培养了学生通过灵活运用理论知识、设计较大规模的软件来解决实际问题的能力。通过课程学习,学生深刻体会到了理论学习的意义和动手实践的乐趣。
 
    五、小结

    国防科学技术大学计算机学院的编译原理课程经过二十多年的建设,培养出了一批又一批的学生,同时也造就出了一支年龄结构合理、教学经验丰富、学术水平高的编译课程教师队伍,积累了丰富的教学经验。通过在教学内容、教学方法、教学实践等方面的改革和创新,依托银河系列机研制编译程序的学科优势,及时将科研活动中取得的最新成果融入教学中,促进了教学水平的不断提高,保证了课程建设始终处于先进水平,并为课程进一步发展奠定了良好的基础。

(国防科学技术大学计算机学院)

 
版权所有 © 湖州师范学院教务处 2003-2009