第三章文法和语言
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
若集合 A=ab,cde B = 0,1 则 AB=ab0,ab1,cde0,cde1
闭包、正闭包
使用 * 表示上的一切符号串(包括ε)组成 的集合。Σ* 称为Σ的闭包(closure)
上的除ε外的所有符号串组成的集合记为 + 。Σ+称为Σ的正闭包(positive closure)
描述语言:语言中的每个句子可以用严格定 义的规则来构造。
形如:αβ或α∷=β 的(α,β)有序对 α 是字母表V的正闭包V+ 中的一个符号 β 是V*中的一个符号 α 称为规则的左部,β 称为规则的右部
定义
定义3.1 文法G定义为四元组(VN,VT,P,S ) 其中: VN 为非终结符号(或语法实体,或变量)集; VT 为终结符号集; P 为产生式(也称规则)的集合; S 称作识别符号或开始符号,它是一个非终结
比如,选取了<主语>,并采用规则 <主语>∷=<代词>, 那么得到: <主语><谓语> <代词><谓语>,
文法的直观概念
句子:“我是大学生”的全部动作过程是: <句子> <主语><谓语> <代词><谓语> 我<谓语> 我<动词><直接宾语> 我是<直接宾语> 我是<名词> 我是大学生
符,至少要在一条产生式中作为左部出现。 A grammar consists of terminals,
nonterminals,a start symbol and productions.
定义
VN,VT和P是 非空有穷集。 VN和VT不含公共的元素,即VN ∩ VT = φ 用V表示 VN ∪ VT
上的符号串。 3. y是上的符号串,当且仅当它可以由1和2
导出。 例如: Σ={a,b}
ε,a,b,aa,ab,aabba…都是上的符号串
符号串的头、尾、子串
符号串s的头(前缀 prefix):移走符号串s尾
部的零个或多于零个符号得到的符号串。如:
b是符号串banana的一个前缀。
符号串s的尾(后缀 postfix):删去符号串s
文法的直观概念
有了一组规则以后,按照如下方式用它们 导出句子: 找出∷=左端的带有<句子>的规则,并把它 由 ∷= 右端的符号串代替,这个动作表示 成: <句子> <主语><谓语>
文法的直观概念
然后在得到的串<主语><谓语>中,选取 <主语>或<谓语>,再用相应规则的∷=右端 代替之。
符号串的运算
例:Σ ={a,b} Σ *={ε,a,b,aa,ab,ba,bb,aaa,aab,…} Σ +={a,b,aa,ab,ba,bb,aaa,aab,…}
* {} * 2 3 ......
3.3 文法和语言的形式定义
语言的有穷表示有两个途经: 生成式(production)—文法:语言中的每个
3.2 符号和符号串
符号(symbol):可以相互区别的记号(元素) 字母表(alphabet):符号(元素)的非空有穷
集合。 符号串(string of symbols):由字母表中
的符号组成的任何有穷序列称为该字母表上 的符号串。
符号和符号串
1.空符号串ε是上的符号串 2.若x是上的符号串,a是的元素,则xa是
头部的零个或多于零个符号得到的符号串。
如:nana是符号串banana的一个后缀。
符号串s的子串(substring):从s中删去一
个前缀和一个后缀得到的符号串。
如:
ana是符号串banana的一个子串。
固有头、固有尾、固有子串
对于每个符号串s, s和ε两者都是符号串s 的前缀,后缀和子串。
语义—表示各个记号的特定含义。表示各个 记号和记号所表示的对象之间的关系。
语言概述
语用—表示在各个记号所出现的行为中, 它们的来源、使用和影响。
只从语法来看语言,这种意义下的语言称 作形式语言。
形式语言(formal language)—用数学符号 严格地依据一定的规则,形式地表达语言 描述。这种表达式称为形式语言。
文法定义的例
例3.1 文法G=(VN,VT,P,S) VN = { S }, VT ={ 0, 1 } P={ S→0S1, S→01 }
非终结符集合中只含有一个元素S 终结符集合由两个元素 0 和 1 组成 有两条产生式:S→0S1, S→01 S为开始符号
文法定义的例
文法的写法 1. G:S→0S1
第3章 文法和语言
本章知识点(内容)
为语言的语法描述寻求工具 工具要对程序设计语言给出精确的无二义的
语法描述。(严谨、简洁、易读) 形式工具—将语言抽象地定义为一个数学系
统。 “形式”是指这样的事实:语言的所有规则
仅以什么样的符号串能出现的方式来陈述
本章知识点(内容)
文法和语言的形式定义 文法的类型 上下文无关文法及其语法树 上下文无关文法的句型分析 有关文法实用中的一些说明 确定的有限自动机
3.1 文法的直观概念
表述一种语言,就是说明这种语言的句子的 集合。
如果这个集合是有穷的,则只需列出句子的 有穷集合。
但对于含有无穷句子的语言来讲,存在如何 给出它的有穷表示的问题。
文wk.baidu.com的直观概念
以自然语言为例,无法列出全部句子,但是 可以给出一些规则,用这些规则来说明(或者 定义)句子的组成结构。
文法
In a grammar,one nonterminal is distinguished as the start symbol,and the set of strings it denotes is the language defined by the grammar.
The productions of a grammar specify the manner in which the terminals and nonterminals can be combined to form string.
每个句子和使用者的关系
语言研究
研究程序设计语言 每个程序构成的规律 每个程序的含义 每个程序和使用者的关系
语言研究的三个方面 语法 Syntax 语义 Semantics 语用 Pragmatics
语言概述
每种语言具有两个可识别的特性: 语言的形式—语法 该形式相关联的意义—语义
语法—表示构成语言句子的各个记号之间的 组合规律
S→01 2. G[S]: S→0S1
S→01
习惯表示
元符号: ∷= | < > 大写字母:非终结符,小写字母:终结符
S AB A Ax | y Bz 元符号(metasymbol,metacharacter): 在文法中,对语法单位起控制作用的字符。
文法定义的例
例 3.2 文法G=(VN,VT,P,S) VN ={标识符,字母,数字} VT ={a,b,c,…x,y,z,0,1,…,9} P={<标识符>→<字母> <标识符>→<标识符><字母> <标识符>→<标识符><数字> <字母>→a,…, <字母>→z <数字>→0,…, <数字>→9 } S=<标识符>
What are Derivations
Derivation is a way that a grammar defines a language.
In the process of derivation a production is treated as a rewriting rule in which the nonterminal on the left side is replaced by the string on the right side of the production
如:
x=ab,y=cd 则 xy=abcd
有:εa =
aε
方幂:符号串自身连接n次得到的符号串
an 定义为 aa…aa n个a
a1=a,
a2=aa, a0=ε
符号串的运算
符号串集合:若集合A中所有元素都是某字 母表上的符号串,则称A为字母表上的符 号串集合。
两个符号串集合A和B的乘积定义为: AB =xy|xA且yB
推导的定义
直接推导 长度为n(n≥1)的推导 + 长度为n(n≥0)的推导 * 定义3.2 α→β是文法G的产生式,
若有 v,w 满足:v=γαδ w= γβδ 其中 γ∈V*,δ∈V* 则称v直接推导到w,也称w直接归约到v 记作 v w w derives from v (production unspecified)
称为文法G的字母表或字汇表
文法
Terminals are the basic symbols from which strings are formed.
Nonterminals are syntactic variables that denote sets of strings that help define the language generated by the grammar.
比如汉语句子可以是由主语后随谓语而成, 构成谓语的是动词和直接宾语
采用EBNF表示这种句子的构成规则
文法的直观概念
“我是大学生”。是汉语的一个句子 <句子>∷=<主语><谓语> <主语>∷=<代词>|<名词> <代词>∷=我|你|他 <名词>∷=王明|大学生|工人|英语 <谓语>∷=<动词><直接宾语> <动词>∷=是|学习 <直接宾语>∷=<代词>|<名词>
符号串s的
固有头(真前缀)
固有尾(真后缀)
真:非空、不等
固有子串(真子串)
任何非空符号串 x,相应地,是s的前缀, 后缀或子串,并且 s x
符号串的运算
符号串的长度:符号串中符号的个数。
符号串s的长度记为|s|。 ε的长度为0
连接:符号串x、y的连接,是把y的符号写
在x的符号之后得到的符号串xy
文法包含了对语法(syntax)的描述,但却不 表达任何语义。
语言概述
语言是由句子组成的集合,也可以看作由一 组符号所构成的集合。
汉语—所有符合汉语语法的句子的全体 英语—所有符合英语语法的句子的全体 程序设计语言—所有该语言的程序的全体
每个句子构成的规律 研究语言 每个句子的含义
语言概述
每种语言具有两个可识别的特性,即语言的 形式和该形式相关联的意义。
语言的实例若在语法上是正确的,其相关联 的意义可以从两个观点来看,其一是该句子 所想要表示的意义,另一是接收者所检验到 的意义。这两个意义并非总是一样的,前者 称为语言的语义,后者是其语用意义。
幽默、双关语和谜语就是利用这两方面意义 间的差异。
英语句子
This is a university. Computers run the world. I am the cheese. I never tell lies. 其中:I am the cheese. 是合乎语法的句
子,而从语义角度上存在二义性。
文法的直观概念
文法(grammar)—对语言的有穷说明,描述 句子结构规则的元语言称为文法。
句子可以用严格定义的规则来构造。 识别方式—自动机:用一个过程,当输入的
一个任意串属于语言时,该过程经有限次计 算后就会停止并回答“是”,若不属于,能 停止并回答“不是”或者永远继续下去。
文法和语言的形式定义
规则:又称重写规则、产生式、生成式 (regulation,rewriting rule,production)
文法的直观概念
“我是大学生”的构成符合上述规则,而 “我大学生是”不符合上述规则,不是句子。
这些规则成为判别句子结构合法与否的依据, 换句话说,将这些规则看成是一种元语言 (metalanguage) ,用它描述汉语。
这里仅仅涉及汉语句子的结构描述。
英语句子
sentence ∷=<subject><verb-phrase><object> subject ∷= This | Computers | I verb-phrase ∷= <adverb><verb> | <verb> adverb ∷= never verb ∷= is | run | am | tell object ∷= the <noun> | a <noun> | <noun> noun ∷= university | world | cheese | lies cheese:奶酪、重要人物 lies:谎言
闭包、正闭包
使用 * 表示上的一切符号串(包括ε)组成 的集合。Σ* 称为Σ的闭包(closure)
上的除ε外的所有符号串组成的集合记为 + 。Σ+称为Σ的正闭包(positive closure)
描述语言:语言中的每个句子可以用严格定 义的规则来构造。
形如:αβ或α∷=β 的(α,β)有序对 α 是字母表V的正闭包V+ 中的一个符号 β 是V*中的一个符号 α 称为规则的左部,β 称为规则的右部
定义
定义3.1 文法G定义为四元组(VN,VT,P,S ) 其中: VN 为非终结符号(或语法实体,或变量)集; VT 为终结符号集; P 为产生式(也称规则)的集合; S 称作识别符号或开始符号,它是一个非终结
比如,选取了<主语>,并采用规则 <主语>∷=<代词>, 那么得到: <主语><谓语> <代词><谓语>,
文法的直观概念
句子:“我是大学生”的全部动作过程是: <句子> <主语><谓语> <代词><谓语> 我<谓语> 我<动词><直接宾语> 我是<直接宾语> 我是<名词> 我是大学生
符,至少要在一条产生式中作为左部出现。 A grammar consists of terminals,
nonterminals,a start symbol and productions.
定义
VN,VT和P是 非空有穷集。 VN和VT不含公共的元素,即VN ∩ VT = φ 用V表示 VN ∪ VT
上的符号串。 3. y是上的符号串,当且仅当它可以由1和2
导出。 例如: Σ={a,b}
ε,a,b,aa,ab,aabba…都是上的符号串
符号串的头、尾、子串
符号串s的头(前缀 prefix):移走符号串s尾
部的零个或多于零个符号得到的符号串。如:
b是符号串banana的一个前缀。
符号串s的尾(后缀 postfix):删去符号串s
文法的直观概念
有了一组规则以后,按照如下方式用它们 导出句子: 找出∷=左端的带有<句子>的规则,并把它 由 ∷= 右端的符号串代替,这个动作表示 成: <句子> <主语><谓语>
文法的直观概念
然后在得到的串<主语><谓语>中,选取 <主语>或<谓语>,再用相应规则的∷=右端 代替之。
符号串的运算
例:Σ ={a,b} Σ *={ε,a,b,aa,ab,ba,bb,aaa,aab,…} Σ +={a,b,aa,ab,ba,bb,aaa,aab,…}
* {} * 2 3 ......
3.3 文法和语言的形式定义
语言的有穷表示有两个途经: 生成式(production)—文法:语言中的每个
3.2 符号和符号串
符号(symbol):可以相互区别的记号(元素) 字母表(alphabet):符号(元素)的非空有穷
集合。 符号串(string of symbols):由字母表中
的符号组成的任何有穷序列称为该字母表上 的符号串。
符号和符号串
1.空符号串ε是上的符号串 2.若x是上的符号串,a是的元素,则xa是
头部的零个或多于零个符号得到的符号串。
如:nana是符号串banana的一个后缀。
符号串s的子串(substring):从s中删去一
个前缀和一个后缀得到的符号串。
如:
ana是符号串banana的一个子串。
固有头、固有尾、固有子串
对于每个符号串s, s和ε两者都是符号串s 的前缀,后缀和子串。
语义—表示各个记号的特定含义。表示各个 记号和记号所表示的对象之间的关系。
语言概述
语用—表示在各个记号所出现的行为中, 它们的来源、使用和影响。
只从语法来看语言,这种意义下的语言称 作形式语言。
形式语言(formal language)—用数学符号 严格地依据一定的规则,形式地表达语言 描述。这种表达式称为形式语言。
文法定义的例
例3.1 文法G=(VN,VT,P,S) VN = { S }, VT ={ 0, 1 } P={ S→0S1, S→01 }
非终结符集合中只含有一个元素S 终结符集合由两个元素 0 和 1 组成 有两条产生式:S→0S1, S→01 S为开始符号
文法定义的例
文法的写法 1. G:S→0S1
第3章 文法和语言
本章知识点(内容)
为语言的语法描述寻求工具 工具要对程序设计语言给出精确的无二义的
语法描述。(严谨、简洁、易读) 形式工具—将语言抽象地定义为一个数学系
统。 “形式”是指这样的事实:语言的所有规则
仅以什么样的符号串能出现的方式来陈述
本章知识点(内容)
文法和语言的形式定义 文法的类型 上下文无关文法及其语法树 上下文无关文法的句型分析 有关文法实用中的一些说明 确定的有限自动机
3.1 文法的直观概念
表述一种语言,就是说明这种语言的句子的 集合。
如果这个集合是有穷的,则只需列出句子的 有穷集合。
但对于含有无穷句子的语言来讲,存在如何 给出它的有穷表示的问题。
文wk.baidu.com的直观概念
以自然语言为例,无法列出全部句子,但是 可以给出一些规则,用这些规则来说明(或者 定义)句子的组成结构。
文法
In a grammar,one nonterminal is distinguished as the start symbol,and the set of strings it denotes is the language defined by the grammar.
The productions of a grammar specify the manner in which the terminals and nonterminals can be combined to form string.
每个句子和使用者的关系
语言研究
研究程序设计语言 每个程序构成的规律 每个程序的含义 每个程序和使用者的关系
语言研究的三个方面 语法 Syntax 语义 Semantics 语用 Pragmatics
语言概述
每种语言具有两个可识别的特性: 语言的形式—语法 该形式相关联的意义—语义
语法—表示构成语言句子的各个记号之间的 组合规律
S→01 2. G[S]: S→0S1
S→01
习惯表示
元符号: ∷= | < > 大写字母:非终结符,小写字母:终结符
S AB A Ax | y Bz 元符号(metasymbol,metacharacter): 在文法中,对语法单位起控制作用的字符。
文法定义的例
例 3.2 文法G=(VN,VT,P,S) VN ={标识符,字母,数字} VT ={a,b,c,…x,y,z,0,1,…,9} P={<标识符>→<字母> <标识符>→<标识符><字母> <标识符>→<标识符><数字> <字母>→a,…, <字母>→z <数字>→0,…, <数字>→9 } S=<标识符>
What are Derivations
Derivation is a way that a grammar defines a language.
In the process of derivation a production is treated as a rewriting rule in which the nonterminal on the left side is replaced by the string on the right side of the production
如:
x=ab,y=cd 则 xy=abcd
有:εa =
aε
方幂:符号串自身连接n次得到的符号串
an 定义为 aa…aa n个a
a1=a,
a2=aa, a0=ε
符号串的运算
符号串集合:若集合A中所有元素都是某字 母表上的符号串,则称A为字母表上的符 号串集合。
两个符号串集合A和B的乘积定义为: AB =xy|xA且yB
推导的定义
直接推导 长度为n(n≥1)的推导 + 长度为n(n≥0)的推导 * 定义3.2 α→β是文法G的产生式,
若有 v,w 满足:v=γαδ w= γβδ 其中 γ∈V*,δ∈V* 则称v直接推导到w,也称w直接归约到v 记作 v w w derives from v (production unspecified)
称为文法G的字母表或字汇表
文法
Terminals are the basic symbols from which strings are formed.
Nonterminals are syntactic variables that denote sets of strings that help define the language generated by the grammar.
比如汉语句子可以是由主语后随谓语而成, 构成谓语的是动词和直接宾语
采用EBNF表示这种句子的构成规则
文法的直观概念
“我是大学生”。是汉语的一个句子 <句子>∷=<主语><谓语> <主语>∷=<代词>|<名词> <代词>∷=我|你|他 <名词>∷=王明|大学生|工人|英语 <谓语>∷=<动词><直接宾语> <动词>∷=是|学习 <直接宾语>∷=<代词>|<名词>
符号串s的
固有头(真前缀)
固有尾(真后缀)
真:非空、不等
固有子串(真子串)
任何非空符号串 x,相应地,是s的前缀, 后缀或子串,并且 s x
符号串的运算
符号串的长度:符号串中符号的个数。
符号串s的长度记为|s|。 ε的长度为0
连接:符号串x、y的连接,是把y的符号写
在x的符号之后得到的符号串xy
文法包含了对语法(syntax)的描述,但却不 表达任何语义。
语言概述
语言是由句子组成的集合,也可以看作由一 组符号所构成的集合。
汉语—所有符合汉语语法的句子的全体 英语—所有符合英语语法的句子的全体 程序设计语言—所有该语言的程序的全体
每个句子构成的规律 研究语言 每个句子的含义
语言概述
每种语言具有两个可识别的特性,即语言的 形式和该形式相关联的意义。
语言的实例若在语法上是正确的,其相关联 的意义可以从两个观点来看,其一是该句子 所想要表示的意义,另一是接收者所检验到 的意义。这两个意义并非总是一样的,前者 称为语言的语义,后者是其语用意义。
幽默、双关语和谜语就是利用这两方面意义 间的差异。
英语句子
This is a university. Computers run the world. I am the cheese. I never tell lies. 其中:I am the cheese. 是合乎语法的句
子,而从语义角度上存在二义性。
文法的直观概念
文法(grammar)—对语言的有穷说明,描述 句子结构规则的元语言称为文法。
句子可以用严格定义的规则来构造。 识别方式—自动机:用一个过程,当输入的
一个任意串属于语言时,该过程经有限次计 算后就会停止并回答“是”,若不属于,能 停止并回答“不是”或者永远继续下去。
文法和语言的形式定义
规则:又称重写规则、产生式、生成式 (regulation,rewriting rule,production)
文法的直观概念
“我是大学生”的构成符合上述规则,而 “我大学生是”不符合上述规则,不是句子。
这些规则成为判别句子结构合法与否的依据, 换句话说,将这些规则看成是一种元语言 (metalanguage) ,用它描述汉语。
这里仅仅涉及汉语句子的结构描述。
英语句子
sentence ∷=<subject><verb-phrase><object> subject ∷= This | Computers | I verb-phrase ∷= <adverb><verb> | <verb> adverb ∷= never verb ∷= is | run | am | tell object ∷= the <noun> | a <noun> | <noun> noun ∷= university | world | cheese | lies cheese:奶酪、重要人物 lies:谎言