文法和语法(lly).ppt
《文法和语法(lly).ppt》由会员分享,可在线阅读,更多相关《文法和语法(lly).ppt(45页珍藏版)》请在三一办公上搜索。
1、第3章文法和语言,考查重点基本概念:文法;推导/归约;句型;句子;语言;文法的二义性;文法递归;语法树;短语;直接短语;句柄;正规文法;上下文无关文法。基本方法构造句型的推导/归约,规范推导/规范归约画出指定句型的语法树判别文法的二义性给出句型的短语、直接短语、句柄。文法与语言的互求(较简单),1、语言,语言是由句子组成的集合,是由一组记号所构成的集合。汉语-所有符合汉语语法的句子的全体英语-所有符合英语语法的句子的全体程序设计语言-所有该语言的程序的全体研究语言:每个句子构成的规律每个句子的含义每个句子和使用者的关系,3.1 语言与文法的直观概念,研究程序设计语言及研究的三个方面:每个程序构
2、成的规律(语法 Syntax)每个程序的含义(语义 Semantics)每个程序和使用者的关系(语用 Pragmatics)语言三个方面定义:语法-表示构成语言句子的各个记号之间的组合规律语义-表示按照各种表示方法所表示的各个记号的特定含义。(各个记号和记号所表示的对象之间的关系)语用-表示在各个记号所出现的行为中,它们的来源、使用和影响。,以自然语言为例(用 EBNF 描述一种语言:),补讲:终端符与非终端符思考:“我是大学生”是否是该语言的句子?,句子:=主语谓语主语:=代词|名词代词:=你|我|他名词:=王明|大学生|工人|英语谓语:=动词直接宾语动词:=是|学习直接宾语:=代词|名词,
3、2、文法,文法:仅仅涉及语言句子的结构描述。,句子 主语谓语 代词谓语 我谓语 我动词直接宾语 我是直接宾语 我是名词 我是大学生思考:“”的含义?“我大学生是”与“大学生是王明”是句子?,句子:=主语谓语主语:=代词|名词代词:=你|我|他名词:=王明|大学生|工人|英语谓语:=动词直接宾语动词:=是|学习直接宾语:=代词|名词,语法规则(文法),3、程序设计语言与文法关系:一个程序设计语言是一个记号系统,如自然语言一样,由语句组成,完整的定义应包含语法与语义两个方面。语法规定了语句形成的规则,(哪些符号序列是合法的,而与其含义无关);语义不仅要限定语法规则(静态),而且要表明程序要做什么(
4、动态)。文法是阐述语法规则的工具,是形式语言理论基础。为语言的语法描述寻求工具工具要对程序设计语言给出精确无二义的语法描述。(严谨、简洁、易读)形式工具-形式语言抽象地定义为一个数学系统。“形式”是指这样的事实:语言的所有规则只以什麽符号串能出现的方式来陈述。,字母表:元素的非空有穷集合。(符号集)符号:字母表中的元素。,例如:汉语的字母表中包括汉字、数字及标点符号等。C语言字母表是由字母、数字、若干专用符号及保留字组成。,3.2 符号和符号串,1、符号,例如:=0,1,0,1,00,01,11,1001110等都是上的符号串.,注意:符号串中的符号排列是有顺序的.可以用字母表示符号串,如 x
5、=aaca,1)符号串:由字母表中的符号组成的任何有穷序列称为该字母表上的符号串。空符号串(没有符号的符号串)是上的符号串 若x是上符号串,a是的元素,则xa和ax是上符号串 y是上的符号串,当且仅当它可以由1和2导出。,2、符号串,2)串的头与尾如果 z=xy 是一符号串,那么:x 是 z 的头,y 是 z 的尾;如果 x 非空,那么 y 是固有尾;如果 y 非空,那么 x 是固有头。,例:设 z=abc,那么z 的头是:,a,ab,abc(固有头呢?)z 的尾是:,c,bc,abc(固有尾呢?),3)串的几种表示法(x,z是符号串,t是符号):z=xx 是符号串 z 的头z=xx 在符号串
6、z 中某处出现z=t符号 t 是 符号串 z 的第一个符号,3、符号串的运算1)符号串的长度:符号串中符号的个数.符号串s的长度记为|s|。的长度为02)连接:符号串x、y的连接,是把y的符号写在x的符号之后得到的符号串xy例:x=ST,y=abu 则 xy=STabu|x|=2,|y|=3,|xy|=5 x=x=x3)方幂:符号串x自身连接n次得到的符号串 xxxx(n个x)定义为 x n x0=,x1=x,x2=xx,x3=xxx x=AB,则 x0=,x1=AB,x2=ABAB,x3=ABABAB对于 n0,x n=xxn-1=xn-1x 4)符号串集合:若集合A中一切元素都是某字母表上
7、的符号串,则称A为字母表上的符号串集合。,*=0 1 2 n+=1 2 n*=0+=*=*+=*-,例:设=a,b,则*=,a,b,aa,ab,ba,bb,aaa,aab,+=a,b,aa,ab,ba,bb,aaa,aab,5)两个符号串集合A和B的乘积定义为AB=xy|xA且yB 若 集合A=a,b B=c,d 则 AB=ac,ad,bc,bd A=A=A(x=x=x)6)使用*表示上的所有有穷长的串(包括)的集合。*称为的闭包。7)从*中除去得到的集合记为+。+称为的正闭包。,1、规则(重写规则、产生式或生成式):是形如或=的(,)有序对,其中是某字母表V的正闭包V+中的一个符号,是V*中
8、的一个符号。(V+,V*why?)称为规则的左部(或生成式的左部)。称为规则的右部(或生成式的右部)。例:句子:=主语谓语主语:=代词|名词代词:=你|我|他,3.3 文法和语言的形式定义,2、文法G定义为四元组(VN,VT,P,S)元素说明:VN:非终结符集VT:终结符集P:产生式(规则)集合S:开始符号(识别符号)VN、VT 和 P 是非空有穷集。S 至少在一条规则中作为左部出现。VNVT=,SVNV=VNVT,称为文法G的字母表(字汇表),例3.1 文法G=(VN,VT,P,S)VN=S,VT=0,1 P=S0S1,S01 S为开始符号,例3.2 文法G=(VN,VT,P,S)VN=标识
9、符,字母,数字VT=a,b,c,x,y,z,0,1,9P=a,z 0,9 S=思考:C语言的标识符(变量命名)如何用文法定义?,文法习惯上只将产生式写出。并有如下约定:第一条产生式的左部是开始符号用尖括号括起的是非终结符,否则为终结符。或者大写字母表示非终结符,小写字母表示终结符G可写成GS,其中S是开始符号,例3.1 文法G=(VN,VT,P,S)VN=S,VT=0,1 P=S0S1,S01 S为开始符号,可写成:G:S0S1 S01,或写成:GS:S0S1 S01,3、推导的定义,直接推导“”是文法G产生式,,V*,若v,w满足:v=,w=,则说:v(应用规则)直接产生w或说:w是v的直接
10、推导 或说:w直接归约到v记作 v w例:G:S0S1,S01 的直接推导:0S10011(v=0S1,w=0011,使用规则S01,=0,=1)S 0S1(v=S,w=0S1,使用规则S0S1,=,=)0S100S11(v=0S1,w=00S11,使用规则?),例 文法G=(VN,VT,P,S)VN=标识符,字母,数字VT=a,b,c,x,y,z,0,1,9P=a,z 0,9 S=,思考:指出下面直接推导所使用的规则?abc abc5,例:G:S0S1,S010S1 00S11 000S111 00001111 即 0S1 00001111也记作 0S1 00001111思考:的区别?,若存
11、在v=w0 w1.wn=w,(n0)则称v推导出(产生)w(推导长度为n),或称w归约到v.记作 v w若有v w,或v=w,则记为v w,+,+,*,+,*,4、文法的句型、句子的定义,句型:设GS是一文法,如果符号串x是从识别符号推导出来的,即S x,则称x是文法GS的句型。句子:x仅由终结符号组成(即S x,且xVT*),则称x是GS的句子。例:G:S0S1,S01S 0S1 00S11 000S11100001111,*,*,思考:文法的句型与句子的关系?文法G能得到哪些句子?,5、语言的定义:由文法G生成的语言记为L(G),它是文法G的一切句子的集合:即L(G)=x|S x,其中S为
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文法 语法 lly
链接地址:https://www.31ppt.com/p-6579437.html