编译原理文法和语言

合集下载

编译原理清华大学第3章 文法和语言

编译原理清华大学第3章 文法和语言
<句子> => <主语><谓语> => the <形容词><名词><谓语> => the big <名词> <谓语> => the big elephant <谓语>
<主语>::=<冠词><形容词><名词> <冠词> ::=the <形容词>::=big <谓语>::=<动词><宾语> <动词>::=ate <宾语>::=<冠词><名词>
“我是大学生”。是汉语的一个句子 用语法来描述:
〈句子〉∷=〈主语〉〈谓语〉 〈主语〉∷=〈代词〉|〈名词〉 〈代词〉∷=我|你|他 〈名词〉∷=王明|大学生|工人|英语 〈谓语〉∷=〈动词〉〈直接宾语〉 〈动词〉∷=是|学习 〈直接宾语〉∷=〈代词〉|〈名词〉
有了一组规则以后,按照如下方式用它们导出句子:开始去找∷= 左端的带有〈句子〉的规则并把它由∷=右端的符号串代替,这个动作表 示成: 〈句子〉 〈主语〉〈谓语〉,然后在得到的串〈主语〉〈谓 语〉中,选取〈主语〉或〈谓语〉,再用相应规则的∷=右端代替之。比 如,选取了〈主语〉,并采用规则〈主语〉∷=〈代词〉, 那么得到:〈主语〉〈谓语〉 〈代词〉〈谓语〉, 重复做下去, 句子:“我是大学生”的全部动作过程是: 〈句子〉 〈主语〉〈谓语〉 〈代词〉〈谓语〉 我〈谓语〉 我〈动词〉〈直接宾语〉 我是〈直接宾语〉 我是〈名词〉 我是大学生 “我是大学生”的构成符合上述规则,而“我大学生是”不符合上 述规则,我们说它不是句子。这些规则成为我们判别句子结构合法与否 的依据,换句话说,这些规则看成是一种元语言,用它描述汉语。这里 仅仅涉及汉语句子的结构描述。其中一种描述元语言称为文法。

第2章 文法和语言的基本知识

第2章  文法和语言的基本知识

例如, ∑′={0,1}是一个字母表,由0 和1两个元素组成。 不同的语言有不同的字母表,如英文的字 母表是26个字母、数字和标点符号的集合,C语 言的字母表是由字母、数字和若干专用符号组 成。 2. 符号(字符) 字母表中的元素称为符号,或称为字符。 例如,前述例子中,a,b,c是字母中∑ 中的符号;0和1是字母表∑′中的符号。
例如:用A表示∑ + ,用式子A→0表示符号串 0∈A或A生成符号串0,符号“→”读做“生成”或 “由……组成”。则集合A可表示成 A→0 A→1 A→A0 A→A1 显然,由A生成的符号串属于∑+,这就是用文 法描述语言。
编译原理授课教案
2.2.2 文法的形式定义
1. 规则 规则也称产生式,它是一个符号与一个符号 串的有序对(A,β),通常写做 A→β(或A::=β) 其中,A是规则左部,它是一个符号;β是 规则右部,它是一个符号串;“→”和“::=”表 示“定义为”或”生成”,意思是左部符号用右 部的符号串定义或左部符号生成右部是集合, 而{ε}表示由空符号串ε所组成的集合,但 这样的集合不是集合φ={}。 3. 符号串的幂运算 设x是符号串,则x的幂运算定义为 x0=ε X1= x x2 = xx ………… xn = xxxx……xx=xxn-1 ( n > 0)
编译原理授课教案
编译原理授课教案
试设计一个表示所有标识符的文法。 例2.2 :
分析 题意是用文法定义标识符,必须确 定P中规则。为了设计出一组规则,首先应搞清 楚集合中符号串的结构特征。标识符的定义是 字母或以字母开头的字母数字串,结构如图:
字母 字母或数字串
用I代表标识符,L代表字母,D代表数字, 则定义标识符的方法为 G = (VN ,VT, P , S)

编译原理第3章文法和语言

编译原理第3章文法和语言

第3章文法和语言第1题文法G=({A,B,S},{a,b,c},P,S)其中P为:S→Ac|aBA→abB→bc写出L(G[S])的全部元素。

答案:L(G[S])={abc}第2题文法G[N]为:N→D|NDD→0|1|2|3|4|5|6|7|8|9G[N]的语言是什么?答案:G[N]的语言是V+。

V={0,1,2,3,4,5,6,7,8,9}N=>ND=>NDD....=>NDDDD...D=>D......D或者:允许0开头的非负整数?第3题为只包含数字、加号和减号的表达式,例如9-2+5,3-1,7等构造一个文法。

答案:G[S]:S->S+D|S-D|DD->0|1|2|3|4|5|6|7|8|9第4题已知文法G[Z]:Z→aZb|ab写出L(G[Z])的全部元素。

答案:Z=>aZb=>aaZbb=>aaa..Z...bbb=>aaa..ab...bbbL(G[Z])={anbn|n>=1}第5题写一文法,使其语言是偶正整数的集合。

要求:(1)允许0打头;(2)不允许0打头。

答案:(1)允许0开头的偶正整数集合的文法E→NT|DT→NT|DN→D|1|3|5|7|9D→0|2|4|6|8(2)不允许0开头的偶正整数集合的文法E→NT|DT→FT|GN→D|1|3|5|7|9D→2|4|6|8F→N|0G→D|0第6题已知文法G:<表达式>::=<项>|<表达式>+<项> <项>::=<因子>|<项>*<因子><因子>::=(<表达式>)|i试给出下述表达式的推导及语法树。

(5)i+(i+i)(6)i+i*i答案:(5)<表达式>=><表达式>+<项>=><表达式>+<因子>=><表达式>+(<表达式>)=><表达式>+(<表达式>+<项>)=><表达式>+(<表达式>+<因子>)=><表达式>+(<表达式>+i)=><表达式>+(<项>+i)=><表达式>+(<因子>+i)=><表达式>+(i+i)=><项>+(i+i)=><因子>+(i+i)=>i+(i+i)(6)<表达式>=><表达式>+<项>=><表达式>+<项>*<因子>=><表达式>+<项>*i=><表达式>+<因子>*i=><表达式>+i*i=><项>+i*i=><因子>+i*i=>i+i*i<表达式><表达式>+<项><因子><表达式><表达式>+<项><因子>i<项><因子>i<项><因子>i()<表达式><表达式>+<项><项>*<因子><因子>i<项><因子>ii第7题证明下述文法G[〈表达式〉]是二义的。

编译原理 文法和语言

编译原理 文法和语言

文法与语言的对应关系
文法描述语言的语 法
文法的主要作用是描述语言的 语法结构,即规定什么样的句 子是合法的。因此,文法与语 言之间存在一种对应关系,即 文法规则定义了语言的语法规 则。
语言反映文法的特 性
语言作为文法规则的体现,反 映了文法的一些特性。例如, 语言的简洁性、一致性、无歧 义性等特性都与文法的制定密 切相关。
编译原理与文Biblioteka 和语言的关系编译原理利用文法和语言的 概念来描述程序设计语言的 语法和语义,从而实现对程
序的正确翻译。
文法和语言提供了编译器设 计的理论基础,使得编译器 能够按照预定的规则对程序 进行词法分析、语法分析和
语义分析等处理。
编译原理的发展推动了文法 和语言理论的深入研究,同 时也促进了程序设计语言的 发展和进步。
程序设计语言和自然语言
程序设计语言是一种用于编写计算机程序的语言,具有严格的语法和语义 规则;自然语言是人类日常交流所使用的语言,具有灵活性和歧义性。
静态语言和动态语言
静态语言在编译时检查类型错误,如C、C等;动态语言在 运行时检查类型错误,如Python、JavaScript等。
语言的表示方法
01
语言的上下文相关性
语言中的句子往往具有上下文相关性,即句子的含义和合 法性可能依赖于其所在的上下文环境。这就要求文法在描 述语言时,需要考虑到这种上下文相关性。
语言的歧义性
有些语言存在歧义现象,即同一句子可能有多种不同的解 释。这就要求文法在描述语言时,需要具有足够的精确性 和明确性,以避免产生歧义。
产生式规则中左部是非终结符,右部是终 结符和非终结符的序列,且右部中至多有 一个非终结符。
文法的表示方法
巴科斯-诺尔范式(BNF)

编译原理(清华)第三章文法和语言

编译原理(清华)第三章文法和语言

例 文法G: S→0S1,S→01 有直接推导: 0S1 00S11 ( S→0S1 ) 00S11 000S111 ( S→0S1 ) 000S111 00001111 ( S→01 ) S 0S1 ( S→0S1 )
推导和归约 若存在v=w0 w1 ... wn=w ,(n>0) 则称v推导出w,或w归约到v,记为v=+>w 若有v =+>w,或v=w,则记作v=*>w
2. 符号串 – 定义:由字母表中的符号组成的任何有穷序列 – 例: 0,00,10是字母表∑={0‚1}上的符号串 a,ab,aaca是Α={a‚b,c}上的符号串 – 在符号串中,符号是有顺序的,顺序不同,代 表不同的符号串,如:ab和ba不同 – 不含任何符号的符号串称为空串,用ε表示 注意:{ε}并不等于空集合{ } – 符号串长度: 符号串中含有符号的个数 如: |abc|=3 | ε|=0
3.3 文法和语言的形式定义
1.文法的定义 2.文法的简化表示法 3.推导与归约 4.句型、句子、语言的定义 5.文法的等价
1.文法的定义
产生式(规则) 产生式是一个有序对(α,β),通常写作 α→β(或α::=β ) 文法定义: 文法G(Grammar)定义为四元组(VN,VT,P,S) VN (Nonternimal):非终结符集 VT (Terminal):终结符集 P (Production): 产生式(规则)集合 S: 开始符号或识别符号
第三章
文法和语言
学习目标: 掌握:自上而下与自下而上的分析方法 理解:文法的形式定义,推导,归约,句 型,句子,语言,上下文无关文法,规范 句型,语法树,短语,直接短语,句柄 了解:文法的类型,文法使用中的限制, 文法的二义性

编译原理第二章 文法和语言

编译原理第二章  文法和语言

第一节 文法的直观概念
当我们表述一种语言时,无非是说明这种语言的句子,如果语言只含有有穷多个句子,则只需 列出句子的有穷集就行了,但对于有无穷句子的语言来讲,存在着如何给出它的有穷表示的问题。 以自然语言为例, 人们无法列出全部句子, 但是人们可以给出一些规则, 用这些规则来说明 (或 者定义)句子的组成结构,比如: “我是大学生” 。是汉语的一个句子。汉语句子可以是由主语后随 谓语而成,构成谓语的是动词和直接宾语,我们采用 EBNF 来表示这种句子的构成规则: 〈句子〉∷=〈主语〉 〈谓语〉 〈主语〉∷=〈代词〉|〈名词〉 〈代词〉∷=我|你|他 〈名词〉∷=王明|大学生|工人|英语 〈谓语〉∷=〈动词〉 〈直接宾语〉 〈动词〉∷=是|学习 〈直接宾语〉∷=〈代词〉|〈名词〉 “我是大学生”的构成符合上述规则,而“我大学生是”不符合上述规则,我们说它不是句子。 这些规则成为我们判别句子结构合法与否的依据。 一旦有了一组规则以后,我们可以按照如下方式用它们去推导或产生句子。我们开始去找∷= 左端的带有〈句子〉的规则并把它表示成∷=右端的符号串,这个动作表示成: 〈句子〉 〈主语〉 〈谓语〉 ,然后在得到的串〈主语〉 〈谓语〉中,选取〈主语〉或〈谓语〉 ,再用相应的规则∷=右端 代替之。比如,选取了〈主语〉,并采用规则〈主语〉∷=〈代词〉 ,那么得到: 〈主语〉 〈谓语〉〈代 词〉 〈谓语〉 ,重复做下去,我们得到句子: “我是大学生”的全部动作过程是: 〈句子〉 〈主语〉 〈谓语〉 〈谓语〉 〈代词〉 我〈谓语〉 〈直接宾语〉 我〈动词〉 我是〈直接宾语〉 我是〈名词〉 我是大学生 符号 的含义是,使用一条规则,代替 左边的某个符号,产生 右端的符号串。 显然,按照上述办法,不仅生成“我是大学生”这样的句子,还可以生成“王明是大学生” , “王 明学习英语” , “我学习英语” , “他学习英语” , “你是工人” , “你学习王明”等几十个句子。事实上, 使用文法作为工具,不仅为了严格地定义句子的结构,也是为了用适当条数的规则把语言的全部句 子描述出来,是以有穷的集合刻划无穷的集合的工具。

编译原理(第二版)第3章 文法和语法

编译原理(第二版)第3章 文法和语法

〈动词〉::= 是 | 学习
〈直接宾语〉::=〈代词〉|〈名词〉
“我是大学生”是否是该语言的句子?
〈句子〉::=〈主语〉〈谓语〉 〈主语〉::=〈代词〉|〈名词〉 〈代词〉::= 你 | 我 | 他 〈名词〉::= 王明 | 大学生 | 工人 | 英语 〈谓语〉::=〈动词〉〈直接宾语〉 〈动词〉::= 是 | 学习 〈直接宾语〉::=〈代词〉|〈名词〉 〈句子〉
}的文法。
分析:n≧1,所以必须用递归规则。a和b的 个数 一样多,但c的个数不同,所以将生成 含 a,b的部分与生成含e的部分分开,A生成 ab,B生成e. G[Z]:Z→AB
A→aAb|ab
B→eB|ε
4)文法的等价
• 若L(G1)=L(G2),则称文法G1和G2是等价的。
如文法G1[A]:A→0R 与 G2[S]:S→0S1 等价
设 z = abc, 那么 z 的头是: ε ,a ,ab , abc(除 abc 外都是固有头) z 的尾是: ε ,c ,bc , abc(除 abc 外都是固有尾)
4、符号串的运算
符号串的长度:符号串中符号的个数.符号串s的长度 记为|s|。 ε的长度为0 符号串的连接:符号串x、y的连接,是把y的符号写在 x的符号之后得到的符号串xy 例 x=ST,y=abu 则 xy=STabu
|x|=2,|y|=3,|xy|=5
εx = xε= x
方幂:符号串x自身连接n次得到的符号串 xx…xx(n个x)定义为 xn x0=ε , x1=x, x2=xx, x3=xxx x=AB, 则 x0=ε , x1=AB, x2=ABAB, x3=ABABAB 对于 n>0, xn = xxn-1 = xn-1x
例如: 汉语的字母表中包括汉字、数字及标点符号等。 C语言的字母表是由字母、数字、若干专用符号及IF、 FOR之类的保留字组成。

编译原理文法和语言与语法分析培训课件

编译原理文法和语言与语法分析培训课件
通常使用巴科斯
语法分析的基本概念
1 什么是语法分析
语法分析是编译器将语句转换为分解单元(tokens)序列的过程。
2 语法分析的目标
语法分析的目标是确定语句的语法是否正确。
3 语法分析和词法分析之间的关系
词法分析器检测和返回令牌,语法分析器使用这些令牌构造语法树。
结束语
编程是一项伟大的技能
编译原理是编程中最重要的领域之一,帮助程序员 编写更高效,更健壮的代码。
让我们开始
我们希望这个课程能够帮助你深入了解这个领域, 并成为一个更好的程序员。
编译器的工作原理
编译过程
编译器将源代码转换为汇编指令,然后生成可执行 文件。
词法分析
将程序分成单词或令牌,并标记其类型。
语法分析
确认程序是否遵循语言的语法规则。
语义分析
分析程序的含义,看看它是否真正意味着什么。
文法和语言
什么是文法
文法是一种描述语言结构的公式。
什么是语言
语言是文法的实例。
如何表示文法
常见的语法分析算法
1
递归下降算法
自顶向下的递归分裂语句,直到基本令牌。
2
预测分析算法
使用预测表达式的机器状态机来实现语法分析。
3
LR算法
基于LR分析器对源代码进行分析。
实例和案例分析
实例
讲解如何编译一个简单的程序,分析其中的一些语 法和算法。
案例分析
分析编译器的一些案例,如gcc和llvm,比较它们的 区别和优缺点。
编译原理文法和语言与语 法分析培训课件
欢迎来到编译原理文法和语言与语法分析培训课件!我们将探索编译器中各 种概念,算法和工作原理。
什么是编译原理
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(VN ∪ VT)*,则G是0型文法。
设G=(VN,VT,P,S),如果它的每一个产生式 满足: | |≥| |,仅仅S 除外,则文法G是1 型文法。
1型文法又称为上下文有关文法,它的每一个产生 式也可描述为: 1A2 12,其中12 都在 (VN∪VT)*中, A在VN中。只有A出现在12的上下文 中,才允许用取代A。
其中 VN={S},VT ={0,1}, P={S → 0S1,S → 01}。 非终结符集中只含一个元素S; 终结符集由两个元素0和1组成; 有两条产生式;开始符号是S。 想:从终结符可推出哪些符号串?
答案:S={01,0011,000111,00001111…}
例2 文法G =(VN ,VT,P,S) 其中 VN ={标识符,字母,数字}
“你是大学生” 对 “我是教师”对
“我大学生是”错
“我学习大学生”
〈句子〉∷=〈主语〉〈谓语〉 〈主语〉 ∷ =〈代词〉|〈名词〉 〈代词〉 ∷ = 我|你|他 〈名词〉 ∷ = 王明|大学生|教师|英语 〈谓语〉 ∷ =〈动词〉〈直接宾语〉 〈动词〉 ∷ = 是|学习 〈直接宾语〉 ∷ =〈代词〉| <名词>
W 是否V的直接推导
例3: 在例1中
V=0S1,W=0011 V是否W的直接推导 直接推导:0S1 0011 V=S,W=0S1 V是否W的直接推导 直接推导:S 0S1
使用规则:S →01
=0,=1, =S, =01
规则: S → 0S1 = , =
=S, =0S1
文法的概念 推导: 我是教师
〈句子〉 〈主语〉〈谓语〉
〈代词〉〈谓语〉 我〈谓语〉
我〈动词〉〈直接宾语〉 我是Hale Waihona Puke 名词〉 我是教师符号和符号串
• C、PASCAL等程序设计语言是由所有C、PASCAL 程序组成的集合; • 程序是由一些基本符号组成的;
• 从字面上看,每个程序都是一个基本符号串;
其中: VN —— 非终结符号集 VT —— 终结符号集
P —— 产生式(规则)
S —— 开始符号或称作识别符号,它是一个 非终结符,至少要在一条规则中作为左部出现。 规定:(1)VN ,VT,P是有穷非空集合; (2)VN∩VT= (不含公共元素)
例1 文法G =(VN ,VT ,P,S),
例子: 在例1中存在序列:
V=0S1 00S11 000S111 00001111 =W

记作: 0S1 00001111
0S1 00001111
* 一样的
4、句型的定义: 设G[S]是文法,如果符号串x是从识别符号 * (开始符号)推导出来的(即S x)则称x是文法 G[S]的句型。
• 设有一个基本符号集, C、PASCAL等程序设计 语言可看成是在这个基本符号集上定义的,按 一定规则构成的一切基本符号串组成的集合。
符号和符号串
先讨论一些有关概念:
1、字母表—符号集:是字母的有穷非空集合。 汉语字母表包括: 汉字、数字、标点符号等 Pascal语言字母表包括: 字母、数字、若干专用符号以及Begin、if等保留 字。
S → 01
<3> 文法G的第三种表示法:
上例1改为: G[S]:
S → 0S1
S → 01
一般约定,第一条产生式的左部是识别符号;用 尖括号括起来的是非终结符号,不用尖括号括起 来的是终结符号,或者用大写字母表示非终结符 号,小写字母表示终结符号。
3、直接推导的定义
<1> → 是文法G=(VN ,VT ,P,S)的规则,
规则: S → 0S1 =0 , = 1
V=0S1,W=00S11
V是否W的直接推导
=S, =0S1
直接推导: 0S100S11
(2)若存在直接推导的序列: V=W0 W1 W2 … Wn =W (n>0)
则 称V推导W
+
(或W规约到V) ,记V W
*
+
(3)若有 VW ,或 V = W ,则记作 V W
*
5、语言的定义: L(G)表示
文法G产生的语言定义为: 集合 {xSx, S为文法开始符号, xVT* } 该集合为语言,用L(G)表示。 从定义可知: x是句型且x是文法G的句子。 想: 例1的语言表示为什么?
因为S0S100S11 … 0n1n
答案:L(G)={0n1n n1}
和是V*中的任意符号,若有符号串V,W满足:
V= ,W=
则说 V是直接产生W
或 W是V的直接推导 记作 V W
或 W直接规约到V
例3: 在例1中
V=0S1,W=0011 W 是否V的直接推导
G: S → 0S1 S → 01
V=S,W=0S1 W 是否V的直接推导 V=0S1,W=00S11
n-1=
x
n-1· x
(5)符号串的集合:
若集合A中的一切元素都是某字母表上的符号 串,则称A为该字母表上的符号串集合。 两个符号串集合A、B乘积定义: AB={xy| x∈A且y∈b}
例:A={a,b},B={c,d}
则AB=
{ac,ad,bc,bd}
• (6)闭包(∑*) • 字母表∑,用∑* 表示∑上所有有穷长的 串集合,∑*称为∑的闭包。 • 例:字母表∑={0,1} • 则∑*= {ε,0,1,00,01,10,11,000,001,010……} =∑0∪∑1 ∪ ∑2∪. …∪∑n
• 文法的形式化定义 • 语言的形式化定义
文法和语言
• 构造编译程序的算法是从研究源程序及目标程 序产生的,首先找到源语言的形式描述,根据 这种描述,构造出相应的分析加工程序。 • 程序设计语言包括语法和语义两方面。 • 语法是一组规则,可用来产生合乎语法的程序, 也可用来分析一个程序是否合乎语法。 • A:=B+C • 程序设计语言的语义包括静态语义和动态语义。 静态语义是一系列限定规则,用来确定哪些合 乎语法的程序是正确的;动态语义称为运行语 义或执行语义,表示程序要做什么,要计算什 么。
文法和语言
一、文法的概念
二、符号和符号串
三、文法和语言的定义
四、文法的类型
五、上下文无关文法及其语法树 六、句型的分析 七、有关文法的一些限制
文法的概念
语 言
语法:是一组规则,定义符号如何排 列,排列与符号含义无关。 语义 :研究语法的含义 静态语义 动态语义
文法是阐述语法的一个工具
一、文法的概念 (写出以下语言的文法)
〈7〉正闭包(∑+) ∑+ =∑1 ∪ ∑2∪. …∪∑n
∑+称∑的正闭包。
显然:∑*= ∑0∪∑+
∑+

∑∑*=∑*∑
三、文法和语言的形式定义
(用以上术语对文法的概念进行形式化)
1、规则(重写规则、产生式、生成式)
形如→ β 或 ::= β 是字母表V的正闭包V+的一个符号; β是字母表V的闭包V*的一个符号; 称规则的左部,β称规则的右部。 2、文法的定义 〈1〉文法G定义为四元组(VN,VT,P,S)
* 若x仅由终结符号组成(Sx,xVT*)
则称x为G[S]的句子。
例: S,0S1,000111都是文法G的句型,000111是 G的句子。 〖结论〗句子一定是句型,句型不一定是句子。
5、语言的定义: L(G)表示
文法G产生的语言定义为: G产生的句子的集合 {xSx, S为文法开始符号, xVT* } 该集合为语言,用L(G)表示。 从定义可知: x是句型且x是文法G的句子。 想: 例1的语言表示为什么?
1、上下文无关文法:
设G=(VN ,VT ,P,S),若P中的每一个产生 式→满足:
是一非终结符,(VN ∪VT)*,则此文法称为 上下文无关文法 (2型文法) 。(用 取代 与 所在 的上下文无关)
例6:G=({S,A,B},{a,b},P,S),P的产生式如下:
S→aB S→bA A→bAA A→a B→b B→bS B→aBB
符号和符号串
2、符号串—字母表的符号组成的任何有穷序列。
例:∑={0,1}
— —
符号集
符号串有: 0,1,00,01,10,11
例:∑={a,b,c}
符号集
符号串有:a,b,c,ab,aaca
3、符号串的长度:符号串x有m个符号,则长度 就为m,表示|x|=m
如: ababa
则长度是5
4、空符号串:用ε表示,长度为0(不含任何 符号) 若符号串x ,则有εx = xε= x 5、符号串的运算:
(1)
符号串的头和尾
若z=xy,则x是z的头,y是z的尾。
例:设z=abc ,则z的头是
ε,a,ab,abc
则z的尾是
ε,c,bc,abc
(2)符号串的固有头和固有尾 若z=xy符号串,x非空,则y是固有尾; 若y非空,则x是固有头。 例:设z=abc,则z的固有头是 ε, a, ab 则z的固有尾是
ε,c ,bc
(3)符号串的连接:
设x,y是符号串,连接xy是y符号写在x符号之后。 例:x=ab, y=MN 显然:εx=xε=x (4)符号串的方幂:
N个
则xy=abMN
设x是符号串,则z=xx……xx,称z为x的方幂, 记z=xn。 因此 x0=ε, x1=x, x2=xx, x3=xxx 显然n>0时, 有xn =x· x
VT={a,b,e}P产生式为: (1) S →aSBE (2) S →aBE (3) EB → BE
(4) aB →ab
(5) bB →bb
(6) bE →be (7) eE →ee
想:L(G)表示为什么?
相关文档
最新文档