ch5-new自顶向下语法分析方法

ch5-new自顶向下语法分析方法

ID:38832627

大小:405.00 KB

页数:35页

时间:2019-06-20

ch5-new自顶向下语法分析方法_第1页
ch5-new自顶向下语法分析方法_第2页
ch5-new自顶向下语法分析方法_第3页
ch5-new自顶向下语法分析方法_第4页
ch5-new自顶向下语法分析方法_第5页
资源描述:

《ch5-new自顶向下语法分析方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、任课教师:湛燕Email:zhanyan@hbu.edu.cn数学与计算机学院编译原理1名称作者出版社出版时间编译原理何炎祥华中理工大学2000.10编译原理陈火旺等国防工业出版社2000.1编译原理蒋立源西北工业大学1999.9编译原理(第二版).张素琴,吕映芝,蒋维杜,戴桂兰编著,清华大学出版社,2005.2.教材与参考书《编译原理及实践》2第一章编译程序概论主要介绍编译程序的基本概念、基本结构。1.1什么是编译程序1.2编译过程及编译程序结构1.2.1编译过程1.2.2编译程序的基本结构1.3编译技术和软件工具1.4程序设计语言范型3§1.1

2、什么是编译程序翻译程序(translator)编译程序(compiler)源程序的加工过程与编译程序相关的程序编译程序是现代计算机系统的基本组成部分之一,而且多数计算机系统尤其是嵌入式系统和高性能体系结构都含有不止一个高级语言的编译程序,对有些高级语言甚至配置了几个不同性能的编译程序。从功能上看,一个编译程序就是一个语言翻译程序。4源程序翻译程序目标程序翻译程序(translator)翻译程序是指这样一个程序,它把一种语言(源语言)所写的程序(源程序)翻译成与之等价的另一种语言(目标语言)的程序(目标程序)。源语言:sourcelanguage源程

3、序:sourceprogram目标语言:objectortargetlanguage目标程序:objectortargetprogram5编译程序(编译器compiler)如果源语言是高级语言,目标语言是低级语言,那么称这样的翻译程序为编译程序。高级语言:C、PASCAL、C++、FORTRAN、JAVA低级语言:汇编语言、机器语言源程序编译程序目标程序高级语言所写程序汇编语言或 机器语言程序6汇编程序(Assembler)如果源语言是汇编语言,目标语言是机器语言,那么称这样的翻译程序为汇编程序。源程序汇编程序目标程序汇编语言所写程序机器语言程序7

4、源程序的加工过程采用编译方式在计算机上执行高级语言编写的程序,一般分两大阶段,编译阶段和运行阶段。源程序编译程序机器语言目标程序结果初始数据运行系统8源程序机器语言目标程序结果初始数据运行系统如果编译阶段生成的目标程序不是机器程序,而是汇编程序,则程序的执行需分三个阶段,编译阶段、汇编阶段和运行阶段。汇编语言目标程序编译程序汇编程序9编译程序的发展历史第一个编译程序-Fortran编译程序(20世纪50年代)编译程序自动生成工具(20世纪50年代末)以任一语言的词法规则、语法规则和语义解释出发,自动产生该语言的编译程序。LEX-是一个词法分析器的自

5、动产生系统YACC-是一个语法分析程序的自动产生器应用自展技术构造编译程序(20世纪60年代)自展技术就是用被编译的语言来书写该语言自身的编译程序。首先对语言的核心部分构造一个小小的编译程序,再以它为工具构造一个能够编译更多语言成分的较大的编译程序。如此继续下去,最后形成所期望的整个编译程序。这种通过一系列自展途径而形成编译程序的过程,叫做自编译过程。并行编译技术--需进一步研究的问题处理并行语言的并行编译技术、串行程序转换成并行程序的自动并行编译技术等。10§1.2编译过程和编译程序的结构编译过程是一种语言的翻译过程,它的工作过程类似于外文的翻译

6、过程。【例】英文句子翻译成中文句子的大致过程是:词法分析:根据英语的词法规则,从由字母、空格字符和各种标点符号所组成的字符串中识别出一个一个的英文单词。语法分析:根据英语的语法规则,对词法分析后的单词串进行分析、识别,并做语法正确性检查,看其是否组成一个符合英语语法的句子。语义分析:对正确的英文句子分析其含义并用汉语表示出来.根据上下文的关系以及汉语语法的有关规则对词句作必要的修饰工作。最后翻译成中文。11§1.2.1编译过程概述编译过程一般分为以下六个阶段 (与自然语言翻译过程对比):词法分析语法分析语义分析中间代码生成代码优化目标代码生成12对

7、于PASCAL程序段beginvarsum,first,count:real;sum:=first+count*10end.通过词法分析,可识别出如下的单词符号序列:基本字:begin,var,real,end标识符:sum,first,count整数:10界符:。逗号:,冒号::分号:;赋值号::=加号:+乘号:*机内码为:id1:=id2+id3*101、词法分析(扫描器)任务:源程序→单词符号串从左至右一个字符一个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词符号.依据:语言的词法规则描述词法规则的工具:正则式、正

8、则文法、有限自动机132、语法分析例如:符号串id1:=id2+id3*10经过语法分析知它代表一个赋值语句.任务:单词符

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。