资源描述:
《《文法和语言》ppt课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第三章文法和语言本章目的为语言的语法描述寻求工具,以便:对源程序给出精确无二义的语法描述。(严谨、简洁、易读)根据语言文法的特点来指导语法分析的过程从描述语言的文法可以自动构造出可用的分析程序制导语义翻译1文法和语言预备知识文法和语言的形式定义文法的类型上下文无关文法及其语法树上下文无关文法的句型分析有关文法实用中的一些说明有关文法的一些关系2预备知识-----语言概述语言是由句子组成的集合,是由一组记号所构成的集合。汉语--所有符合汉语语法的句子的全体英语--所有符合英语语法的句子的全体程序设计语言--所有该语言的
2、程序的全体每个句子构成的规律研究语言每个句子的含义每个句子和使用者的关系3预备知识-----语言概述研究程序设计语言每个程序构成的规律每个程序的含义每个程序和使用者的关系语言研究的三个方面语法Syntax语义Semantics语用Pragmatics4预备知识-----语言概述语法--表示构成语言句子的各个记号之间的组合规律语义--表示按照各种表示方法所表示的各个记号的特定含义。(各个记号和记号所表示的对象之间的关系)语用--表示在各个记号所出现的行为中,它们的来源、使用和影响。5预备知识-----语言概述每种语言具
3、有两个可识别的特性,即语言的形式和该形式相关联的意义。语言的实例若在语法上是正确的,其相关联的意义可以从两个观点来看,其一是该句子的创立者所想要表示的意义,另一是接收者所检验到的意义。这两个意义并非总是一样的,前者称为语言的语义,后者是其语用意义。幽默、双关语和谜语就是利用这两方面意义间的差异。6预备知识-----形式语言如果不考虑语义和语用,即只从语法这一侧面来看语言,这种意义下的语言称作形式语言。形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。形式语言理论
4、是对符号串集合的表示法、结构及其特性的研究。是程序设计语言语法分析研究的基础。7预备知识-----有关定义和记号符号:可以相互区别的记号(元素)。字母表:符号(元素)的非空有穷集合。符号串:由字母表中的符号组成的任何有穷序列称为该字母表上的符号串。1.空符号串ε(没有符号的符号串)是上的符号串2.若x是上的符号串,a是的元素,则xa是上的符号串3.y是上的符号串,当且仅当它可以由1和2导出。例如:Σ={a,b}ε,a,b,aa,ab,aabba…都是上的符号串8预备知识-----有关定义和记号符号串s
5、的前缀:移走符号串s尾部的零个或多于零个符号得到的符号串.如:b是符号串banana的一个前缀.符号串s的后缀:删去符号串s头部的零个或多于零个符号得到的符号串.如:nana是符号串banana的一个后缀.符号串s的子串:从s中删去一个前缀和一个后缀得到的符号串.如:ana是符号串banana的一个子串.9对于每个符号串s,s和ε两者都是符号串s的前缀,后缀和子串。符号串s的真前缀,真后缀,真子串:任何非空符号串x,相应地,是s的前缀,后缀或子串,并且sx符号串的运算符号串的长度:符号串中符号的个数.符号串s的长度
6、记为
7、s
8、。ε的长度为0连接:符号串x、y的连接,是把y的符号写在x的符号之后得到的符号串xy如x=ab,y=cd则xy=abcd有εa=aε方幂:符号串自身连接n次得到的符号串an定义为aa…aan个aa1=a,a2=aa则a0=ε10符号串集合:若集合A中所有元素都是某字母表上的符号串,则称A为字母表上的符号串集合。两个符号串集合A和B的乘积定义为AB=xy
9、xA且yB若集合A=ab,cdeB=0,1则AB=ab1,ab0,cde0,cde1使用*表示上的一切符号串(包括ε)组成的集合
10、。Σ*称为Σ的闭包。上的除ε外的所有符号串组成的集合记为+。Σ+称为Σ的正闭包。11例:Σ={a,b}Σ*={ε,a,b,aa,ab,ba,bb,aaa,aab,…}Σ+={a,b,aa,ab,ba,bb,aaa,aab,…}12语言:字母表上的一个语言是上的一些符号串的集合(上的每个语言是*的一个子集)。例如:Σ={a,b}Σ*={ε,a,b,aa,ab,ba,bb,aaa,aab,…}集合{ab,aabb,aaabbb,…,anbn,…}或{w
11、w∈Σ*且w=anbn,n≥1}为字母表上的一个语言。
12、集合{a,aa,aaa,…}或{w
13、w∈Σ*且w=an,n≥1}为字母表上的一个语言。ε是一个语言。即是一个语言。13语言上的运算设L是(上的)一个语言,M是(上的)一个语言,语言L和M的并,交,差,补是一个语言。如语言L和M的并为LM,是一个语言:{w
14、wisinLorisinM}如:L1={a,b,…y,z}M1={1,2