编译原理蒋宗礼课件第2章
编译原理第二章
19
…… <数字>::=9 该文法的字汇表V为:V={0, 1, …, 9, <无 符号整数>, <数字串>, <数字>} •终结符与非终结符: 终结符与非终结符: 终结符与非终结符 给定文法G, 给定文法 ,凡出现在规则左部的符号称 为非终结符,其组成的集合记为: 为非终结符,其组成的集合记为: Vn。凡 不属于V 的符号称为终结符, 不属于 n 的符号称为终结符,其组成的集 合记为: Vt 。 合记为: 字汇表:V= Vn∪Vt 字汇表 Vn∩Vt = φ 若无特殊说 我们用大写字母表示非终结符。 明,我们用大写字母表示非终结符。
安徽理工大学 《编译原理》 信息安全系 sb
17
<代词> ::=I <谓语> ::=<动词><直接宾语> <动词> ::=love <直接宾语> ::=<物主代词><名词> <物主代词> ::=my <名词> ::=motherland 其中,带有尖括号的称为语法成分或语法 类,不带尖括号的称为单词符号或单词。 •文法与字汇表: 文法与字汇表: 文法与字汇表 文法(G[Z])是规则的非空有穷集合。 是规则的非空有穷集合。 文法 是规则的非空有穷集合
安徽理工大学 《编译原理》 信息安全系 sb
8
2.符号串的运算 2.符号串的运算 •符号串相等: 符号串相等: 符号串相等 是字母表∑上的两个符号串 设x, y是字母表 上的两个符号串,若x与y 是字母表 上的两个符号串, 与 的诸符号依次相等,则符号串x, 相等 相等。 的诸符号依次相等,则符号串 y相等。记 为: x=y •符号串的长度: 符号串的长度: 符号串的长度 设x为字母表 上的符号串,符号串中包 为字母表∑上的符号串, 为字母表 上的符号串 含的符号的个数称为符号串x的长度 的长度。 含的符号的个数称为符号串 的长度。用|x| 表示。 表示。
编译原理讲义第二章文法与语言.ppt
• 句柄:一个句型的最左简单短语称为该 句型的句柄。
• 定义句柄的原因:在自底向上识别一个 符号串时,总是规约这个句柄。
语言的定义(文法的语言)
• 文法的语言:一个文法G[Z]的语言,用 L(G[Z])表示,定义如下:
文法和语言的定义(推导)
• 直接推导:,,并且是文法中的一个重 写规则,那么我们说v可以直接推导到w, 或者w可以直接规约到v。记作 v => w。
• 例如: • 〈主语〉〈谓语〉〈状语〉 • =>〈名词〉〈谓语〉〈状语〉
文法和语言的定义(推导)
• 推导:对于符号串v和w,如果存在一个 直接推导序列u0=>u1=>…=>,并且u0,, 那么我们说v可以推导到w,或者w规约 到v。记作v =>+ w。
编译原理讲义 (章:文法与语言)
文法与语言
• 文法被用来精确而无歧义地描述语言的 句子的构成方式.
• 文法描述语言的时候不考虑语言的含义。
字母表
定义:字母表是有穷非空集合。
字母表包含了语言中所允许出现的一切符 号。
符号串
• 定义:符号串是由字母表中的符号所组 成的有穷序列。
• 一个语言的句子总是它的字母表的符号 串。这个符号串的组成必须是按照文法 规则组合而成的。
符号串集合
• 定义:若集合A中的一切元素都是同一个 字母表上的集合,那么A被称为该字母表 上的符号串集合。
• 在本课程中,语言被认为是句子的集合。 (外延定义?)所以,一个语言就是对 应于它的字母表上的一个符号串集合。
符号串集合的运算
形式语言与自动机理论-蒋宗礼-第二章参考答案
2.1回答下面的问题: (周期律 02282067)(1)在文法中,终极符号和非终极符号各起什么作用?✓ 终结符号是一个文法所产生的语言中句子的中出现的字符,他决定了一个文法的产生语言中字符的范围。
✓ 非终结符号又叫做一个语法变量,它表示一个语法范畴,文法中每一个产生式的左部至少要还有一个非终结符号,(二,三型文法要求更严,只允许左部为一个非终结符号)他是推导或归约的核心。
(2)文法的语法范畴有什么意义?开始符号所对应的语法范畴有什么特殊意义?✓ 文法的非终结符号A 所对应的语法范畴代表着一个集合L (A ),此集合由文法产生式中关于A 的产生式推导实现的✓ 开始符号所对应的语法范畴则为文法G = {V ,T ,P ,S}所产生的语言L (G )={w S T w w **|⇒∈且}(3)在文法中,除了的变量可以对应一个终极符号行的集合外,按照类似的对应方法,一个字符串也可以对应一个终极符号行集合,这个集合表达什么意义?✓ 字符串对应的终极符号行集合表示这个字符串所能推导到的终极字符串集合,为某个句型的语言。
(4)文法中的归约和推导有什么不同?✓ 推导:文法G = {V ,T ,P ,S},如果,)(,,*Y T VP ∈∈→δγβα则称γαδ在G 中推导出了γβδ。
✓ 归约:文法G = {V ,T ,P ,S},如果,)(,,*Y T VP ∈∈→δγβα则称γβδ在G 中归约到γαδ。
✓ 这他们的定义,我个人理解两个概念从不同角度看待文法中的产生式,推导是自上而下(从产生式的左边到右边),而归约是自下而上(从产生式的右边到左边),体现到具体实际中,如编译中语法分析时语法树的建立,递归下降,LL (1)等分析法采用自开始符号向下推导识别输入代码生成语法树,对应的LR (1),LALR 等分析法则是采用自输入代码(相当于文法中语言的句子)自底向上归约到开始符号建立语法树,各有优劣。
(5)为什么要求定义语言的字母表上的语言为一个非空有穷集合?✓ 非空:根据字母表幂的定义:εε,}{0∑=为字母表中0个字符组成的。
编译原理第2章
2020/9/7
16
形式语言
• 可用于形式化地描述程序设计语言,包括它由 那些符号串构成,这些符号串的表示、结构和 特性
2020/9/7
17
主要内容
• 程序设计语言 • 语言概述 • 形式语言 • 符号和符号串 • 文法 • 语言(推导) • 语法树与句型分析 • 文法二义性 • 文法与语言分类
2020/9/7
7
有了一组规则以后,按照如下方式用它们导出句子:
开始去找∷=左端的带有〈句子〉的规则并把它由∷=右端的 符号串代替,这个动作表示成:
〈句子〉 〈主语〉〈谓语〉,
然后,在得到串〈主语〉〈谓语〉中,选取〈主语〉或〈谓 语〉,再用相应规则的∷=右端代替之。比如,选取了〈主 语〉,并采用规则〈主语〉∷=〈代词〉,
• 字母表 字母表是元素的非空有穷集合,我们把字母表 中的元素称为符号,因此字母表也称为符号集。不同 的语言可以有不同的字母表,例如:汉语的字母表中 包括汉字、数字及标点符号等,PASCAL语言的字母 表是由字母、数字、若干专用符号及BEGIN、IF之类 的保留字组成。
2020/9/7
21
符号串 由字母表中的符号组成的任何有穷序列称为符 号串,例如00 11 10 是字母表 ={0,1}上的符号 串.
第2章 文法与语言
主要内容
• 程序设计语言 • 语言概述 • 形式语言 • 符号和符号串 • 文法 • 语言(推导) • 语法树与句型分析 • 文法二义性 • 文法与语言分类
2020/9/7
2
主要内容
• 程序设计语言 • 语言概述 • 形式语言 • 符号和符号串 • 文法 • 语言(推导) • 语法树与句型分析 • 文法二义性 • 文法与语言分类
编译原理第二章课件
L(G)={anbn|n≥1}
28
2.2.2 文法的分类
3型文法(又称线性文法、正则文法、正 规文法)
➢ 如果对文法G中的任一产生式均限制为形如: AB 或 A
其中: A,B∈VN , ∈VT 则称文法G为3型文 法。 ➢ 上述形式的3型文法也称为右线性文法。 ➢ 如果对文法G中的任一产生式均限制为形如:
A0 = { } A1 = { a,b } A2 = AA ={ aa,ab,ba,bb } A3 = A2A ={ aaa,aab,aba,abb,baa,bab,bba,bbb }
……
An =An-1A = AAA……A
12
2.1 基本概念
10.符号串集合的正闭包
设A为符号串的集合,则称A+为符号串集A的 正闭包.具体定义如下:
文法
字符串集合
16
2.2 .1 文法的定义
2.2.1 文法(Grammar)的定义 文法的定义
一个文法G是一个四元组: G = ( VN, VT, S, P )
其中:
➢ VT (Terminal Vocabulary)是一个非空的有限集合,
它的每个元素称为终极符号或终极符,一般用小 写字母表示。 从语法分析的角度看,终极符号是 一个语言不可再分的基本符号。
可合并为一个,缩写为:
P 1 | 2 | … | n
其中,每个i 称为 P 的一个候选式,符号“|” 读作“或” 。
21
⑥一个文法的核心是产生式。 一般约定:
用< >括起来或 大写字母:非终结符 不用< >括起来或小写字母:终结符
22
例1
G =(VN,VT, S, P) 其中:VN={ S , A}
贵州大学_编译原理课件第二章(编译原理完整版)
下一页 最后一页
退出
• 字母表是组成字符串的所有字符的集合。换句话说,字 符串中的所有字符取自字母表
• 定义中强调两个有限,因为计算机的表示能力有限 : <1> 字母表是有限的,即字母表中元素是有限多个;
<2> 字符串的长度是有限的,即字符串中字符个数是有限 多个。
• 由于字符串的有序性,使得以字符串作为元素的集合, 与一般意义下的集合有所不同,反映在集合运算上,强
➢ 实现方法:
最后一页 退出
– 作为单独的一遍:把字符流的源程序变为单词序列,输 出在一个中间文件上,这个文件作为语法分析程序的输
入而继续编译过程。
– 作为语法分析的子程序:当语法分析程序需要一个单词 时,调用该子程序;词法分析程序每得到一次调用,便
从源程序文件中读入一些字符,直到识别出一个单词或 直到下一单词的第一个字符为止。
便。运算符可采用一符一种的分法,但也可以把具
有一定共性的运算符视为一种。至于界符一般用一
符一种的分法
2.1.2 词法记号的属性
目 录 ➢ 如果一个记号只含一个单词符号,那么,对于这个
第一页 单词符号,记号就完全代表它自身了。若一个记号
上一页 下一页
含有多个单词符号,那么,对于它的每个单词符号, 除了给出记号之外,还应给出有关单词符号的属性 信息。
上一页
fi (a == f (x) ) …
下一页 ➢在实数是a.b格式下,可以发现下面紧急方式的错误恢复
➢错误修补
2.2 词法记号的描述与识别
目 录 ➢ 2.2.1 串和语言
第一页 上一页
– 从词法分析的角度看程序设计语言,它是由记号组成的 集合。
– 定义2.1 语言L是有限字母表∑上有限长度字符串的集合。
编译原理第二章
二义文法: G(E): E i|E+E|E*E|(E)
无二义文法:
G(E):E T | E+T T F | T*F F (E) | i
表达式 项|表达式+项 项 因子 | 项*因子 因子 (表达式) | i
2.3.2 语法分析树与二义性
消除二义性:
E
E
E*E
E +E
i
E
+
E
E
*
E i
G(E): E i|E+E|E*E|(E) 是二义文法。
语言的二义性:一个语言是二义性的,如果对它 不存在无二义性的文法。
可能存在G和G’,一个为二义的,一个为无二义的。 但L(G)=L(G’)
二义性问题是不可判定问题,即不存在一个算法, 它能在有限步骤内,确切地判定一个文法是否是 二义的。
可以找到一组二义文法的充分条件。
i
i
i
i
用一种层次观点看待表达式
按照优先集和结合性
2021/3/30
29
2.3.2 语法分析树与二义性
E
用一种层次观点看待表达式
i*i+i
i * (i + i)
i * (i * i + i)
T
i * i * (i + i) + i * i + i
F
取消二义性的文法
i
E T | E + T
T F | T * F
程序设计语言不是上下文无关语言,甚至 不是上下文有关语言。
L7={c| (a|b)*}不能由上下文无关文 法产生,甚至连上下文有关文法也不能产 生,只能由0型文法产生。
现今程序设计语言的语言结构,用上下文 无关文法描述就足够了。
编译原理课件第2章
第2章 词 法 分 析
在计算机内部,可以有不同的方式来表示记号的类别和属性。 一般情况下,记号的类别可以用整型编码或枚举类型表示,如表 2.1中每个记号类别可以用括号中的整型编码表示,如01表示const, 82表示id等。根据记号类别的不同,记号的属性的值可以有不同 的表示方法。relation的属性值是一个有限可枚举集合,可以用每 个属性值在集合中的位置来表示它,如1表示<,2表示<=,依此 类推。id的属性值是一个无限可枚举集合,因此,只能用每个标 识符的原始输入形式(字符串)来表示,如pi、draw_line等。字面 量的属性根据情况,其表示方式也不同,如数字字面量可由转义 后的实际值表示,如表示为3.1416而不是“3.1416”,而字符串字 面量就无需转义。
第2章 词 法 分 析
例2.1 对于语句:position := initial + rate * 60,可以识别出 下述序列:
标识符 特殊符号 标识符 特殊符号 标识符 特殊符号 数 字字面量
其中position、initial、rate均被识别为标识符,因为它们均符 合同一条规则,即以字母打头的字母数字串。记号至少含有两 个信息:一个是记号的类别,如“标识符”;另一个是记号的 值,如“position”。显然,如果把记号看作是一个类型的话,则 单词就是一个类型中的实例。由于我们总是说识别出一个标识 符,而不说识别出一个position或rate,因而将词法分析器识别出 的序列称为记号流。
第2章 词 法 分 析 例2.2 表达式mycount > 25由表2.2的三个记号组成。其中标 识符的属性值也可以由mycount在符号表中的入口(下标)来表示。
表2.2 记号的表示
第2章 词 法 分 析
编译原理第二章(2-1)
§2.1 文法和语言的表示 §2.2 文法和语言的定义 §2.3 句型的分析 §2.4 文法的化简与改造 §2.5 文法和语言的Chomsky分类
北京交通大学 于双元 1
提要
所谓形式化方法,简单地说,就是用一整套 带有严格规定的符号体系来描述问题的理论 和方法,用形式化方法描述的语言(语法和 语义)便是形式语言。 本章将从形式语言的角度系统地介绍什么 是程序设计语言的文法,文法和语言的关系 等问题,本章是本课程的理论基础。
(规则U → u ,
x,y均为ε )
(规则S →bA) (规则U → u , (规则B →aBB) (规则U → u , x为aaB,y为ε ) x为ab,y为ε )
② abS=>abbA xU =>xu ③ aB=>aaBB xU =>xu
北京交通大学 于双元
21
文法BNF表示为 例:上述文法G[S]可进行的系列直接推导 G[S]: S → aB | bA 推导过程 使用规则 A →a | aS | bAA S=>aB S → aB B →b | bS | aBB
北京交通大学 于双元 15
(2) 文法G[Z]: 规则的非空有穷集合. Z: 开始符号(识别符号),至少在一条规则 的左部出现。 (3) 字汇表V: 规则左右部中所有符号组成的集合 非终结符号: 规则左部出现的符号 组成非终结符号集合Vn 终结符号: 规则中不属于Vn的符号 组成终结符号集合Vt
非终结符号以< >括起,但当是大写字母是时常省略
北京交通大学 于双元 9
5、符号串的长度:符号串所含符号的个数 6 、符号串的连接和方幂 连接:设有符号串x,y,把y的符号写在x的符号 之后所得的符号串,叫做x与y的连接, 记xy
编译原理课件第二章
设G为一文法,A->α是G的一个产生式,如果α具有 uAδ的形式,其中u, δ同时为空则产生式A-> α是直接递 归;若存在推导A=> α=>* uAδ,则A->α为递归。 上述A称为直接递归和递归非终结符。 u为空而δ不为空,上式成为直接左递归。 u不为空而δ为空,上式成为直接右递归。 如果一个文法中至少含有一个递归的非终结符号,则称递 归文法。
11
文法举例
例 文法G=(VN,VT,P,S) VN = { S }, VT ={ 0, 1 } P={ S→0S1, S→01 } S为开始符号
12
文法的通常表示方法
元符号: → ∷= | < > 习惯表示 大写字母:非终结符 小写字母:终结符 S –> AB A –> Ax | y B –> z
23
2.3.1 规范推导和规范规约(2)
• 规范规约的实例:符号串i+i*i规约过程
步 序i 当前符号串wi 0 1 2 i+i*i F+i*i T+i*i
所用产生式 F->i T->F E->T
《编译原理课件》PPT课件
容易翻译成目标代码。 常用的中间代码有三地址码、四元式、三元
式、间接三元式、逆波兰表示(后缀式)、 树形表示等。
14
中间代码:四元式
例: id1:=id2+id3*10
sum:=first+count*10 翻译为四元式中间代码的形式:
5
1.2 编译程序的工作过程与结构
一个编译程序的整个工作过程是划分成阶段 进行的,每个阶段将源程序从一种表示形式 转换成另一种表示形式。
编译阶段的典型划分方法是划分为5个基本阶 段:词法分析、语法分析、语义分析产生中 间代码、代码优化、代码生成。
掌握编译过程的5个基本阶段,是学习编译原 理课程的基本内容。
29
自编译:T形图表示
PASCAL2
A代码
PASCAL2
A代码
PASCAL1 PASCAL1
A代码 A代码
用PASCAL1语言 编写的功能更
强的PASCAL2语 言编译程序的
A代码
已有的PASCAL1 语言的编译程序
自编译得到
功能更强的
PASCAL2语言 的编译程序
源程序
注意:T形图的组合规则:① ②
Java语言的操作平台无关性的实现就是如此。
26
1.3 编译程序的开发
构造编译程序,可以:
1. 使用机器语言或汇编语言作工具构造 2. 使用高级语言作工具构造 3. 使用机器语言或汇编语言构造编译程序的核心
部分,使用高级语言构造编译程序的扩充部分 4. 使用编译程序自动生成工具构造
使用高级语言作工具构造编译程序可以大大节 省程序设计的时间,并且编译程序易于阅读、 维护和移植。
编译原理课件PPT 第2章
Chapter 2 Language & Syntax Description Section 2 Grammar & Language 1、Basic concepts a、Grammar Grammar is the formal production rules describing the construction of syntax elements. Notes:1) Syntax elements include sentences and words in sentences, a language is composed of sentences. 2) The form of a production rule is as following: left-sideright-side (that can be read as ―leftside is defined as right-side‖, ―left-side derives right-side‖,or ―left-side produces right-side‖, it expresses the relation between the two sides)
Chapter 2 Language & Syntax Description Section 2 Grammar & Language 1、Basic concepts j、Extended notations of grammar rules Use extended BNF(Backus Naur Form) notations
Chapter 2 Language & Syntax Description Section 2 Grammar & Language 1、Basic concepts b、Non-terminal symbol – A symbol that appears in the left of a rule , is bracketed in <> and expresses a syntax concept. – A set of non-terminal symbols is expressed in VN c、Terminal symbol – Strings in a language that cannot be decomposed (including strings of single characters), expressed in VT. Notes:Terminal symbols are basic elements of a sentence.
形式语言与自动机理论第二章蒋宗礼
2.2 形式定义
• P——为产生式(production)的非空有穷集合。P中的元素均具有 形式αβ,被称为产生式,读作:α定义为β。其中 α∈(V∪T)+,且α中至少有V中元素的一个出现。β∈(V∪T)*。 α称为产生式αβ的左部,β称为产生式αβ的右部。产生 式又叫做定义式或者语法规则。
A1A },A)。
第20页/共106页
2.2 形式定义
⑸ ({S , A , B , C , D},{a , b , c , d,#} , {SABCD , Sabc# , AaaA , ABaabbB , BCbbccC,cCcccC,CDccd# ,CDd#, CD#d},S)。
⑹ ({S},{a , b} , {S00S , S11S , S00 , S11},S)。
第32页/共106页
2.2 形式定义
• 例 2-5 设G=({S,A,B},{0,1},{SA|AB,A0|0A,B1|11},S)
对于n≥1,
A n 0n
首先连续n-1次使用产生式;A0A, 最后使用产生式A0;
A n 0nA
连续n次使用产生式A0A;
B1
使用产生式B1;
B 11
使用产生式B11。
• CFL
• CFG(CNF、GNF)、PDA、CFL的性质。
• TM
• 基本TM、构造技术、TM的修改。
• CSL
• CSG、LBA。
第4页/共106页
教材及主要参考书目
1.蒋宗礼,姜守旭. 形式语言与自动机理论. 北京:清华大学出版 社,2003年
2.John E Hopcroft, Rajeev Motwani, Jeffrey D Ullman. Introduction to Automata Theory, Languages, and Computation (2nd Edition). Addison-Wesley Publishing Company, 2001
《编译原理课程教案》第2章:文法基础
右部,可以含有非 终结符和终结符
产生式又称为一条规则。
有时一个产生式不足以描述该语法范畴,就用多个 产生式,如算术表达式的描述为:(递归定义) E E + E | E * E|i
EE+E选式。
《形式语言与自动机理论》(蒋宗礼等, 清华大学出版社)对文法的定义:
• 例,定义只含+,*的算术表达式的文法 G=<{i,+,*,(,)},{E},E, P>, 其 中,P由下列产生式组成:
Ei E E+E E E*E E (E)
• 几点规定: 例,定义只含+,*的算术表达式的文法
–“ ”也可以用“ 表示, 这种表示称为巴 G=<{i , +,*,(,)}::=" ,{E} ,E, P>, 其中, 科斯范式(BNF) P由下列产生式组成:
L(G ) { | S , V }
* T
• 文法G所产生的语言定义为: L(G)={x|S=>x,其中S为文法的开始符号,x∈Vt*} 。 即: 一个文法G可以推导出的所有句子构成的一个集 合, 就确定了一个语言。
*
• 例2.1 (P30) 考虑文法G1: 它定义了什么语言。
• 与机器语言或汇编语言比较,高级语言 的优点: –较接近于数学语言和工程语言,比较 直观、自然和易于理解; –便于验证其正确性,易于改错; –编写效率高; –易于移植.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• ∑的克林闭包(Kleene Closure)为:
– ∑*=∑0∪∑+
–
2013-7-14
=∑0∪∑∪∑2∪∑3∪……
16
2.2 基本定义
•例 {0,1}+ = {0,1,00,01,11,000,001,010,
011,100,……}
{a,b,c,d}+ = {a,b,c,d,aa,ab,ac,
• 例:变量:=表达式
– if 条件表达式 then 语句 – while 条件表达式 do 语句 – call 过程名(参数表)
2013-7-14 8
2.1 语言概述
• 描述形式——文法 – 语法——语句 • 语句的组成规则 • 描述方法:BNF范式、语法(描述)图 – 词法——单词 • 单词的组成规则 • 描述方法:BNF范式、正规式
– 字母表∑={a,b}上的句子abaabb的前缀、后缀、真前 缀和真后缀如下: – 前缀:ε,a,ab,aba,abaa,abaab,abaabb – 真前缀:ε,a,ab,aba,abaa,abaab – 后缀:ε,b,bb,abb,aabb,baabb,abaabb – 真后缀:ε,b,bb,abb,aabb,baabb
问题:如何用符号来描述?即如何形式化?
2013-7-14 28
定义句子的规则的语法组成
——终结符号集,非终结符号集,语法规则,开始符号 非终结符号集V = {<赋值语句>,<左部量>,<右部表达式>,<简单变 量>,<下标变量>,<运算符>} 终结符号集T = {a,b, c,m[1],m[2],m[3], +, -} 语法规则集P = {<赋值语句><左部量>=<右部表达式> ,……} 开始符号S = 赋值语句
– 例(自然语言:第译始二天课今开编上节) – 今天开始上第二节编译课
2013-7-14 6
2.1 语言概述
语言是字及其组合规则的统一体
2013-7-14 7
2.1 语言概述
• 程序设计语言——形式化的内容提取
– 程序设计语言(Programming Language):组成程序 的所有语句的集合。 – 程序(Program):满足语法规则的语句序列。 – 语句(Sentence) :满足语法规则的单词序列。 – 单词(Token) :满足词法规则的字符串。
2013-7-14 9
形式语言与自动机理论的产生与 作用
• 语言学家Chomsky最初从产生语言的角度研究 语言。
– 1956年,通过抽象,他将语言形式地定义为是由一 个字母表中的字母组成的一些串的集合。可以在字 母表上按照一定的规则定义一个文法(Grammar), 该文法所能产生的所有句子组成的集合就是该文法 产生的语言。
2013-7-14 23
2.2 基本定义
• 定义2.13 设∑是一个字母表,L ∑*,L称为字 母表∑上的一个语言(Language),x∈L,x叫做L 的一个句子。 • 例:字母表{0,1}上的语言 {0,1} {00,11} {0,1,00,11} {0,1,00,11,01,10} {00,11}* {01,10}*
2013-7-14 14
2.2 基本定义
• 定义2.2 设∑ 1 、∑ 2 是两个字母表,∑ 1 与∑ 2 的乘积 (Product)定义为∑1∑2={ab|a∈∑1,b∈∑2} • 例:∑1={0,1}, ∑2={a,b}, ∑1∑2 ={0a,0b,1a,1b} • 定义2.3 设∑是一个字母表,∑的n次幂(Power)递归地 定义为:
ac,ad,ba,bb,bc,bd,…,aaa,aab, aac,aad,aba,abb,abc,…}
2013-7-14
18
2.2 基本定义
• 定义2.5 设∑是一个字母表,x ∑*,x称 为字母表∑上的一个句子(sentence),ε叫做∑ 上的一个空句子。
• 定义2.6 设∑是一个字母表,对任意的x, y∈∑*,a∈∑,句子xay中的a叫做a在该句子中 的一个出现(occurrence)。 • 定义2.7 设∑是一个字母表,x∈∑*,句子x 中字符出现的总个数叫做该字符串的长度 (length),记作|x|。
2013-7-14 22
2.2 基本定义
• 定义2.11设∑是一个字母表,对w,x,y, z∈∑*,如果w=xyz,则称y是w的子串 (substring)。 • 定义2.12 设∑是一个字母表,对t,u,v, w,x,y,z∈∑*,如果t=uyv,w=xyz,则称y是 t和w的公共子串(common substring)。如果y1, y2,……,yn是t和w的公共子串,且 |yj|=max{|y1|,|y2|,……,|yn|},则称yj是t和w 的最大公共子串(maximal common substring)。
2013-7-14
29
文法G的形式定义
定义2.16 文法G为一个四元组:
G = (V,T,P,S) • V:非终结符(Variable)集 – 语法变量(成分)——代表某个语言的各种子结构 • T:终结符(Terminal)集
– 语言的句子中出现的字符,V∩T=Φ
• 20世纪50年代,人们用巴科斯范式(Backus Nour Form 或 Backus Normal Form,简记 为BNF)成功地描述ALGOL-60 • 促进形式语言在20世纪60年代的大发展 • 巴科斯范式就是上下文无关文法(Context Free Grammar)的一种表示形式
2013-7-14
2013-7-14
10
形式语言与自动机理论的产生与 作用
• 克林(Kleene)在1951年到1956年间,从识别 语言的角度研究语言,给出了语言的另一种描 述
– 克林是在研究神经细胞中,建立了自动机 – 对于按照一定的规则构造的任一个自动机,该自动 机就定义了一个语言,这个语言由该自动机所能识 别的所有句子组成
– ⑴ ∑0={ε}
– ⑵ ∑n=∑n-1∑ n≥1
• 例: ∑13 ={000,001,010,011,100,101,110,111} ∑14 ={0000,0001,0010,0011,0100,……,1111}
2013-7-14 15
2.2 基本定义
• 定义 2.4 设 ∑是 一个 字母表 ,∑的 正闭包 (Positive Closure)定义为:
2013-7-14 19
2.2 基本定义
• 定义2.8 设∑是一个字母表,x,y∈∑*,x, y的并置(concatenation)是这样一个串,该串是 由串x直接连接串y所组成的。记作xy。并置又 叫做连结。
– 对于n≥0,串x的n次幂(power)定义为: – ⑴ x0=ε; – ⑵ xn=xn-1d,aba,abb,abc……}
2013-7-14
17
2.2 基本定义
• 例 {0,1}* = {ε,0,1,00,01,11,000,001,
010,011,100,…}
{a,b,c,d}* = {ε,a,b,c,d,aa,ab,
第2章 高级语言及其文法
2.1 语言概述 2.2 基本定义 2.3 文法的定义 2.4 文法的分类 2.5 CFG的语法树 2.6 CFG的二义性 2.7 本章小结
2013-7-14 1
2.1 语言概述
语言是一定的群体用来进行 什么是语言? 信息交流的工具。
2013-7-14
2
2.1 语言概述
• 信息交流的基础是什么?
2013-7-14 24
2.2 基本定义
• 2.14 设∑1,∑2是字母表,L1∑1*, L2∑2*,语言L1与L2的乘积(product)是字 母表∑1∪∑2上的一个语言,该语言定义为: L1L2={xy|x∈L1,y∈L2}
2013-7-14
25
2.2 基本定义
• 定义2.15 设∑是一个字母表,L∑*,L的n次幂 (power)是一个语言,该语言定义为: ⑴ 当n=0是,Ln={ε}; ⑵ 当n≥1时,Ln= Ln-1L。 L的正闭包(positive closure)L+是一个语言,该语 言定义为: L+=L∪L2∪L3∪L4∪…… L的克林闭包(Kleene closure)L*是一个语言,该语 言定义为: L*= L0∪L∪L2∪L3∪L4∪……
2013-7-14 11
形式语言与自动机理论的产生与 作用
• 1959年,Chomsky通过深入研究,将他本人的 研究成果与克林的研究成果结合了起来,不仅 确定了文法和自动机分别从生成和识别的角度 去表达语言,而且证明了文法与自动机的等价 性。
2013-7-14
12
形式语言与自动机理论的产生与 作用
–按照共同约定的生成规则和理解规则去 生成“句子”和理解“句子” –例:
• “今节日上课始开译第一编” • “今日开始上第一节编译课”
2013-7-14
3
2.1 语言概述
• 语言的特征
– 自然语言(Natural Language) • 是人与人的通讯工具 • 语义(semantics):环境、背景知识、语气、二 义性——难以形式化 – 计算机语言(Computer Language) • 计算机系统间、人机间通讯工具 • 严格的语法(Grammar)、语义(semantics) — —易于形式化:严格
2013-7-14 4
2.1 语言概述
• 语言的描述方法——现状 –自然语言:自然、方便-非形式化 –数学语言(符号):严格、准确-形式 化
–形式化描述
• 高度的抽象、严格的理论基础和方便的计 算机表示