资源描述:
《《文法和语言 》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章文法和语言当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有有穷多个句子,则只需列出句子的有穷集就行了,但对于含有无穷句子的语言来讲,存在着如何给出它的有穷表示的问题。以自然语言为例,人们无法列出全部句子,但是人们可以给出一些规则,用这些规则来说明(或者定义)句子的组成结构,比如汉语句子可以是由主语后随谓语而成,构成谓语的是动词和直接宾语,我们采用EBNF来表示这种句子的构成规则:3.1文法的直观概念BNF范式和语法图1、巴科斯范式:EBNF<句子>→<主语><谓语><主语>→<代词
2、>
3、<名词><代词>→你
4、我
5、他<名词>→王明
6、大学生
7、工人<谓语>→<动词><宾语><动词>→是
8、学习<宾语>→<代词>
9、<名词>带<>的叫非终止符,不带<>的叫终止符。<逻辑值>→True
10、False例子:<句子><主语><谓语><代词><谓语>我<谓语>我<动词><直接宾语>我是<直接宾语>我是<名词>我是大学生“我是大学生”的构成符合上述规则,而“我大学生是”不符合上述规则,我们说它不是句子。这些规则成为我们判别句子结构合法与否的依据,换句话说,这些规则看成是一种元语言,用它描述
11、汉语。这里仅仅涉及汉语句子的结构描述。其中一种描述元语言称为文法。语言概述语言是由句子组成的集合,是由一组符号所构成的集合。汉语--所有符合汉语语法的句子的全体英语--所有符合英语语法的句子的全体程序设计语言--所有该语言的程序的全体每个句子构成的规律研究语言每个句子的含义每个句子和使用者的关系研究程序设计语言每个程序构成的规律每个程序的含义每个程序和使用者的关系语言研究的三个方面语法Syntax语义Semantics语用Pragmatics语法--表示构成语言句子的各个记号之间的组合规律语义--表示
12、各个记号的特定含义。(各个记号和记号所表示的对象之间的关系)语用--表示在各个记号所出现的行为中,它们的来源、使用和影响。每种语言具有两个可识别的特性,即语言的形式和该形式相关联的意义。语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来看,其一是该句子的创立者所想要表示的意义,另一是接收者所检验到的意义。这两个意义并非总是一样的,前者称为语言的语义,后者是其语用意义。幽默、双关语和谜语就是利用这两方面意义间的差异。如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言
13、。形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。形式语言理论是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法分析研究的基础。例子:整数(1)单个数字是整数(2)整数再接上数字仍是整数用BNF范式表示:<1><整数>→<数字><数字>→0
14、1
15、2
16、…
17、9<2><整数>→<整数><数字><整数>→<数字>
18、<整数><数字>所以合起来有:<整数>→<数字>
19、<整数><数字><数字>→0
20、1
21、2
22、…
23、9标识符:以字母开头以后由字母和数字
24、组成的符号串。例子:<标识符>的巴科斯范式<标识符>→<字母><标识符>→<标识符><字母><标识符>→<标识符><数字><字母>→a
25、b
26、…
27、z<数字>→0
28、1
29、…
30、9例子:判定字符串a4y是<标识符><标识符><标识符><字母><标识符>y<标识符><数字>y<标识符>4y<字母>4ya4y2、语法图作用:直观、形象的描述语法规则。例子:标识符的语法图表示标识符字母字母数字例子:无符号数的语法图表示2.45E+12无符号数无符号整数数字E无符号整数3.2符号和符号串1、字母表:它是非空
31、有穷集。例如:∑={a,b,c}或∑={1,2,3}2、符号:字母表中的元素称为符号。3、符号串:符号的有穷序列,符号串也称为字。用ε来表示空符号串。例如:a,ab,abc,dsfsd4、长度:符号串的长度是指该串所包含的符号个数。用
32、x
33、表示符号串x的长度。例如:
34、a
35、=1,
36、abn
37、=35、连结:设x和y为符号串,则称xy为他们的连结。例如:x=aa,y=bb,则xy=aabb6、空集:不含任何元素的集合,记为。7、乘积:设A和B是符号串集,则用AB表示A和B的乘积。A={a,b},B={c,d
38、},则AB={ac,ad,bc,bd}8、方幂:设A为符号串集,则定义A0={ε}A1=AAn=An-1A例如:A={a,b}则有:A0={ε}A1={a,b}A2={aa,ab,ba,bb}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