《编译原理》课程信息教学目的与要求:编译程序是现代计算机系统的基本组成部分之一。本课程重点讲述编译程序的设计原理和常用实现技术。通过课程的学习和实验的完成,应该清楚的理解一个编译程序是如何工作的;如果在以后遇到了任何一个程序设计语言,应该知道如何实现这个语言的多数机制;应具有一定的使用编译构造工具开发编译程序的经验;会将所学的常用技术和算法应用于类似的软件的设计和实现中。课程架构:1理论和实践并重的课程2理论部分的题目出现于书面练习,课堂小测和期末考试3实践题目(Project)–Project1:用高级语言(C或Pascal)实现扩充的PL/0编译程序–Project2:使用编译构造工具实现面向对象语言Tool的编译程序–Project3:使用编译构造工具实现扩充的PL0编译程序–Project4:用GCC裁制一个编译器(任选)4各部分权重–书面练习抽查–课堂小测(两次)10%–实践20%或35%(必做:Project1占10%;选做:Project2占25%,Project3占10%;任选:Project4待定)–期末考试70%或55%教材及主要参考书教材:《编译原理》(第2版),张素琴、吕映芝、蒋维杜、戴桂兰,清华大学出版社2004参考书:《Compilers:Principles,Technigues,andTools》AlfredV.Aho,RaviSethi,JeffreyD.Ullman,Addison-Wesley,1986.影印版:人民邮电出版社,2001参考书:《程序设计语言编译原理》(第3版),陈火旺、刘春林等,国防工业出版社2000教学内容1编译程序概述编译程序是现代计算机系统的基本组成部分之一.编译程序一般由词法分析程序,语法分析程序,语义分析程序,中间代码生成程序,目标代码生成程序,代码优化程序,符号表管理程序和错误处理程序等成分构成。本章概要介绍编译成分的主要功能以及编译阶段的逻辑关系。2PL/0编译程序剖析给出一个简单的类Pascal语言,其编译程序用高级语言(C和Pascal)实现。通过剖析该高级语言程序以理解各编译成分的功能及手工实现方法。教学内容3高级语言的认识要学习和构造编译程序,理解和定义程序设计语言是必不可少的。每个程序设计语言都有一定的规则用以规定合适程序的语法结构,也需要有对一个程序的含义的描述。上下文无关文法给出程序设计语言的精确的,易于理解的语法说明。尚没有公认的形式系统描述程序含义,但也有流行的描述语义规则的方法—属性文法。4词法分析程序的自动构造词法分析程序是编译程序的一个构成部分,它的主要任务是扫描源程序,按构词规则识别单词,并报告发现的词法错误。正则表...