计算机编译原理.ppt
《计算机编译原理.ppt》由会员分享,可在线阅读,更多相关《计算机编译原理.ppt(53页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、计算机编译原理,王海文 2005,本书结构,第一章 语言程序概述第二章 文法与语言第三章 词法分析第四章 语法分析第五章 编译程序的数据结构和符号表第六章 语法制导翻译第七章 编译程序,课程要求,基础理论:熟悉基于形式语言理论的编译程序构造原理和高级语言的实现原理。基础知识:全面掌握词法分析、语法分析和语法制导翻译方法等计算机处理技术,了解高级语言中各种语言成分的实现方法。基本技能:掌握计算机语言处理系统中各种通用的分析和翻译技术,以及自动生成系统的运用。,本课程的目的,构造编译器基本知识编译的阶段和相关的活动相关数据结构和算法计算机科学中相关的基础理论形式语言与自动机进一步加深对软件开发的
2、认识,第一章 概述,【课前思考】 什么是编译程序? 编译过程和编译程序的结构?【学习目标】介绍语言翻译的基本概念程序和语言翻译和解释介绍翻译的步骤和相关的活动介绍编译器的开发方法,知 识 结 构,课前说明,基于形式语言理论中的有关概念来讨论编译实现问题。即 编译原理=形式语言理论+编译技术本书主要内容涉及:高级程序设计语言形式语言理论的基本概念构造编译程序的基本概念、原理和技术,基本观念程序、语言,计算机、程序、语言计算机接受指令,然后执行指令指令组成的序列,称为程序符合一定规则(文法)的程序的集合,称为语言语法(形式)语义(意义) /形式与意义之间的对应关系?讨论:C语言与C语言程序之间的关
3、系,基本观念语言与程序,语言的作用设计程序(选出特定的程序构造程序)程序的作用由计算机执行在人之间的交流想法,由于程序没有歧义如何定义语言本课程要学习的内容以有限的规则,定义无限多的程序 。,基本观念语言的多样性,语言的多样性方便在特定领域的应用交流障碍解决方案统一语言,一个梦想没有个性的语言语言的不断发展翻译,基本观念语言之间的翻译,对翻译的要求保持程序的意义,即功能不变。翻译的可能性Church猜想与通用计算机(语言的等价性)+、-、JNZ翻译的策略软件开发过程的策略编译(整体翻译)解释(逐句的翻译、执行),程序的执行方式,高级语言程序通常采用两种方式执行:解释方式和翻译方式解释方式:逐个
4、语句地分析和执行,如Basic,Prolog优点:易于查错缺点:效率低,运行速度慢翻译方式:对整个程序进行分析,翻译成等价机器语言程序后执行,如Pascal,Fortran,C优点:只需分析和翻译一次,缺点:在运行中发现的错误必须在源程序中查找,什么是编译程序?,定义:是一种语言转换系统,C+编译器,C+,C,Java,Bytecode,Java编译器,编译程序,运行系统,目标程序,输入数据,计算结果,源程序,需预处理的源程序,预处理程序,源程序,编译程序,汇编程序,装配/连接编辑程序,目标汇编程序,可再装配的机器代码,绝对机器代码,可再装配目标文件,高级语言程序的处理过程,编译程序的功能,从
5、功能上看,一个编译程序就是一个语言翻译程序。源语言通常是一个高级语言,如FORTRAN,C 或Pascal。目标语言通常是一个低级语言,如汇编或机器语言。,编译程序,源语言程序,目标语言程序,出错和警告信息,T形图,常用T形图来表示编译程序涉及的三个语言:,其中:S:源语言(程序),Source language(program)O:目标语言(程序), target/object language(program)I:实现语言, implementation language,编译程序在计算机系统中的作用,编译系统是一种软件,一种系统软件。软件:计算机系统中的程序及其文档。系统软件:居于计算机
6、系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。和具体的应用领域无关,如编译系统和操作系统等。语言处理系统:把软件语言书写的各种程序处理成可在计算机上执行的程序,如编译系统。,裸机,操作系统,语言处理系统,应用软件层,编译程序的组成结构,semantics,parser,scanner,optimizer,code generator,program,前端front end与源语言有关,middle end,后端back end与目标机相关,编译程序的结构,翻译外文资料与编译源程序进行类比,翻译之前的准备,必须了解的源语言(翻译谁输入)目标语言(翻译成谁输出)翻译方法(如何实现翻译
7、)如何定义源语言和目标语言程序的基本组成是字符,程序是一个字符串由字符组成程序的方法,先定义接口,然后再实现,(1) 词法分析(Lexical analysis),词法分析程序又称扫描程序。是编译过程的第一个阶段,其任务是:读源程序的字符流、识别单词(如标识符、整数、界限符等),并转换成内部形式。输入字符串(即源程序)输出单词符号(最基本的语法单位) 。,词法分析举例,一个C源程序片段:int a;a=a+2;词法分析后返回(如右图):,单词类型 单词值保留字 int标识符 a界符 ;标识符 a算符(赋值) =标识符 a算符(加) +整数 2界符 ;,(2) 语法分析(Syntax analy
8、sis),语法分析语法定义如何由单词符号组成更大的语法单位输入单词符号输出语法单位及其之间的关系,通常是语法树表达语法规则的主要工具为上下文无关文法,id1:=id2+id3*10 的语法树,id1:=id2+id3*10的语法树的另一种形式,(3) 语义分析(Semantic analysis)和中间代码生成,语义分析和中间代码生成分析(检查和计算)程序中各个语法单位的语义,翻译为中间代码形式。输入语法单位及其之间的关系(语法树)输出中间代码表达语义规则的主要工具是属性文法表达中间代码的主要工具是四元式主要使用语法制导的翻译方法,语义分析举例,错在哪里?例1: int arr2, c; c
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 编译 原理
限制150内