编译原理2文法和形式语言精品PPT课件
合集下载
高级语言及其文法-编译原理-02-(共72张PPT)

2 E→E*E
3 E→(E) 4 E→id
5 E→E-E
6 E→E/E
直接推导与归约
根据产生式对符号串进行变换的过程
A→γ是文法G的一个产生式, 且α、β∈(VT∪VN)*, 称αAβ的直接推导/派生(Derive)出αγβ,也称
αγβ直接归约(Reduce)为αAβ。 记为 αAβαγβ
例:一译开天第课今始编节上 今天开始上第一节编译课
2.1 语言概述
程序设计语言——形式化的内容提取
程序设计语言(Programming Language):组成程序的所有 语句的集合
程序(Program):满足语法规则的语句序列 语句(Sentence) :满足语法规则的单词序列 单词(Token) :满足词法规则的字符串
例
变量=表达式 if 条件 then 语句 while条件 do 语句 call 过程名(参数表)
2.1 语言概述
描述形式——文法
语法——语句 语句的组成规则 描述方法:BNF范式、语法(描述)图
词法——单词
单词的组成规则 描述方法:BNF范式、正规式
2.2 基本定义
字母表(Alphabet)是一个非空有穷集合, 字母表中的元素称为该字母表的一个字母 (Letter),也叫字符(Character)。
语法范畴——某个语言结构 S:开始符号(Start Symbol),S∈VN
至少在产生式左侧出现一次
文法G 的形式定义
P:产生式(Product)集合 α→β,被称为产生式(定义式),读作:α定 义为β。其中α∈(VT∪VN)+,且α中至少有VN 中元素的一个出现。β∈(VT∪VN)*。α称为产 生式α→β的左部(Left Part),β称为产生式α→β 的右部(Right Part)。
3 E→(E) 4 E→id
5 E→E-E
6 E→E/E
直接推导与归约
根据产生式对符号串进行变换的过程
A→γ是文法G的一个产生式, 且α、β∈(VT∪VN)*, 称αAβ的直接推导/派生(Derive)出αγβ,也称
αγβ直接归约(Reduce)为αAβ。 记为 αAβαγβ
例:一译开天第课今始编节上 今天开始上第一节编译课
2.1 语言概述
程序设计语言——形式化的内容提取
程序设计语言(Programming Language):组成程序的所有 语句的集合
程序(Program):满足语法规则的语句序列 语句(Sentence) :满足语法规则的单词序列 单词(Token) :满足词法规则的字符串
例
变量=表达式 if 条件 then 语句 while条件 do 语句 call 过程名(参数表)
2.1 语言概述
描述形式——文法
语法——语句 语句的组成规则 描述方法:BNF范式、语法(描述)图
词法——单词
单词的组成规则 描述方法:BNF范式、正规式
2.2 基本定义
字母表(Alphabet)是一个非空有穷集合, 字母表中的元素称为该字母表的一个字母 (Letter),也叫字符(Character)。
语法范畴——某个语言结构 S:开始符号(Start Symbol),S∈VN
至少在产生式左侧出现一次
文法G 的形式定义
P:产生式(Product)集合 α→β,被称为产生式(定义式),读作:α定 义为β。其中α∈(VT∪VN)+,且α中至少有VN 中元素的一个出现。β∈(VT∪VN)*。α称为产 生式α→β的左部(Left Part),β称为产生式α→β 的右部(Right Part)。
编译原理讲义第二章文法与语言.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被称为该字母表 上的符号串集合。
• 在本课程中,语言被认为是句子的集合。 (外延定义?)所以,一个语言就是对 应于它的字母表上的一个符号串集合。
符号串集合的运算
• 句柄:一个句型的最左简单短语称为该 句型的句柄。
• 定义句柄的原因:在自底向上识别一个 符号串时,总是规约这个句柄。
语言的定义(文法的语言)
• 文法的语言:一个文法G[Z]的语言,用 L(G[Z])表示,定义如下:
文法和语言的定义(推导)
• 直接推导:,,并且是文法中的一个重 写规则,那么我们说v可以直接推导到w, 或者w可以直接规约到v。记作 v => w。
• 例如: • 〈主语〉〈谓语〉〈状语〉 • =>〈名词〉〈谓语〉〈状语〉
文法和语言的定义(推导)
• 推导:对于符号串v和w,如果存在一个 直接推导序列u0=>u1=>…=>,并且u0,, 那么我们说v可以推导到w,或者w规约 到v。记作v =>+ w。
编译原理讲义 (章:文法与语言)
文法与语言
• 文法被用来精确而无歧义地描述语言的 句子的构成方式.
• 文法描述语言的时候不考虑语言的含义。
字母表
定义:字母表是有穷非空集合。
字母表包含了语言中所允许出现的一切符 号。
符号串
• 定义:符号串是由字母表中的符号所组 成的有穷序列。
• 一个语言的句子总是它的字母表的符号 串。这个符号串的组成必须是按照文法 规则组合而成的。
符号串集合
• 定义:若集合A中的一切元素都是同一个 字母表上的集合,那么A被称为该字母表 上的符号串集合。
• 在本课程中,语言被认为是句子的集合。 (外延定义?)所以,一个语言就是对 应于它的字母表上的一个符号串集合。
符号串集合的运算
2019年郑州大学编译原理第2章.ppt

(3)若E为表达式,是一元运算符,则 E (或E )
也 是表达式;
(4) 若E为表达式,则 ( E )也是表达式。
二、语句
1、赋值句 2、控制语句
无条件转移语句 条件语句 循环语句 过程(或函数)调用语句 返回语句
3、说明句 4、简单句和复合句
§2.3 程序语言的语法描述
本节介绍高级语言语法结构的形式化描述问题
例题2.5
构造一个文法G4,使得
L(G4)={ ambn | m>n≧0 } 正解:文法G4: SAB Aa|aA BaBb|ε
上下文无关文法定义 归纳起来,一个上下文无关文法包括四个组成 部分: 一组终结符号 如:me ,book,gave 等 一组非终结符号 如:<主语>,<谓语> 等 一个开始符号 如: <句子> 一组产生式 如: <间接宾语> → <代词> <直接宾语> → <冠词> <名词>
上下文无关文法定义
形式上说,一个上下文无关文法G是一个四元式: G=(VT,VN,S,),其中: VT是一个非空有限集,它的每个元素为终结符号; VN是一个非空有限集,它的每个元素为非终结符号 且VT∩VN= Φ S 是一个非终结符号,称为开始符号; 是产生式有限集合,形如 A→α * 其中:A∈ VN, α∈(VT U VN) 。 注: 开始符号S是一个特殊的非终结符号,它至少 必须在某个产生式的左部出现一次。
语义规则 是指这样的一组规则,使用它可以定义一
个程序的意义。
描述语义规则的工具:
基于属性文法的语法制导下的翻译方法
2.1.3 程序
所谓程序,是描述一定数据的处理过程,即包括描述 数据和对数据的运算两个功能。
也 是表达式;
(4) 若E为表达式,则 ( E )也是表达式。
二、语句
1、赋值句 2、控制语句
无条件转移语句 条件语句 循环语句 过程(或函数)调用语句 返回语句
3、说明句 4、简单句和复合句
§2.3 程序语言的语法描述
本节介绍高级语言语法结构的形式化描述问题
例题2.5
构造一个文法G4,使得
L(G4)={ ambn | m>n≧0 } 正解:文法G4: SAB Aa|aA BaBb|ε
上下文无关文法定义 归纳起来,一个上下文无关文法包括四个组成 部分: 一组终结符号 如:me ,book,gave 等 一组非终结符号 如:<主语>,<谓语> 等 一个开始符号 如: <句子> 一组产生式 如: <间接宾语> → <代词> <直接宾语> → <冠词> <名词>
上下文无关文法定义
形式上说,一个上下文无关文法G是一个四元式: G=(VT,VN,S,),其中: VT是一个非空有限集,它的每个元素为终结符号; VN是一个非空有限集,它的每个元素为非终结符号 且VT∩VN= Φ S 是一个非终结符号,称为开始符号; 是产生式有限集合,形如 A→α * 其中:A∈ VN, α∈(VT U VN) 。 注: 开始符号S是一个特殊的非终结符号,它至少 必须在某个产生式的左部出现一次。
语义规则 是指这样的一组规则,使用它可以定义一
个程序的意义。
描述语义规则的工具:
基于属性文法的语法制导下的翻译方法
2.1.3 程序
所谓程序,是描述一定数据的处理过程,即包括描述 数据和对数据的运算两个功能。
编译原理第二章文法和语言

语言的语法结构
总结词
语言的语法结构是语言形成和发展的核心要素,决定 了语言的表达方式和意义。
详细描述
语言的语法结构是指语言的组织规律和规则,包括词 法、句法、语义等方面的规则。词法规定了词汇的构 成和变化规则,如名词、动词、形容词等词类的划分 ;句法规定了句子结构的规则,如主语、谓语、宾语 等句子的成分及其排列顺序;语义则涉及到词汇和句 子的意义和解释。语言的语法结构是语言理解和生成 的基础,也是语言演变和发展的关键因素。
文法和语言的应用前景
1 2
人工智能领域
文法和语言是人工智能领域的重要基础,可用于 自然语言处理、机器翻译、语音识别等技术的研 究和应用。
计算机科学教育
文法和语言是计算机科学专业的重要课程之一, 对于培养计算机科学人才具有重要意义。
3
软件工程领域
文法和语言可用于软件工程领域中的编译器设计 和开发,提高软件开发的效率和可靠性。
05
文法和语言的未来发展
文法和语言的研究方向
形式语言理论
深入研究形式语言的基本理论, 包括语法、语义和语用等方面, 为自然语言处理和人工智能等领 域提供理论基础。
自然语言处理
结合自然语言处理技术,研究自 然语言的语法、语义和语用规律, 提高自然语言处理的准确性和效 率。
计算语言学
将计算语言学与形式语言理论相 结合,研究语言处理算法和模型, 为机器翻译、语音识别等领域提 供技术支持。
文法和语言的发展趋势
深度学习与文法和语言的结合
01
随着深度学习技术的发展,文法和语言的研究将更加注重与深
度学习的结合,以提高语言处理的性能和效率。
跨媒体语言处理
02
随着多媒体数据的普及,文法和语言的研究将逐渐扩展到跨媒
编译原理 形式语言ppt课件

表示 ,例如上例5中 步经 的过 推导记为
句子 thm e onk动 ey词 冠词 名词
规那么的简化表示
在前面的语法规那么定义中,有些语法范畴〔如<名 词>、<动词>〕有假设干条不同的规那么来定义它, 为简明起见,我们可以将它们写在同一个左部语法
范畴下,将其定义值用符号“|〞〔读作‘或’〕隔 开。如<名词>、 <动词>、 <冠词>的定义规那么可 简记为
正闭包 A+ = A1∪A2∪A3∪…称为Σ的正闭包 A + 表示上的除ε外的一切用穷长串的
集合
注: Σ* = Σ0∪Σ+ 注: Σ+ = ΣΣ* = Σ* Σ
字母表上的一个言语是上符合某种规那么的一 些符号串的集合 ,是*的一个子集
例如:Σ={a,b} Σ*={ε,a,b,aa,ab,ba,bb,aaa,aab,…} 1. 集合{ab,aabb,aaabbb,…,anbn,…}或 {w|w∈Σ*且w=anbn,n≥1}为字母表上的一个言语 2. 集合{a,aa,aaa,…}或{w|w∈Σ*且w=an,n≥1}为 字母表上的一个言语
<句子> <主语短语><动词短语>
所得符号串<主语短语><动词短语>含有两个语法实体,可 对其中任一个〔例如对<动词短语>〕进展新的推导
<句子> <主语短语><动词短语>
<主语短语><动词><宾语短语>
反复上述过程,可得到一个推导序列〔见下页〕。
推导长度
推导 所用 所得的符号串
步 规那么
编译原理 第2章 文法和形式语言

2011年6月7日
推导方法: 推导方法:从一个要识别的符号 开始推导, 开始推导,即用相应规则的 右部来替代规则的左部, 来替代规则的左部 右部来替代规则的左部, 每次仅用一条规则去进行推导。 每次仅用一条规则去进行推导。
<句子 ::=<主语><谓语> 句子>::=<主语><谓语> 句子 ::=<主语><谓语 >::=<代词>|<名词 <主语>::=<代词>|<名词> 主语>::=<代词>|<名词> <代词> ::=你|我|他 代词> ::=你 名词>::= 王民|大学生|工人| <名词>::= 王民|大学生|工人|英语 >::=<动词><直接宾语 <谓语>::=<动词><直接宾语> 谓语>::=<动词><直接宾语> >::=是 <动词>::=是|学习 动词>::= 直接宾语>::=<代词>|<名词> >::=<代词>|<名词 <直接宾语>::=<代词>|<名词>
2011年6月7日
2.由规则推导句子:有了一组规则之后, 2.由规则推导句子:有了一组规则之后,可以按照一定的方式 由规则推导句子 用它们去推导或产生句子。 用它们去推导或产生句子。 推导方法:从一个要识别的符号开始推导, 推导方法:从一个要识别的符号开始推导,即用相应规则的 右部来替代规则的左部,每次仅用一条规则去进行推导。 来替代规则的左部 右部来替代规则的左部,每次仅用一条规则去进行推导。 <句子 => <主语><谓语> 句子> <主语><谓语 主语><谓语> 句子 <代词><谓语 代词><谓语> <主语><谓语> => <代词><谓语> 主语><谓语> ><谓语 …… …… 这种推导一直进行下去,直到所有带< >的符号都由终结符号 这种推导一直进行下去,直到所有带< >的符号都由终结符号 替代为止。 替代为止。
编译原理第二章课件

例1:文法G: S aSb | ab
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}
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}
编译原理课件 第 2 讲 文法和语法 (1)

α →β 或α ∷=β 的(α ,β )有序对,其中α 是 某字母表V的正闭包V+中的一个符号串,β 是V*中 的一个符号串。(α ∈V+,β ∈V*) • α 称为产生式的左部(或规则的左部)。 • β 称为产生式的右部(或规则的右部)。
18
一、 文 法 的 定 义
• 文 法 G:定义为四元组(VN,VT,P,S),其中 – VN : 非终结符集 – VT : 终结符集 – P : 产生式(规则)集合 – S : 开始符号(起始符、识别符号) VN、VT 和 P 是非空有穷集。S 至少在一条规 则中作为左部出现。VN∩VT= φ , S∈VN , V=VN∪VT,称为文法G的字母表(字汇表) 注:有的参考书用(VT , VN , S , P)表示文法。
abc <数字> abc5
25
• 推 导
+ 和 *
若存在v =w0 w1 ... wn=w, (n>0),则称 v推导出(产生)w(推导长度为n),或称w归约v. 记作 v + w 。 * 若有 v + w ,或 v=w ,则记为 v w
* + 注: 包含0步推导;而 不包含0步推导。 例:G: S→0S1, S→01 0S1 00S11 000S111 00001111 * 也记作 0S1 00001111
28
四、 语 言 的 定 义
• 由文法G生成的语言记为L(G),它是文法G 的全部句子的集合: * L(G) = { x | S x,且x ∈VT*,
其中S为文法的开始符号 }
文法描述的语言是该文法一切句子的集合。
例:G: S→0S1, S→01
S 0S100S11„ 0n-1S1n-1 0n1n
18
一、 文 法 的 定 义
• 文 法 G:定义为四元组(VN,VT,P,S),其中 – VN : 非终结符集 – VT : 终结符集 – P : 产生式(规则)集合 – S : 开始符号(起始符、识别符号) VN、VT 和 P 是非空有穷集。S 至少在一条规 则中作为左部出现。VN∩VT= φ , S∈VN , V=VN∪VT,称为文法G的字母表(字汇表) 注:有的参考书用(VT , VN , S , P)表示文法。
abc <数字> abc5
25
• 推 导
+ 和 *
若存在v =w0 w1 ... wn=w, (n>0),则称 v推导出(产生)w(推导长度为n),或称w归约v. 记作 v + w 。 * 若有 v + w ,或 v=w ,则记为 v w
* + 注: 包含0步推导;而 不包含0步推导。 例:G: S→0S1, S→01 0S1 00S11 000S111 00001111 * 也记作 0S1 00001111
28
四、 语 言 的 定 义
• 由文法G生成的语言记为L(G),它是文法G 的全部句子的集合: * L(G) = { x | S x,且x ∈VT*,
其中S为文法的开始符号 }
文法描述的语言是该文法一切句子的集合。
例:G: S→0S1, S→01
S 0S100S11„ 0n-1S1n-1 0n1n
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若x=abbc,y=abbc 则x=y; 若x=abbc,y=abbcc,则x≠y
2)符号串长度:符号串‘x’所包含的符号个数。用‘|x|’表 示。 |abcd|=4; | |=0;
3)符号串的连结:设x,y是∑上的两个符号串,把y的所有符 号相继写在符号串x的最后符号之后所得到的新符号串,称为 x与y的连接,用xy表示。
例:试设计一个表示所有标识符的文法
例:设字母表={0,1},则+可描述为: +={0,1,00,10,11,01,000,100……} 若用A表示+,用A →0表示符号串0∈A,或A生成符号0, 符号“→”读作“生成”或“由⋯ ⋯组成” 则集合A可以表示成:
A →0 A →1 A →A0 A →A1
2.3.2 文法和语言的形式定义
:为某一字母表, L:一个语言, L* 2.3.1 形式语言
1.定义:序列的有穷集合。具体地说每个形式语言都是某个字母 表上按某种规则构成的所有符号串的集合,反之任何一个字母 表上符号串的集合均可以定义一个形式语言。
2.表示方法:
1)枚举法。当语言为有穷集合时使用。
2)文法描述。当语言为无穷集合时使用。
A2=AA={aa, ab, ba, bb} A3=A2A={aaa, aab, aba,abb ,baa ,bab ,bba ,bbb}
10)集合A的正闭包和闭包 定义:集合A的正闭包表示为A+: A+=A1 ∪A2 ∪… ∪ Ak … 定义:集合A的闭包符号记为A*(又称为反闭包或星闭 包): A*=A0∪A1 ∪A2 ∪… ∪ Ak … 根据定义有: A*= A0∪ A+
例:abc 前缀:a,ab,abc , ;后缀:c,bc,abc ,;
子串:a,ab,abc, c,bc, b ,
6)符号串集合的乘积 定义:设A,B为两个符号串集合,其乘积为 AB={xy|xA,yB} 例: A={ab,bc},B={ac,cb} 则AB={abac,abcb,bcac,bccb} , AB≠BA 因为: x=x=x 所以有:{ }A=A { } =A;
例:若A={a,b},则
A+=A1 ∪A2 ∪…={a,b,aa,ab,ba,bb,aaa,aab, aba,abb,baa,bab,bba,bbb,…} A*= A0∪ A+ ={ ,a,b,aa,ab,ba,bb,aaa,aab, aba,abb,baa,bab,bba,bbb,…}
2.3 文法和语言的形式定义
P={x| x∈自然数}
2)符号(字符):字母表中的元素 ∑中的符号: a, b,c
3)符号串:符号的有穷序列 a, b,c,cabccad,ab, ba ε :表示不含任何符号的符号串。
4)符号串集合:字母表上的若干个符号串组成的集合 A={a, aa, ba}
2.2.2 符号串的运算 1)符号串相等:设x,y是∑上的两个符号串,若x,y的相同位 置上的符号完全相同,则称x,y相同。
P={A → aa|aaB| bb|bbD B → aa|aaB
若P为A → aa|bb|Abb |A aa则不 正确
D→ bb|bbD}
或P={A → B|D
B → aa|aBa
D→ bb|bDb}
结论:1.对于一个给定的语言,描述该语言的文法不是唯一的
2.G和G,是两个不同的文法,如果他们描述的语言相同,那么 称G和G,为等价文法。
第二章 文法和形式语言
对语言的非形式化描述从三个因素考虑 1.语法:对语言数据结构的定义 2.语义:语言的含义 3.语用:从用户的角度去描述语言 形式化的方法:是用一套带有严格规定的符号体系来 描述问题的理论和方法。
2.2 字母表和符号串的基本概念
2.2.1 字母表和符号串 1)字母表:元素的非空有穷集合 ∑={a, b,c} ,V={0, 1},
2.文法
文法是规则的非空有穷集合,用四元组G=(VN,VT,P,S),其 中VN是规则中非终结符的集合; VT是规则中终结符的集合, VN ∩ VT= ,字汇表V= VN∪ VT, P是规则的集合; S是一 个非终结符,称为文法的开始符号或识别符号,他至少要 在一条规则中作为规则左部出现。
A → 1 A → 2
7)空集 :不含元素的集合称为空集 ≠ { } ; A=A =
8)符号串的幂 定义:设x是字母表上的符号串,则x的幂运算为: x0=, x1=x, x2=xx, … … ,xn=xn-1x(=x xn-1)
9)符号串集合的幂:(集合的相乘) 定义:若A为符号串集合,则符号串集合的幂为: A0= { } , A1=A ,A2=AA,… … , An-1=An-2A, An=An-1A(=AAn-1), 例:若A={a,b} 则 A1=A={a,b};
1.规则:又称产生式,它是一个符号与一个符号串的有序对
(A, ),通常写为A → 或A ::=
规则的作用:规定了一个语言的组成与结构(一个语言的语 法规则)。
规则中出现的符号:
非终结符:出现在规则左部能派生出符号或符号串的那些符 号。通常用大写字母表示。
终结符:不属于非终结符的那些符号,是组成语言的基本符 号,通常用小写字母表示。
••••••
A → n
A → 1|2| ••••••|n每个n称为候选式
约定:第一条规则的左部为识别符号;对文பைடு நூலகம்G可只将规则 写出。
例:设字母表={a,b},试设计一个文法,描述语言 L={a2n,b2n|n ≥1}。
G=(VN,VT,P,S) 其中VN={A,B,D}, VT={a,b},S=A,
任何符号与空串的连结的结果仍为原来的符号串
x=abbc,y=abbbcc 则 xy=abbcabbbcc ; x = x=x
4)符号串的逆
定义:把一个符号串x的所有符号进行倒置,所产生的
新串
~
x
,就为原符号串的逆 。
~
若x=abbc,则 x的逆为:x cbba
5)符号串前缀、后缀和子串
定义:设x是一个符号串,我们把从x的尾部(前部)删 去若干个(包括0个)符号之后所余下的部分称为x的前 缀(后缀);从一个符号串后删去一个前缀和一个后缀 之后所余下的部分称为符号串的子串。
2)符号串长度:符号串‘x’所包含的符号个数。用‘|x|’表 示。 |abcd|=4; | |=0;
3)符号串的连结:设x,y是∑上的两个符号串,把y的所有符 号相继写在符号串x的最后符号之后所得到的新符号串,称为 x与y的连接,用xy表示。
例:试设计一个表示所有标识符的文法
例:设字母表={0,1},则+可描述为: +={0,1,00,10,11,01,000,100……} 若用A表示+,用A →0表示符号串0∈A,或A生成符号0, 符号“→”读作“生成”或“由⋯ ⋯组成” 则集合A可以表示成:
A →0 A →1 A →A0 A →A1
2.3.2 文法和语言的形式定义
:为某一字母表, L:一个语言, L* 2.3.1 形式语言
1.定义:序列的有穷集合。具体地说每个形式语言都是某个字母 表上按某种规则构成的所有符号串的集合,反之任何一个字母 表上符号串的集合均可以定义一个形式语言。
2.表示方法:
1)枚举法。当语言为有穷集合时使用。
2)文法描述。当语言为无穷集合时使用。
A2=AA={aa, ab, ba, bb} A3=A2A={aaa, aab, aba,abb ,baa ,bab ,bba ,bbb}
10)集合A的正闭包和闭包 定义:集合A的正闭包表示为A+: A+=A1 ∪A2 ∪… ∪ Ak … 定义:集合A的闭包符号记为A*(又称为反闭包或星闭 包): A*=A0∪A1 ∪A2 ∪… ∪ Ak … 根据定义有: A*= A0∪ A+
例:abc 前缀:a,ab,abc , ;后缀:c,bc,abc ,;
子串:a,ab,abc, c,bc, b ,
6)符号串集合的乘积 定义:设A,B为两个符号串集合,其乘积为 AB={xy|xA,yB} 例: A={ab,bc},B={ac,cb} 则AB={abac,abcb,bcac,bccb} , AB≠BA 因为: x=x=x 所以有:{ }A=A { } =A;
例:若A={a,b},则
A+=A1 ∪A2 ∪…={a,b,aa,ab,ba,bb,aaa,aab, aba,abb,baa,bab,bba,bbb,…} A*= A0∪ A+ ={ ,a,b,aa,ab,ba,bb,aaa,aab, aba,abb,baa,bab,bba,bbb,…}
2.3 文法和语言的形式定义
P={x| x∈自然数}
2)符号(字符):字母表中的元素 ∑中的符号: a, b,c
3)符号串:符号的有穷序列 a, b,c,cabccad,ab, ba ε :表示不含任何符号的符号串。
4)符号串集合:字母表上的若干个符号串组成的集合 A={a, aa, ba}
2.2.2 符号串的运算 1)符号串相等:设x,y是∑上的两个符号串,若x,y的相同位 置上的符号完全相同,则称x,y相同。
P={A → aa|aaB| bb|bbD B → aa|aaB
若P为A → aa|bb|Abb |A aa则不 正确
D→ bb|bbD}
或P={A → B|D
B → aa|aBa
D→ bb|bDb}
结论:1.对于一个给定的语言,描述该语言的文法不是唯一的
2.G和G,是两个不同的文法,如果他们描述的语言相同,那么 称G和G,为等价文法。
第二章 文法和形式语言
对语言的非形式化描述从三个因素考虑 1.语法:对语言数据结构的定义 2.语义:语言的含义 3.语用:从用户的角度去描述语言 形式化的方法:是用一套带有严格规定的符号体系来 描述问题的理论和方法。
2.2 字母表和符号串的基本概念
2.2.1 字母表和符号串 1)字母表:元素的非空有穷集合 ∑={a, b,c} ,V={0, 1},
2.文法
文法是规则的非空有穷集合,用四元组G=(VN,VT,P,S),其 中VN是规则中非终结符的集合; VT是规则中终结符的集合, VN ∩ VT= ,字汇表V= VN∪ VT, P是规则的集合; S是一 个非终结符,称为文法的开始符号或识别符号,他至少要 在一条规则中作为规则左部出现。
A → 1 A → 2
7)空集 :不含元素的集合称为空集 ≠ { } ; A=A =
8)符号串的幂 定义:设x是字母表上的符号串,则x的幂运算为: x0=, x1=x, x2=xx, … … ,xn=xn-1x(=x xn-1)
9)符号串集合的幂:(集合的相乘) 定义:若A为符号串集合,则符号串集合的幂为: A0= { } , A1=A ,A2=AA,… … , An-1=An-2A, An=An-1A(=AAn-1), 例:若A={a,b} 则 A1=A={a,b};
1.规则:又称产生式,它是一个符号与一个符号串的有序对
(A, ),通常写为A → 或A ::=
规则的作用:规定了一个语言的组成与结构(一个语言的语 法规则)。
规则中出现的符号:
非终结符:出现在规则左部能派生出符号或符号串的那些符 号。通常用大写字母表示。
终结符:不属于非终结符的那些符号,是组成语言的基本符 号,通常用小写字母表示。
••••••
A → n
A → 1|2| ••••••|n每个n称为候选式
约定:第一条规则的左部为识别符号;对文பைடு நூலகம்G可只将规则 写出。
例:设字母表={a,b},试设计一个文法,描述语言 L={a2n,b2n|n ≥1}。
G=(VN,VT,P,S) 其中VN={A,B,D}, VT={a,b},S=A,
任何符号与空串的连结的结果仍为原来的符号串
x=abbc,y=abbbcc 则 xy=abbcabbbcc ; x = x=x
4)符号串的逆
定义:把一个符号串x的所有符号进行倒置,所产生的
新串
~
x
,就为原符号串的逆 。
~
若x=abbc,则 x的逆为:x cbba
5)符号串前缀、后缀和子串
定义:设x是一个符号串,我们把从x的尾部(前部)删 去若干个(包括0个)符号之后所余下的部分称为x的前 缀(后缀);从一个符号串后删去一个前缀和一个后缀 之后所余下的部分称为符号串的子串。