编译原理-第二章形式语言基础.ppt
《编译原理-第二章形式语言基础.ppt》由会员分享,可在线阅读,更多相关《编译原理-第二章形式语言基础.ppt(244页珍藏版)》请在三一办公上搜索。
1、1,编 译 原 理Compiler Principles,徐小龙南京邮电大学.计算机学院,第二章 形式语言基础知识,教材:编译技术原理及其实现方法王汝传 编著,2,第二章 形式语言基础知识,2.1 引言 一、形式语言提出 二、语言描述方法2.2 用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 三、语法树2.3 形式语言基本概念和术语 一、元语言 二、符号和符号串 三、产生式(规则)四、文法 五、推导和归约 六、句型和句子 七、语言 八、递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性,2.4 语法分析初步 一、自顶向下语法分析 二、自底向上语法分析2.5 文法
2、和语言分类 一、文法分类 二、文法和自动机 三、压缩过文法2.6 文法其他表示法 一、扩充巴科斯范式 二、语法图,3,第二章 形式语言基础知识,2.1 引言 一、形式语言提出 二、语言描述方法2.2 用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 三、语法树2.3 形式语言基本概念和术语 一、元语言 二、符号和符号串 三、产生式(规则)四、文法 五、推导和归约 六、句型和句子 七、语言 八、递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性,2.4 语法分析初步 一、自顶向下语法分析 二、自底向上语法分析2.5 文法和语言分类 一、文法分类 二、文法和自动机 三
3、、压缩过文法2.6 文法其他表示法 一、扩充巴科斯范式 二、语法图,4,第二章 形式语言基础知识,2.1 引言 一、形式语言提出 二、语言描述方法,5,第二章 形式语言基础知识,2.1 引言 一、形式语言提出 二、语言描述方法,6,2.1 引言 一、形式语言提出 形式语言是研究符号的语言,它仅考虑符号间的关系,不考虑含义即用数学方法(主要是代数方法)对语言进行形式化描述。语言非形式描述:人们交流思想的工具。从语言学本身来说也是一门古老的科学,但是在很早以前人们就用数学方法开始对语言学进行研究。1847年,俄国数学家布拉库夫斯基就用概率论进行语法词源及语言历史比较研究。1904年,波兰语言学家指
4、出,语言学家不仅要掌握初等数学而且还要掌握高等数学。1931年,俄国数学家就用概率论研究俄语元音字母和辅音字母序列。1946年电子计算机问世以来更加促使数学和语言学结合研究。,7,2.1 引言 一、形式语言提出,1956年N.Chomsky(乔姆斯基)在研究自然语言过程中提出一种文法数学模型,为形式语言理论打下了基础,成为计算机科学理论一个重要分支,即形式语言与自动机。为什么要提出形式语言呢?1.控制论出现,促使对语言的深入研究 2.用计算机进行科技文献检索,自动作文摘要及其它信息处理时 要求将自然语言转换成一定形式的信息。3.在计算机上从一种自然语言翻译成另一种自然语言也需要对 语言进行形式
5、描述,以便机器对其分析和综合。4.计算机编译理论、人工智能、数据库等需要对语言进行形式 描述。,8,第二章 形式语言基础知识,2.1 引言 一、形式语言提出 二、语言描述方法,9,第二章 形式语言基础知识,2.1 引言 一、形式语言提出 二、语言描述方法,10,2.1 引言 二、语言描述方法无论是自然语言或者是程序设计语言,都是由许多句子组成,当然这些句子是由本语言字母表上符号并按照一定规则组成的符号串。对一个语言的描述,就是如何刻画一个语言中哪些句子是属于该语言的句子,哪些句子是不属于该语言的句子。,11,2.1 引言 二、语言描述方法我们可以用三种方法来描述语言,枚举法、文法生成法和自动机
6、识别法:1.枚举法:如果一个语言仅含有有限个句子,就可以采用枚举法来描述此语言,即把语言中全部句子一一列举出来即可。然而,绝大多数重要语言都有无穷多个语句,因此枚举法显然失效。2.文法生成法:就是用有限个规则来产生出语言中无限个句子,这种规则集合称文法。3.自动机识别法:用自动机对语言中的句子进行识别,自动机是描述离散变量的一个系统(数学模型),因在形式语言中称为识别器,也可看成是一个识别程序。不同语言对应不同自动机,对应某个语言的自动机能接受该语言句子,否则不接受。,下面我们着重讨论用文法生成法来描述语言。,12,第二章 形式语言基础知识,2.1 引言 一、形式语言提出 二、语言描述方法2.
7、2 用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 三、语法树2.3 形式语言基本概念和术语 一、元语言 二、符号和符号串 三、产生式(规则)四、文法 五、推导和归约 六、句型和句子 七、语言 八、递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性,2.4 语法分析初步 一、自顶向下语法分析 二、自底向上语法分析2.5 文法和语言分类 一、文法分类 二、文法和自动机 三、压缩过文法2.6 文法其他表示法 一、扩充巴科斯范式 二、语法图,13,第二章 形式语言基础知识,2.1 引言 一、形式语言提出 二、语言描述方法2.2 用文法生成法对语言进行描述 一、巴科斯范
8、式 二、语法和语义 三、语法树2.3 形式语言基本概念和术语 一、元语言 二、符号和符号串 三、产生式(规则)四、文法 五、推导和归约 六、句型和句子 七、语言 八、递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性,2.4 语法分析初步 一、自顶向下语法分析 二、自底向上语法分析2.5 文法和语言分类 一、文法分类 二、文法和自动机 三、压缩过文法2.6 文法其他表示法 一、扩充巴科斯范式 二、语法图,14,第二章 形式语言基础知识,2.2 用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 1.语法 2.语义 三、语法树,15,第二章 形式语言基础知识,2.2
9、用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 1.语法 2.语义 三、语法树,16,2.2 用文法生成法对语言进行描述 一、巴科斯范式 BNF-Backus Normal Form例子:The big elephant ate the peanut.(大象吃花生)The little boy ran quickly.(小男孩跑得快)The man has a dog.(这人有一条狗)以上都是符合英语语法规则的句子,即它们是在英语语法规则中成立 的句子。如何描述一个给定的句子在给定规则下是否成立呢?我们以“=”符号(或“”符号)表示”定义为”,以“|”符号表示“或”,以“”符号表示
10、语法实体(语法单位),这些符号是元语言符号,,17,句子=主语谓语主语=冠词形容词名词冠词=the 形容词=big谓语=动词宾语 动词=ate 宾语=冠词名词 名词=elephant|peanut 我们把这种描述语法规则方法称巴科斯范式,也称 巴科斯-瑙尔范式(Backus Normal Form),简称BNF。,那么上面叙述的语法规则可写为:,18,步骤 推导 所用规则1 谓语 2 形容词 名词 谓语 3 the 形容词 名词 谓语 4 the big 名词 谓语 5 the big elephant 谓语 6 the big elephant 动词 7 the big elephant a
11、te 8 the big elephant ate 冠词 9 the big elephant ate the 10 the big elephant ate the peanut 可见句子the big elephant ate the peanut成立。当然我们还可以推导出其它的句子,如the big peanut ate the elephant,在这里,我们只考虑句子的语法,而不考虑句子的语义。,根据以上规则,可以推导出句子The big elephant ate the peanut.过程如下:,19,巴科斯范式是描述语法规则一种表示方法,它是由巴科斯为了在ALGOL60报告中来 描
12、述ALGOL语言首先提出的。采用这种形式体系方式定义语法规则,可以用简洁的公式把各种语法规则严格而清晰描述出来。例如,在高级语言中大家所熟知的标识符这种语法成分,它用巴科斯范式描述为:标识符=字母|标识符字母|标识符数字而字母=A|B|C|D|Z数字=0|1|2|9这样便刻画出了标识符是以字母开始的一串字母和数字任意组合这种特点。,20,用巴科斯范式描述语言能给研究问题带来很大方便。如下面9个句子都是正确的:We ran He ran I ran We ate He ate I ateWe sat He sat I sat如果我们用巴科斯范式来描述上面9个句子只要几条规则就行了。句子=主语谓语
13、主语=We|He|I 谓语=ran|ate|sat可见,如果一个语言有无穷多个句子,那么用上述规则来描述更有实际意义.它用一组规则来代替枚举法,用有穷来描述无限。,21,第二章 形式语言基础知识,2.2 用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 1.语法 2.语义 三、语法树,22,第二章 形式语言基础知识,2.2 用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 1.语法 2.语义 三、语法树,23,2.2 用文法生成法对语言进行描述 二、语法和语义 1.语法 用类似巴科斯范式来描述某种语言,称为该语言的语法(也称文法)。实际上语法是在字母表上构造句子的一组规则。
14、对于自然语言就是造句的规则;对于程序设计语言就是书写程序规则。,24,2.2 用文法生成法对语言进行描述 二、语法和语义 2.语义 语义是按照语法规则所构成结构的含义。对于自然语言,语义是所要表达的意思;对于程序设计语言,语义是一个程序所要完成工作,或者某个语法成分的含义。显然,一个句子语法上正确不等于语义上也是正确的。例如,“The big peanut ate the elephant”在语法上是正确,在语义上是荒谬的。在PASCAL语言中,标识符以字母开头是语法,而标识符使用必须加以说明则是语义。对于语法目前研究比较成熟,可以进行形式描述,但对语义的描述还没能 形式化,还得借助于自然语言
15、。,25,编译程序如何将源程序变成目标程序?第一:就是语法分析,看源程序是否符合该语言的语法关系第二:就是语义分析,根据该语言语义生成目标代码这是两个核心问题。,2.2 用文法生成法对语言进行描述 二、语法和语义,26,第二章 形式语言基础知识,2.2 用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 1.语法 2.语义 三、语法树,27,第二章 形式语言基础知识,2.2 用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 1.语法 2.语义 三、语法树,28,2.2 用文法生成法对语言进行描述 三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以
16、图解(树)形式来描述句子语法结构关系,称语法树。,29,三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子语法结构关系,称语法树。句子the man has a book的推导过程及对应的语法树,30,三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子语法结构关系,称语法树。句子the man has a book的推导过程及对应的语法树,31,三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子语法结构关系,称语法树。句子the ma
17、n has a book的推导过程及对应的语法树,32,the,三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子语法结构关系,称语法树。句子the man has a book的推导过程及对应的语法树,33,man,the,三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子语法结构关系,称语法树。句子the man has a book的推导过程及对应的语法树,34,man,the,三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子
18、语法结构关系,称语法树。句子the man has a book的推导过程及对应的语法树,35,man,has,the,三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子语法结构关系,称语法树。句子the man has a book的推导过程及对应的语法树,36,man,has,the,三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子语法结构关系,称语法树。句子the man has a book的推导过程及对应的语法树,37,man,has,a,the,三、语法树 除了上面可以根据
19、语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子语法结构关系,称语法树。句子the man has a book的推导过程及对应的语法树,38,man,has,a,book,the,三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子语法结构关系,称语法树。句子the man has a book的推导过程及对应的语法树,39,man,has,a,book,the,三、语法树 除了上面可以根据语言语法规则来推导出句子,还可以用图解形式来表示。以图解(树)形式来描述句子语法结构关系,称语法树。句子the man ha
20、s a book的推导过程及对应的语法树,其中:称为语法树根 带和不带的都称为语法树的结点 一个结点以及向下射出部分称为子树 没有向下射出部分的结点称为末端结点,40,第二章 形式语言基础知识,2.1 引言 一、形式语言提出 二、语言描述方法2.2 用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 三、语法树2.3 形式语言基本概念和术语 一、元语言 二、符号和符号串 三、产生式(规则)四、文法 五、推导和归约 六、句型和句子 七、语言 八、递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性,2.4 语法分析初步 一、自顶向下语法分析 二、自底向上语法分析2.5
21、文法和语言分类 一、文法分类 二、文法和自动机 三、压缩过文法2.6 文法其他表示法 一、扩充巴科斯范式 二、语法图,41,第二章 形式语言基础知识,2.1 引言 一、形式语言提出 二、语言描述方法2.2 用文法生成法对语言进行描述 一、巴科斯范式 二、语法和语义 三、语法树2.3 形式语言基本概念和术语 一、元语言 二、符号和符号串 三、产生式(规则)四、文法 五、推导和归约 六、句型和句子 七、语言 八、递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性,2.4 语法分析初步 一、自顶向下语法分析 二、自底向上语法分析2.5 文法和语言分类 一、文法分类 二、文法和自动
22、机 三、压缩过文法2.6 文法其他表示法 一、扩充巴科斯范式 二、语法图,42,2.3 形式语言基本概念和术语 一、元语言 二、符号和符号串 三、产生式(规则)四、文法 五、推导和归约 六、句型和句子 七、语言 八、递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性,第二章 形式语言基础知识,43,2.3 形式语言基本概念和术语 一、元语言 二、符号和符号串 三、产生式(规则)四、文法 五、推导和归约 六、句型和句子 七、语言 八、递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性,第二章 形式语言基础知识,44,2.3 形式语言基本概念和术语 一、元语
23、言 1.元语言 2.元语言变量,45,2.3 形式语言基本概念和术语 一、元语言 1.元语言 2.元语言变量,46,2.3 形式语言基本概念和术语 一、元语言 1.元语言与编译有关的形式语言基本概念和术语:用来描述其它语言的语言,称元语言。被描述语言称对象语言。例如:英语教科书中,英语是对象语言,汉语是元语言。元语言与被描述语言可以是相同的,也可以是不同的。,47,2.3 形式语言基本概念和术语 一、元语言 1.元语言 2.元语言变量,48,2.3 形式语言基本概念和术语 一、元语言 1.元语言 2.元语言变量,49,2.3 形式语言基本概念和术语 一、元语言 2.元语言变量 元语言的词汇称为
24、元语言的变量(或元语言的符号)。例如:在上一节中描述句子,我们用了等,这些符号的引入完全是为了描述英语句子the big elephant ate the peanut.而这些引入符号并为出现在句子中,对于这种用尖括号括起来的词汇就是元语言变量或语法单位。,50,2.3 形式语言基本概念和术语 一、元语言 二、符号和符号串 三、产生式(规则)四、文法 五、推导和归约 六、句型和句子 七、语言 八、递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性,第二章 形式语言基础知识,51,2.3 形式语言基本概念和术语 一、元语言 二、符号和符号串 三、产生式(规则)四、文法 五、推
25、导和归约 六、句型和句子 七、语言 八、递归文法 九、短语和简单短语 十、最左推导和最右推导 十一、文法二义性,第二章 形式语言基础知识,52,2.3 形式语言基本概念和术语 二、符号和符号串 1.字母表 2.符号串 3.行集合 4.关于行集合V*上几种运算,53,2.3 形式语言基本概念和术语 二、符号和符号串 1.字母表 2.符号串 3.行集合 4.关于行集合V*上几种运算,54,2.3 形式语言基本概念和术语 二、符号和符号串 1.字母表 有限个元素的非空集合称字母表,也称符号集。它是组成一个语言最基本的成分。字母表中元素称符号。习惯上用V、或其它大写字母表示。例如V=a,b,c,V=,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 第二 形式语言 基础
链接地址:https://www.31ppt.com/p-4993753.html