《编译原理》课程总体概述.ppt_第1页
《编译原理》课程总体概述.ppt_第2页
《编译原理》课程总体概述.ppt_第3页
《编译原理》课程总体概述.ppt_第4页
《编译原理》课程总体概述.ppt_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、编译原理,铜仁学院 数学与计算机科学系 王婷婷,编译原理课程信息,编译原理课程的主要内容 介绍程序设计语言编译程序(编译器)构造的一般原理、基本设计方法、主要实现技术、一些自动构造工具。 编译器简介 编译器已成为现代计算机系统中不可或缺的一部分。它们负责将用户的计算需求转变成一段程序,从而让底层机器理解。因此,这些工具可以作为两种不同领域的实体人类和计算机之间的接口。 编译器是一个系统软件,用于将源语言程序转换为相应的目标语言程序。它还需要验证输入程序是否符合源语言的规范。如果有违反规范的,则编译器将向用户显示错误信息。对于少数不重要的违规,可能会显示警告。,例如:源语言规定每个语句必须以分号

2、(;)结束。,编译原理课程的重要性 编译原理一直是计算机专业的最重要的核心课程之一,是历来的、国内外所有高等院校中各种计算机类以及信息类本科教育的份量颇重的必修专业基础课,也是大多数研究生培养单位招考研究生的必考科目之一。 编译原理课程的教学目的与要求 编译是计算机系统软件的最重要组成部分之一,也是用户最直接关心的工具之一。自从20世纪50年代中期第一个编译程序(FORTRAN语言的编译)研制成功后,经过40多年的努力。现在已形成了一套比较成熟的、系统化的理论和方法。 编译原理不但涉及计算机科学中的大量的基本理论、基本原理和基本方法,而且具有很强的实践性。因此,它是计算机科学和技术的最重要的内

3、容之一。 本课程重点讲述编译程序(编译器)的设计原理和常用实现技术。 通过课程的学习和实验的完成: (1)应该清楚地理解一个编译程序是如何工作的; (2)如果在以后遇到了任何一个程序设计语言,应该知道如何实现这个语言的多数机制; (3)应具有一定的使用编译构造工具开发编译程序的经验; (4)会将所学的常用技术和算法应用于类似的软件的设计和实现中。,课程架构,1、重理论的课程。 2、实践题目(Project):要求分别在第6周、第7周、第9周交。 Project1:用高级语言(C或Pascal)实现扩充的PL/0编译程序。 PL/0 编译程序剖析:给出一个简单的类Pascal语言,其编译程序用高

4、级语言(C和Pascal)实现。通过剖析该高级语言程序以理解各编译成分的功能及手工实现方法。 Project2:写一篇关于编译器设计难点的论文,然后进行讨论(班长)。 Project3:写一篇关于编译器新进展的论文,然后进行讨论(学习委员)。 3 、各部分权重 平时成绩 30% (1) 作业 (2) 实践项目 期末考试 70%,教材及主要参考书,1、教材 编译原理(第2版),张素琴、吕映芝、蒋维杜、戴桂兰,清华大学出版社,2005。 2、参考书 (1)程序设计语言编译原理(第3版),陈火旺、刘春林等,国防工业出版社,2000。 (2)形式语言与自动机理论,蒋宗礼等,清华大学出版社,2007。

5、(3)编译器设计,(印度)Santanu Chattopadhyay著,徐骁栋、王海涛译,清华大学出版社,2009。 (4)编译设计与开发技术,斯传根,清华大学出版社,2003。,教学内容,1、编译程序概述 (2次课) 编译程序是现代计算机系统的基本组成部分之一。编译程序一般由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、目标代码生成程序、代码优化程序、符号表管理程序和错误处理程序等成分构成。本章概要介绍编译成分的主要功能以及编译阶段的逻辑关系。 2、高级语言的认识 :文法和语言(2次课) 要学习和构造编译程序,理解和定义程序设计语言是必不可少的。每个程序设计语言都有一定的规则用

6、以规定合适程序的语法结构,也需要有对一个程序的含义的描述。上下文无关文法给出程序设计语言的精确的、易于理解的语法说明。尚没有公认的形式系统描述程序含义,但也有流行的描述语义规则的方法属性文法。,3、词法分析程序的自动构造(2次课) 词法分析程序是编译程序的一个构成部分,它的主要任务是扫描源程序,按构词规则识别单词,并报告发现的词法错误。正则表达式和有穷状态自动机分别作为单词的描述工具和识别机制,成为词法分析程序的自动构造原理,学习Lex(Flex)工具的使用方法。 4、语法分析程序的构造 自顶向下的语法分析。可以看作是为一个输入串寻找一个最左推导的过程,也等价于从根开始,按前序生成结点,为输入

7、串构造分析树的过程。讨论一种有效的无回溯的自顶向下分析程序,这种分析程序称为预测分析程序。介绍对于一个文法类:LL(1)文法, 如何自动的构造预测分析程序。 (5次课) 自底向上(自下而上)语法分析方法,也称移进-归约分析法。它的实现思想是对输入符号串自左向右进行扫描,并将输入符逐个移入一个后进先出栈中,边移进边分析,一旦栈顶符号串形成可归约串,就用相应非终结符代替可归约串,这称为一步归约,重复这一过程,直到归约到栈中只剩文法的开始符号时,则为分析成功,并确认输入串是文法的句子。本章介绍简单优先分析法、算符优先分析法、LR分析法, LR分析法分析过程中归约的是当前句型的句柄,称为规范归约。重点讲解LR类(LR(0)、SLR(1)、LALR(1)、LR(1)文法的分析表的构造原理。 (8次课),5、语法制导翻译、中间代码生成(6次课) 在词法分析和语法分析之后,编译程序下一个逻辑阶段的任务是语义分析和生成中间代码。引入属性文法和语法制导的翻译的概念,介绍中间代码的形式,针对一些语法成分讨论相应语义处理工作的描述。 6、代码优化(3次课) 代码优化是对代码作一些等价变换,以使得最后生成的目标代码更为高效。介绍优化技术、优化分类以及优化工作的基础控制流和数据流分析问题。 7、目标代码生成 (1次课) 编译的最后一个逻辑阶段是目标代

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论