“编译原理”是大学本科计算机类专业的一门主干课程。设置该课程的目的在于系统地向学生讲述编译系统的结构、工作流程以及编译程序各组成部分的设计原理和实现技术,使学生通过本课程的学习,既掌握编译理论和方法方面的基本知识,同时也获得设计、实现、分析和移植编译程序方面的初步能力。由于编译系统的设计与实现涉及到离散数学、形式语言与自动机理论、程序设计语言、数据结构、软件工程学以及计算机系统结构等许多领域,需要综合运用这些知识来解决本课程所提出的一些问题;另一方面,本课程所阐明的一些概念、原理、技术和方法也可应用于其他系统软件和应用软件的开发之中。因此,建设高质量的“编译原理”精品课程对于高级计算机专业人才的培养有重要的作用。西北工业大学“编译原理”课程在师资力量、教材建设诸方面均处于国内同类课程前列,已成为国内同类课程中特色鲜明、影响很大、受到普遍赞誉的一门课程。
课程创新点
编译程序是计算机的一种十分复杂的系统软件,研制编译系统既有较深入的理论问题,同时也有十分繁琐的实现技术细节。这就使得“编译原理”必然成为一门理论性和实践性都很强,且比较难学的课程。根据以往的教学经验,学生普遍感到在学习本课程时,难以深入理解编译程序的内部工作机制及其设计、实现原理,特别对建立编译系统的整体概念尤感困难。这固然与课程本身的特点有关,但若有一套便于教学的高质量教材和教辅资料,教学效果就可能大为改观。我校“编译原理”课程教学,主要有以下几个创新点:
(1)教学内容具有先进性和科学性 计算机科学技术是发展最迅速的学科之一,为了使教学内容能适应新世纪我国培养研究型及实用型计算机专业人才的需要,在教学内容上我们特别注意吸纳国内外编译理论、技术和编译器开发工具的最新研究成果,不断修订、更新教材,使所讲授的内容始终能跟踪国内外主流技术的步伐。
(2)突出理论知识、培养逻辑思维能力的教学体系在教学体系上,我们特别注重形式化或半形式化开发技术的讲授,使教学内容有坚实的理论支撑,并注意学生抽象思维和逻辑思维的培养。在一些关键内容的具体处理上,我们以属性文法与自动机理论为基础,将语法制导翻译技术和识别器的自动生成有机结合起来,使编译器的设计与实现更为规范,减轻了学生学习的难度,回避一些具体技术细节的困扰。
(3)充分发挥网络资源优势为帮助学生更好地学习“编译原理”课程,我们充分利用网络资源,建立了“编译原理”课程教学网站。为广大学员可以在不同时间和地点学习该课程提供了便利。网站提供了丰富的教学资料及模拟教学实践平台,满足在校学生网上自主学习“编译原理”课程的需要,全面了解“编译原理”课程的主要内容。目前上网的课程资源主要有:课程介绍、网络课程、电子教材、重点难点、在线课堂、试题库、在线自测、课程实践、编译课程论坛等。
课程建设的具体实施办法
(1)既进一步精选教学内容,又从整体上使教材更具系统性和科学性,特别是对那些作为整个课程理论基础的基本概念和基本原理,以及有典型意义、效果好、应用比较广泛的主要编译技术和方法,应细致深入地进行讨论,使学生对编译系统的特点有较明确、深入的认识。
(2)根据学生的认识规律来组织安排教学内容,力求做到层次清晰,重点突出,难点分散;既深入浅出地将编译程序各组成部分的基本功能、逻辑关系、实现思路阐述清楚,又不过分纠缠于一些繁锁的具体技术细节;在叙述上力求文笔流畅,通俗易懂,便于自学。
(3)对于近几年出现的编译技术方面的新成果在教材中应有所反映;特别是对目前一些比较流行、使用效果良好的编译程序开发与支持工具的新版本的功能及使用方法,教材中应适当进行介绍。
(4)加强实践性环节的教学内容,其主要途径是:a.教材所附的习题和上机实习题尽可能覆盖课堂讲授的最基本教学内容;b.提供一些比较典型但规模不大的编译器源代码,让学生分析研究;c.提供若干个高级语言子集的文法,让学生自己动手编写和调试相应的编译器。若上述教学内容安排得当,不仅可使学生加深对课程内容的理解,而且还有助于提高学生独立开发系统软件的能力。
(5)进一步完善本书的电教版,以便更新教学手段,减轻讲课教师的劳动强度,提高课堂教学的效果和质量。
(6)进一步完善配套的课程网站的开发,以提高学生学习过程的直观性和可视化程度。
(7) 完成其他教辅资料的编写。
课程相关教材介绍
我校于1979年开设“编译原理”,是国内最早讲授此课程的高校之一,许多兄弟院校,甚至是重点院校的教师都曾经来我校进修该课程,学习编译原理的教学经验。
我们曾编写出版过两种风格不同的部委规划教材,其一为《编译技术》,于1985年出版,1992年在台北出版繁体字本;其二为《编译原理》(第一版),是在我校使用十余次的讲义基础上,先后经三次较大充实、更新、修改,于1993年正式出版的部委规划教材,该教材曾于1996年获部级优秀教材二等奖。
《编译原理》(修订第二版)被列为普通高等教育“九五”国家级重点教材,于1999年9月出版。根据有关专家评议,认为该书体系科学合理,内容的取舍和组织得当,对基本概念和原理的论述准确、清楚,并十分注意对学生思维的启发,使读者易于理解和掌握。该书出版后,迄今已印刷过11次,共6.8万册,据初步了解,已有80余所兄弟院校采用,普遍反映很适合教学工作需要,特别便于读者自学。该教材荣获2002年国家级优秀教材二等奖。
此外,我们还制作了与该书配套的电子教案,并于2002年出版了配套的课程学习辅导书,经试用取得了良好的效果。目前正在进行该辅导教材的改版修订工作,预计2006年6月出版该书第二版。
《编译原理》(修订第三版)被列为普通高等教育“十五”国家级重点教材,并于2005年元月出版。正在修订的《编译原理》(修订第四版)已被列入“十一五” 国家级重点教材选题。
为搞好“编译原理”课程的教学工作,教学组经常在一起交流、切磋教学工作,开展教学法研究,并多次对已成熟的教材进行修订。
根据Computing Curricula 2001(简称为CC2001)及China Computing Curricula 2002(简称为CCC2002)教学计划大纲要求,注意吸取近几年来编译技术及系统软件开发技术方面的某些最新成果,另一方面,在教学手段的更新及教学辅助工具的完善上(如向教师提供电化教学版本,建立课程教学网站,向学生提供学习辅导工具等)作一些探索。
主讲教师个人简历
康慕宁教授,男,1955年生于西安。1978年作为“文革”后第一批高考生,考入西北大学计算机系,1982年1月毕业,获学士学位;同年,考入西北工业大学计算机系(学院)做研究生,1984年毕业,获硕士学位。1984年7月至今,在西北工业大学计算机系(学院)任教。1988年9月至1991年10月曾在德国汉堡大学进修。康慕宁是我校计算机学院教学骨干,主讲过“编译原理”、“离散数学”、“组合数学”、“形式语言”与“自动机”等多门课程,教学成绩突出,多次获得学院学生和领导的赞扬和表彰。曾获校教书育人一等奖,二等奖各一次,优秀教学成果二等奖一次;荣获奖教金多次。1997年被评为校优秀回国人员,1998年被评为校跨世纪教学“双百人才”。1997年以来,一直担任计算机学院教学指导小组成员。主编及参与编写教材多部,其中作为主编之一的《编译原理》教材被评为2002年国家级优秀教材二等奖。参与科研项目多项,主持经费一百余万。发表科技论文数篇。主讲的“编译原理”课程于2005年获得“教育部-微软精品课程”立项。
蒋立源教授,男,1935年生。1961年毕业于西北工业大学计算数学专业,长期从事计算机软件的教学和科研工作,对形式语言、编译理论及并行软件开发技术有较系统和深入的研究,主持或参与过JOVIAL语言编译器自动测试系统、并发PASCAL编译系统、183BASIC解释系统及PD-100并行仿真计算机FDS系统的研制,先后获得国家科技进步二等奖、航空航天部科技进步一等奖、全国科学大会奖及国家教委科技进步二等奖等多项奖励,发表过论文十余篇,荣立航空科技研究院三等功一次,获“科技之星”奖章,享受政府特殊津贴。蒋立源教授至今仍在教学第一线工作,先后为本科生和研究生主讲过“程序设计语言”、“数值计算”、“编译原理”、“形式语言与自动机”、“递归函数论”及“可计算性理论”等课程,对编译原理课程建设,特别是教材建设投入了大量的精力,主编或参加编写了6部教材,其中《编译原理》相继入选“九五”、“十五”、“十一五”国家级重点教材,获2002年全国普通高校优秀教材二等奖;《编译技术》为部委规划教材,获得过航空航天部优秀教材一等奖,台湾儒林图书公司购买了该书的版权,1992年在台北出版了繁体字版。
邓正宏博士,男,1975年生,重庆江津人,西北工业大学计算机科学与工程系讲师,现从事软件工程、数据分析、面向对象的研究工作。1997年起,在西北工业大学计算机学院任教。担任国家“十五”规划重点教材《编译原理》电子教材的制作及编译原理教学网站建设工作。主讲《面向对象技术》、《面向对象分析与设计》、《软件工程》,发表科研论文多篇,主编教材《程序设计方法学》和《面向对象技术》(均由国防工业出版社出版)。
林奕,男,29岁,西北工业大学航天工程学院博士后,2005年11月获西北工业大学软件与理论博士学位。长期从事计算机软件与理论方向的研究,主要研究方向涵盖形式化方法、编译技术、软件工程、分布/并行计算等。在博士期间,曾作为主要参加者,参与了多项国家课题的申请和研究工作,如国防重点实验室基金、AOS,以及多项横向课题的研制工作;发表了多篇学术论文,并参与了“国家‘十五重点教材”《编译原理》的改版工作。本人的研究以理论为基础,结合在研课题对软件构件理论的实际应用和形式化理论均有长期研究经验,并运用编译技术解决了自动并行化等项目中的实际问题。
薛贺副教授,男,1946年生。1973年8月毕业于西北工业大学计算机专业,同年留校任教。先后参加某飞机数据处理系统、BZX-1信号处理系统、DJS-180系列机解释系统、FORTRAN编译系统移植、1750A 军标机JOVIAL语言编译系统测试等科研任务。获部级二等奖、三等奖多次,国家二等奖一次(参加者)。主讲过的课程有:“汇编程序设计”、“数据结构”、“编译原理”等。
郑玉山,男, 1998年起在西北工业大学计算机学院计算机软件系任教。参与了国家“十五”优秀教材《编译原理》电子教材的制作及编译原理教学网站建设工作。主讲过软件工程、面向对象技术、人机界面设计、管理信息系统等课程。参与多项科研项目研究工作,并参与编写《面向对象技术》教材。
课程网址
http://202.117.80.9/jp2005/20/index.htm