编译原理文法和语言

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如字母表∑={a,b},则a,b是字母表∑中的元素,a,b,aa,ab,…都是符号串。 空符号串:不含任何符号的符号串,用ε表示。
2.1 文法和语言的定义
字符串连接、字符串长度
定义2.4 符号串x和y的连接:指x和y的符号按先后顺序排列 在一起组成的新的符号串,用xy表示。
例:若∑={a,b}, x=ab, y=ba, 则xy=abba, yx=baab。 注意:(1)xy≠yx;
VVVNN=,VV∪NT,∪VPT三=VФ个T表集VVP示=NT合==文{均{{N法0为NG,}非10的;}N空字;,有N母穷表集1或N合词,N汇表0, N1};
S=N。
2.1 文法和语言的定义
文法
文法产生式的其它表示法:
规则1:{a}表示a的0次或多次重复出现,即{a}表示ε或a或aa或aaa或 a…a;{a}mn 表示a的m到n次出现。
(2)εx=xε=x。
定义2.5 符号串的长度:指符号串中符号的个数。
例:|ab|=2, |aabb|=4, |ε|=0。
2.1 文法和语言的定义
前缀、后缀、乘积
定义2.6 符号串的前缀和后缀:分别指符号串的左部和右部任意字 符串。 例:ab的前缀有ε、a、ab;后缀有ε、b、ab。
定义2.7 符号串集合的乘积:设A、B是字母表∑上的符号串集合,则 定义A与B的乘积:AB={xy|x∈A,y∈B}。
文法
什么是文法
文法是定义或描述语法结构的一组形式规则,是规则的非空有穷集合 规则又称为重写规则,产生式或生成式,每个产生式为αβ或 α::=β,
α是某字母表A的正闭包A+的一个符号称为规则的左部; β是A*中的一 个符号,称为规则的右部。 α与β的区别?
2.1 文法和语言的定义
文法
什么是文法
=> He gave me <冠词> <名词>
=> He gave me a <名词>
=> He gave me a book
2.1 文法和语言的定义
文法
int i = 0; i = i + 1; <程序>{<句子>}+ <句子><声明语句>|<赋值语句>|…… <声明语句><数据类型> {<变量>[=<常量>]}+ <赋值语句><变量>=<表达式> <变量>(a|…|z|A|…|Z|_)(a|…|z|A|…|Z|_|0|…|9) <数据类型>int|char|… …… 文法包含的要素: 终极字符集:如int i 非终极字符集:如<程序>、<句子> 产生式:如<程序>{<句子>}+ 开始符号:<程序>
例句文例:法H句e是:ga定vHe义me或egaa描bvoe述okm语. e法a结bo构o一k.组形式规则,是规则的非空又穷集合
英<<<句主谓语规 , 的根<子语语中句则一>>>α据的是又个子上基某称符><<<本述字为号主代动==语母语重,语词词>>法表写称>>>法<<规|A<代规为主<规的则谓名则 规词语正则:语词, 则>闭>>对>产 的包<<<例生 右间谓谓A式 部句+接语的语或 。宾进一>>生语行个<<成>符间间分式<号接直接析,称接宾每,宾为宾个语可语规语产>推>则>生<的<出式直直左该为接部接α例;宾宾句ββ语或语是。>>αA::*=中β
2.1 文法和语言的定义
文法
定义2.10 文法是一个四元组:G[S]=(VN,VT,P,S), 其中: VN:非终极符集合(变量集); VT:终极符集合; P:产生式集合,每个产生式为αβ或 α::=β,设V=VN∪VT,则
α∈V*VNV*, β ∈V*; S:开始符号。
注意例:2.1 G=({N}, {0,1},{N0N,N1N,N0, N1}, N),其中:
<<<间直代α接接词与宾宾>β的语语区>>H别e==|?m>><<e代冠HH词词ee <<>>谓 动<名语词词>>><<间间接接宾宾语语>>
<直接宾语> <直接宾语>
<名词> bo=ok> He gave <间接宾语> <直接宾语>
<动词> gav=e> He gave <代词> <直接宾语> <冠词> a|=an>|thHe e gave me <直接宾语>
定义2.9 符号串集合A的方幂:A0={ε}, A1=A, A2=AA, …, An=A…A(n个A)
A的正闭包:A+=A1∪A2∪… A的闭包:A*=A0∪A1∪A2∪… 显然:A*= A0∪A+, A+=AA* 问题:A = {0,1}, 则A+表示的集合意义?
2.1 文法和语言的定义
规则2:[a]={a}01 规则3:AxW1y|xW2y|…|xWny可表示成Ax(W1|W2|…|Wn)y
2.1 文法和语言的定义
文法
定义2.11 符号串的推导与归约:已给文法G={VN, VT, P, S}, V=VN∪VT,令x,y,α,β ∈V*,且αβ∈P,则xαy能直接推导出xβy ,或者xβy 直接规约到xαy ,记作xαyxβy。 “”读作直接推导
例2.1 G=({ N }, { 0,1 },{ N0N, N1N, N0, N1 }, N)中,存 在如下推导: N0 N1 N0N00 N0N01 N1N11N111
Βιβλιοθήκη Baidu
2.1 文法和语言的定义
文法
导若出αα1n,,α或2, ααn3,规…约αn到∈αV1*,, 且记有作直α1接+推αn导的序列α1α2, α2α3, …, αn-1αn, 则称α1可推 若α1+αn, 或α1=αn,则记为α1* αn 归约是推导的逆过程,若存在α1*αn,则认为αn能归约为α1
例:设∑={a,b,c,d},令A={aa,bb},B={cc,dd}, 则 AB={aacc, aadd, bbcc,bbdd}, BA={ccaa,ccbb,ddaa,ddbb}。显然AB≠BA
定义空集合:Φ={ε},有{ε}A=A{ε}=A。
2.1 文法和语言的定义
方幂、正闭包、闭包
定义2.8 符号串的方幂:设x是符号串,则:x0=ε, x1=x, x2=xx, …, xn=x…x(n个)
2.1 文法和语言的定义
字母表,符号,符号串
例句:int i = 0; 包含字母i, n, t, =, 0, ; , 所有字母形成字母表; 符号串,如int
定义2.1 字母表:字母表∑是符号元素的非空有限集合。 定义2.2 符号(字符):字母表中的元素。 定义2.3 符号串(字符串):字母表中的符号所组成的任何有穷序列。
相关文档
最新文档