“编译原理”课程教学研究和教材编写.docVIP

“编译原理”课程教学研究和教材编写.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
“编译原理”课程教学研究和教材编写   由于教育的需求和市场经济的作用,目前教材出版业相当活跃,新书层出不穷,令人目不暇接。作为一个使用教材进行教学的教师,最关心的是教材质量,选择合适的教材是进行教学的第一步。教材与专著不同,教材是教师教学的工具,教材的主要读者是学生。在书写教材的过程中,对学科的知识体系要进行合理的删选,使它适合于教学和知识的传授。由于本人长期从事“编译原理”课程教学,所以对于该课程的教材特别关注,想就“编译原理”课程的教学和教材编写,发表一些本人的看法,供同行参考。      教材现状和问题      我上大学时,“编译原理”课程用的是由陈火旺、钱家骅、孙永强三位老师合写的“编译原理”一书,这本书可称之为编译原理教材的经典。该书系统地介绍了编译基本理论和方法,内容充实,覆盖面广。既注重了最经典、最广泛的基本编译技术,又力求反映20世纪70年代以来一些最重要的新成果。至今,该书仍是我进行教育和科研的主要参考书之一。我记得当时上课的王家启老师(上海计算技术研究所)给当学生的我们出了一个上机题目:输入一个正规式,输出该正规式对应的确定有限自动机,当然该题是书中习题之一。在解题过程中,我曾经有过这样的想法,是否可以用LR分析法来解决这个问题。正是由于这个20年前的想法,加上自己不断的努力,在对编译理论理解和实践不断加深的同时,于2001年提出了一个新的自动构造词法分析器的方法,论文发表于《计算机工程》杂志2001年第7期。   在随后的“编译原理”课程的教学中,本人也不断发现好书或书中写得比较好的段落。例如由高仲仪、蒋立源二位老师合写的《编译技术》一书。在该书中,通过一个“大象吃花生”的英文句子的语法分析,引入上下无关文法的基本概念和定义,这样的书写使人特别容易理解。又如由何炎祥老师主编的《编译原理》一书。在该书中有关LR分析法基本原理的描述写得相当好,他将活前缀在LR分析法中的作用写得清清楚楚。另外,尽管有些书不是介绍编译技术的,但是这些书对于“编译原理”课程的教学也是相当有益。例如由蒋国南老师翻译的《PASCAL程序设计》一书,书中二个程序例给了我特别深刻的印象。一个是去除源程序注释的程序例,而另一个是使用自动机的程序例。在以往的《编译原理》教科书中,只介绍如何构造自动机,基本上不介绍使用自动机的控制程序。其结果是:学生只知道自动机的构造方法,但不知道自动机如何使用。同样,在以往的词法分析教学中,只注重扫描器(单词识别程序)的教学,手工构造有状态转换图,自动构造有DFA;而对于词法分析的输入和预处理,最多一笔带过。实际上,输入和预处理程序是编译程序和用户程序的接口。编译程序首先是从文件读入源程序,经预处理后,才由扫描器进行单词识别。适当加强这部分内容的教学,有助于学生对编译程序前端的理解。   当然,由国内出版社出版的书也有不尽人意的地方。例如现在写书都要求有创新或标异。明明没有创新或标异,为了达到该指标,将一些与“编译原理”课程无关或关系不大的内容写入书内,这些内容根本不会用于教学,比较典型的是“并行编译”这部分教材内容。个别作者将国外教材删去某些章节,加上习题和习题解答后,就作为一本教材交付某出版社出版。正因为本人曾买到过这种类型的书,从此改变了本人看到有关编译的书就买的习惯。目前在市场上销售的有关编译的书,基本上都以LEX和YACC系统作为“编译原理”课程实习手段。当然LEX和YACC系统有多种版本,可用于不同的操作系统。但LEX和YACC系统毕竟是外国人编制的,是否适合于国内教学仍是个问号。由于本人与他校教师基本无教学交流,也不清楚实际使用效果如何,有关编译的书大都由多人合写,写编译理论部分的作者和写实验部分的作者往往不是同一人。从书的整体来看,有明显的脱节现象。LEX系统实际是一个状态转换矩阵产生器,而YACC系统实际上是一个LALR(1)分析表产生器。我想,LEX和YACC系统并没有复杂到常人不可实现的程度,为什么作者本人不能动手编写一个类似系统用于学生实验。   当然也不是说国外教材什么都好,包括国外优秀教材在内,也有不足之处。举一个简单例子:计算机的内存越来越大,由于引入控件,用户程序越来越短,是否还有必要将“在词法分析预处理时,通常将输入缓冲区分成二个半区互补轮流工作”这一内容写入教材,我想至少要说明一下。      提高教师自身学术水平      “编译原理”这门课程涉及的知识面较广,一头是程序设计语言,包括文件系统;而另一头是汇编语言或机器语言,包括计算机的系统结构。编译系统以形式语言和自动机为基础理论,构造算法复杂,系统十分庞大。所以,将“程序设计语言”、“数据结构”、“离散数学”和“汇编语言”等课程作为“编译原理”课程的前驱课程已成为共识。作为一个“编译原理”课

您可能关注的文档

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档