1 / 99

第 3 章 文法和语言

第 3 章 文法和语言. 3.1 文法的直观概念. 当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有有穷多个句子,则只需列出句子的有穷集就行了,但对于含有无穷句子的语言来讲,存在着如何给出它的有穷表示的问题。 以自然语言为例,人们无法列出全部句子,但是人们可以给出一些规则,用这些规则来说明 ( 或者定义 ) 句子的组成结构,比如汉语句子可以是由主语后随谓语而成,构成谓语的是动词和直接宾语,我们采用 EBNF 来表示这种句子的构成规则:. BNF 范式和语法图 1 、巴科斯范式 :EBNF < 句子 >→< 主语 >< 谓语 >

bisa
Download Presentation

第 3 章 文法和语言

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第3章 文法和语言

  2. 3.1 文法的直观概念 当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有有穷多个句子,则只需列出句子的有穷集就行了,但对于含有无穷句子的语言来讲,存在着如何给出它的有穷表示的问题。 以自然语言为例,人们无法列出全部句子,但是人们可以给出一些规则,用这些规则来说明(或者定义)句子的组成结构,比如汉语句子可以是由主语后随谓语而成,构成谓语的是动词和直接宾语,我们采用EBNF来表示这种句子的构成规则:

  3. BNF范式和语法图 1、巴科斯范式:EBNF <句子>→<主语><谓语> <主语>→<代词>|<名词> <代词>→你|我|他 <名词>→王明|大学生|工人 <谓语>→<动词><宾语> <动词>→是|学习 <宾语>→<代词>|<名词> 带<>的叫非终止符,不带<>的叫终止符。 <逻辑值>→True|False

  4. 例子: <句子><主语><谓语> <代词><谓语> 我<谓语> 我<动词><直接宾语> 我是<直接宾语> 我是<名词> 我是大学生

  5. “我是大学生”的构成符合上述规则,而“我大学生是”不符合上述规则,我们说它不是句子。这些规则成为我们判别句子结构合法与否的依据,换句话说,这些规则看成是一种元语言,用它描述汉语。这里仅仅涉及汉语句子的结构描述。其中一种描述元语言称为文法。“我是大学生”的构成符合上述规则,而“我大学生是”不符合上述规则,我们说它不是句子。这些规则成为我们判别句子结构合法与否的依据,换句话说,这些规则看成是一种元语言,用它描述汉语。这里仅仅涉及汉语句子的结构描述。其中一种描述元语言称为文法。

  6. 语言概述 语言是由句子组成的集合,是由一组符号所构成的集合。 汉语--所有符合汉语语法的句子的全体 英语--所有符合英语语法的句子的全体 程序设计语言--所有该语言的程序的全体 每个句子构成的规律 研究语言 每个句子的含义 每个句子和使用者的关系

  7. 研究程序设计语言 每个程序构成的规律 每个程序的含义 每个程序和使用者的关系 语言研究的三个方面 语法 Syntax 语义 Semantics 语用 Pragmatics

  8. 语法 -- 表示构成语言句子的各个记号之间的组合规律 语义 -- 表示各个记号的特定含义。(各个记号和记号所表示的对象之间的关系) 语用 --表示在各个记号所出现的行为中,它们的来源、使用和影响。

  9. 每种语言具有两个可识别的特性,即语言的形式和该形式相关联的意义。每种语言具有两个可识别的特性,即语言的形式和该形式相关联的意义。 语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来看,其一是该句子的创立者所想要表示的意义,另一是接收者所检验到的意义。这两个意义并非总是一样的,前者称为语言的语义,后者是其语用意义。幽默、双关语和谜语就是利用这两方面意义间的差异。

  10. 如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言。形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。形式语言理论是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法分析研究的基础。如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言。形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。形式语言理论是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法分析研究的基础。

  11. 例子:整数(1)单个数字是整数 (2)整数再接上数字仍是整数 用BNF范式表示: <1><整数>→<数字> <数字>→0|1|2|…|9 <2><整数>→<整数><数字> <整数>→<数字>|<整数><数字> 所以合起来有: <整数>→<数字>|<整数><数字> <数字>→0|1|2|…|9

  12. 标识符:以字母开头以后由字母和数字组成的符号串。标识符:以字母开头以后由字母和数字组成的符号串。 例子:<标识符>的巴科斯范式 <标识符>→<字母> <标识符>→<标识符><字母> <标识符>→<标识符><数字> <字母>→a|b|…|z <数字>→0|1|…|9

  13. 例子:判定字符串a4y是<标识符> <标识符><标识符><字母> <标识符>y <标识符><数字>y <标识符>4y <字母>4y a4y

  14. 标识符 字母 字母 数字 2、语法图 作用:直观、形象的描述语法规则。 例子:标识符的语法图表示

  15. 无符号数 无符号整数 数字 E 无符号整数 例子:无符号数的语法图表示 2.45E+12

  16. 3.2 符号和符号串 1、字母表:它是非空有穷集。 例如:∑={a,b,c}或∑={1,2,3} 2、符号:字母表中的元素称为符号。 3、符号串:符号的有穷序列,符号串也称为字。用ε来表示空符号串。 例如:a,ab,abc,dsfsd

  17. 4、长度:符号串的长度是指该串所包含的符号个数。用|x|表示符号串x的长度。4、长度:符号串的长度是指该串所包含的符号个数。用|x|表示符号串x的长度。 例如:|a|=1,|abn|=3 5、连结:设x和y为符号串,则称xy 为他们的连结。 例如:x=aa,y=bb,则xy=aabb 6、空集:不含任何元素的集合,记为。

  18. 7、乘积:设A和B是符号串集,则用AB表示A和B的乘积。7、乘积:设A和B是符号串集,则用AB表示A和B的乘积。 A={a,b},B={c,d},则AB={ac,ad,bc,bd} 8、方幂:设A为符号串集,则定义 A0={ε} A1=A An=An-1 A 例如:A={a,b} 则有: A0={ε} A1={a,b} A2={aa,ab,ba,bb}

  19. 9、正闭包:设A为符号串集,则用A+表示A的正闭包,其具体定义如下:9、正闭包:设A为符号串集,则用A+表示A的正闭包,其具体定义如下: A+=A1∪A2∪A3∪… 例如:A={a},A+={a,aa,aaa,……} 10、星闭包:设A为一集合,则定义A的星闭包为A*,其具体定义如下A*=A0∪A+ 例如:A={a},A*={ε,a,aa,aaa,……}

  20. 3.3 文法与语言的形式定义 一、引言 例子:y:=a+b*x 语法:赋值语句由变量加“:=”加表达式构成。 语义:右边表达式求值与左变量结合赋值。 用途:表达式的值的保存和计算。

  21. 例子: A={an|n≥1} A={a2n|n≥1} 其BNF表示有: 其BNF表示有: (1)A→a|aA (1)A→aa|aaA (2)A→a|Aa (2)A→aa|Aaa 形式化方法:用一整套带有严格规定的符号体系来描述问题的理论和方法。 表示文法需要一种工具,其中最常用的工具是所谓的巴克斯范式(BNF)。

  22. 例子:A={abna|n≥1} 其BNF表示有多种如下: (1)A→aBa B→b|Bb (2)A→aBa B→b|bB (3)A→aB B→ba|bB

  23. 如何来描述一种语言? 如果语言是有穷的(只含有有穷多个句子),可以将句子逐一列出来表示 如果语言是无穷的,找出语言的有穷表示。语言的有穷表示有两个途经: 生成方式 (文法):语言中的每个句子可以用严格定义的规则来构造。 识别方式(自动机):用一个过程,当输入的一任意串属于语言时,该过程经有限次计算后就会停止并回答“是”,若不属于,要麽能停止并回答“不是”,(要麽永远继续下去。)

  24. 文法即是生成方式描述语言的:语言中的每个句子可以用严格定义的规则来构造.下面给出文法的定义.进而在文法的定义的基础上,给出推导的概念,句型、句子和语言的定义.文法即是生成方式描述语言的:语言中的每个句子可以用严格定义的规则来构造.下面给出文法的定义.进而在文法的定义的基础上,给出推导的概念,句型、句子和语言的定义.

  25. 定义 文法G定义为四元组(VN,VT,P,S )其中 VN为非终结符号(或语法实体,或变量)集; VT为终结符号集; P为产生式(也称规则)的集合; VN,VT和P是非空有穷集。 S称作识别符号或开始符号,它是一个非终结符,至少要在一条产生式中作为左部出现。 VN和VT不含公共的元素,即VN ∩VT = φ 用V表示VN ∪VT,称为文法G的字母表或字汇表 规则,也称重写规则、产生式或生成式,是形如α→β或α∷=β的(α,β)有序对,其中α是字母表V的正闭包V+中的一个符号,β是V*中的一个符号。α称为规则的左部,β称作规则的右部。

  26. 文法的定义 例 文法G=(VN,VT,P,S) VN = { S }, VT ={ 0, 1 } P={ S→0S1, S→01 } S为开始符号

  27. 例 文法G=(VN,VT,P,S) VN ={标识符,字母,数字} VT ={a,b,c,…x,y,z,0,1,…,9} P={<标识符>→<字母> <标识符>→<标识符><字母> <标识符>→<标识符><数字> <字母>→a,…, <字母>→z <数字>→0,…, <数字>→9 } S=<标识符>

  28. 文法的写法 1 G:S→aAb A→ab A→aAb A→ε 2 G[S]: A→ab A→aAb A→ε S→aSb 3 G[S]: A→ab |aAb |ε S→aSb

  29. 二、文法和语言形式定义 1、规则式,产生式 例子:B→b|Bb A→a|A 2、文法G[Z]:规则的非空有穷集合。Z:识别符号,开始符号。V:字母表,符号集合。 例子:G[S]={S→0,S,1} V={S,0,1}

  30. 定义3.1文法是一个四元组G(VN,VT,P,Z)。 非终极符集记为VN(大写字母) 终极符集记为VT(小写字母) 产生式集记为P 初始符记为Z

  31. 例子:自然数G1(VN,VT,P,Z)和标识符G2 (VN,VT,P,I) VN={ N,D } VT={ 0,1,2,9} P={ N→D|ND, D→0|1|2||9 } G1:N→D|ND D→0|1|2||9

  32. 标识符G2(VN,VT,P,I) VN={ I,D,L } VT={ 0,1,2,9,a,b…z} P={ I→L|IL|ID, L→a|b|…|z D→0|1|2||9 } G2:I→L|IL|ID L→a|b|c||z D→0|1|2||9

  33. 定义3.2 1、直接推导:设x和y是符号串,若用一次产生式可从x导出y,则称y为x的直接推导,并记为xy。 例子:x=Ab,y=ab,A→a,Abab 2、推导:若用若干次产生式可从x串导出y串,则称y为x的推导,并记为 x y。 + 

  34. 例子:X=AB,A→a,B→b ABaBab 即:AB ab 3、星推导:x y(当且仅当x=y或x y)。 例子:ABAB 0步 ABaB 1步 AB ab 2步 即:AB ab * *   + + +   

  35. 4、句型:称x为句型,若有Z x,其中Z是文法的开始符。凡是由初始符推出的任意符号集合叫句型。 例子:Z→AB,A→a,Z aB 5、句子: 称x为句子,若有Z x,且x中不包含非终极符的句型。不包含非终极符的句型叫句子。 * * *   

  36. 例子:G[S]:S→0S1 S→01 解: S0S1 00S11 000111 所以有: S={01,0011,000111…} L(G)={0n1n|n≥1}

  37. L(G)={x|Z x,x∈VT*} *  6、语言:所有句子的集合称为语言。设是G给定文法,Z是开始符,则语言L(G)可描述如下: 定义3.3设G1,G2为给定文法,如果L(G1)=L(G2),则称G1和G2等价。

  38. 例1已知文法求语言并判断是否等价 G1=(VN,VT,P,A) G2=(VN,VT,P,Z) VN={A} VN={A,B} VT={a,b} VT={a,b} P={A→ab} P={A→Bb,B→a} A1ab L(G1)={ab} A2Bbab L(G2)={ab}  G1与G2是等价的。

  39. S S - A S - A c A b a 例2: G3[S]: S→A|S-A A→a|b|c G4[S]: S→A|A-S A→a|b|c 推导过程如下: SS-A S-A-A A-A-A a-b-c

  40. S a A - S b A - S c A 推导过程如下: SA-S A-A-S A-A-A a-b-c a-b-c和a-b-c  G3与G4等价,但G3与G4的语义不同。

  41. 文法的等价 若L(G1)=L(G2),则称文法G1和G2是等价的。 如文法G1[A]:A→0R 与G2[S]:S→0S1 等价 A→01 S→01 R→A1

  42. 3.4 文法的类型 定义3.4 • 0型文法(短语结构文法): 产生式为:α→β,其中α和β是符号串。 • 1型文法(上下文有关文法): 产生式为:αAβ→αuβ,其中A∈VN,u为非空串。 • 2型文法(上下文无关文法): A→β,其中A∈VN,β为非空串。

  43. 3型文法(正则文法): 产生式为:A→a,A→bB,其中A,B∈VN, #a,b∈VT是符号串。 • 例子: G[Z]:Z→a • Z→aA • A→b|bB • B→b • 所以:G[Z]是3型文法

  44. 文法的类型 例:1型(上下文有关)文法 文法G[S]: S→CD Ab→bA C→aCA Ba→aB C→bCB Bb→bB AD→aD C→ε BD→bD D→ε Aa→bD

  45. 文法的类型 例:2型(上下文无关)文法 文法G[S]: S→AB A→BS|0 B→SA|1

  46. G[S]: S→0A|1B|0 A→0A|1B|0S B→1B|1|0 G[I]: I → lT I → l T → lT T → dT T → l T → d 3型文法

  47. 1型文法 2型文法 文法的类型 四种文法之间的逐级“包含”关系 0型文法 3型文法

  48. 文法和语言 0型文法产生的语言称为0型语言 1型文法或上下文有关文法( CSG)产生的语言称为1型语言或上下文有关语言(CSL) 2型文法或上下文无关文法( CFG)产生的语言称为2型语言或上下文无关语言( CF L ) 3型文法或正则(正规)文法( RG )产生的语言称为3型语言正则(正规)语言( RL )

  49. 文法和语言 四种文法之间的关系 是将产生式做进一步限制而定义的。 语言之间的关系依次:有不是上下文有关语言的0型语言,有不是上下文无关语言的1型语言,有不是正则语言的上下文无关语言。

  50. 根据形式语言理论,文法和识别系统间有这样的关系根据形式语言理论,文法和识别系统间有这样的关系 0型文法(短语结构文法)的能力相当于图灵机,可以表征任何递归可枚举集,而且任何0型语言都是递归可枚举的 1型文法(上下文有关文法):产生式的形式为α1Aα2→α1βα2,即只有A出现在α1和α2的上下文中时,才允许β取代A。其识别系统是线性界限自动机。

More Related