编译原理第二章-3

合集下载

清华大学编译原理第二版课后习答案

清华大学编译原理第二版课后习答案

Lw.《编译原理》课后习题答案第一章第1章引论第1题解释下列术语:(1)编译程序(2)源程序(3)目标程序(4)编译程序的前端(5)后端(6)遍答案:(1)编译程序:如果源语言为高级语言,目标语言为某台计算机上的汇编语言或机器语言,则此翻译程序称为编译程序。

(2)源程序:源语言编写的程序称为源程序。

(3)目标程序:目标语言书写的程序称为目标程序。

(4)编译程序的前端:它由这样一些阶段组成:这些阶段的工作主要依赖于源语言而与目标机无关。

通常前端包括词法分析、语法分析、语义分析和中间代码生成这些阶段,某些优化工作也可在前端做,也包括与前端每个阶段相关的出错处理工作和符号表管理等工作。

(5)后端:指那些依赖于目标机而一般不依赖源语言,只与中间代码有关的那些阶段,即目标代码生成,以及相关出错处理和符号表操作。

(6)遍:是对源程序或其等价的中间语言程序从头到尾扫视并完成规定任务的过程。

第2题一个典型的编译程序通常由哪些部分组成?各部分的主要功能是什么?并画出编译程序的总体结构图。

答案:一个典型的编译程序通常包含8个组成部分,它们是词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序、表格管理程序和错误处理程序。

其各部分的主要功能简述如下。

词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。

语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。

语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表中。

中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式的中间语言代码,如三元式或四元式。

中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理。

盛威网()专业的计算机学习网站1《编译原理》课后习题答案第一章目标代码生成程序:将优化后的中间代码程序转换成目标代码程序。

表格管理程序:负责建立、填写和查找等一系列表格工作。

编译原理课后习题答案+清华大学出版社第二版

编译原理课后习题答案+清华大学出版社第二版
也称基地址。 SL: 静态链,指向定义该过程的直接外过程(或主程序)运行时最新数据段的基地址,
用以引用非局部(包围它的过程)变量时,寻找该变量的地址。 DL: 动态链,指向调用该过程前正在运行过程的数据段基地址,用以过程执行结束释放
数据空间时,恢复调用该过程前运行栈的状态。 RA: 返回地址,记录调用该过程时目标程序的断点,即调用过程指令的下一条指令的地
编译程序大致有哪几种开发技术?
答案:
(1)自编译:用某一高级语言书写其本身的编译程序。 (2)交叉编译:A 机器上的编译程序能产生 B 机器上的目标代码。 (3)自展:首先确定一个非常简单的核心语言 L0,用机器语言或汇编语言书写出它的编
译程序 T0,再把语言 L0 扩充到 L1,此时 L0⊂ L1 ,并用 L0 编写 L1 的编译程序 T1,再把语 言 L1 扩充为 L2,有 L1 ⊂ L2 ,并用 L1 编写 L2 的编译程序 T2,……,如此逐步扩展下 去, 好似滚雪球一样,直到我们所要求的编译程序。 (4)移植:将 A 机器上的某高级语言的编译程序搬到 B 机器上运行。
(main).
答案: 程序执行到赋值语句 b∶=10 时运行栈的布局示意图为:
1
《编译原理》课后习题答案第二章
第 3题 写出题 2 中当程序编译到 r 的过程体时的名字表 table 的内 容。
name
kind
level/val
adr
size
答案:
题 2 中当程序编译到 r 的过程体时的名字表 table 的内容为:
盛威网()专业的计算机学习网站
2
《编译原理》课后习题答案第一章
合实现方案,即先把源程序翻译成较容易解释执行的某种中间代码程序,然后集中解释执行 中间代码程序,最后得到运行结果。

编译原理教程课后习题答案第二章

编译原理教程课后习题答案第二章

第二章 词法分析2.1 完成下列选择题:(1) 词法分析器的输出结果是。

a. 单词的种别编码b. 单词在符号表中的位置c. 单词的种别编码和自身值d. 单词自身值(2) 正规式M1和M2等价是指。

a. M1和M2的状态数相等b. M1和M2的有向边条数相等c. M1和M2所识别的语言集相等d. M1和M2状态数和有向边条数相等(3) DFA M(见图2-1)接受的字集为。

a. 以0开头的二进制数组成的集合b. 以0结尾的二进制数组成的集合c. 含奇数个0的二进制数组成的集合d. 含偶数个0的二进制数组成的集合【解答】(1) c (2) c (3) d图2-1 习题2.1的DFA M2.2 什么是扫描器?扫描器的功能是什么?【解答】 扫描器就是词法分析器,它接受输入的源程序,对源程序进行词法分析并识别出一个个单词符号,其输出结果是单词符号,供语法分析器使用。

通常是把词法分析器作为一个子程序,每当词法分析器需要一个单词符号时就调用这个子程序。

每次调用时,词法分析器就从输入串中识别出一个单词符号交给语法分析器。

2.3 设M=({x,y}, {a,b}, f, x, {y})为一非确定的有限自动机,其中f 定义如下:f(x,a)={x,y} f {x,b}={y}f(y,a)=Φ f{y,b}={x,y}试构造相应的确定有限自动机M ′。

【解答】 对照自动机的定义M=(S,Σ,f,So,Z),由f 的定义可知f(x,a)、f(y,b)均为多值函数,因此M 是一非确定有限自动机。

先画出NFA M 相应的状态图,如图2-2所示。

图2-2 习题2.3的NFA M 用子集法构造状态转换矩阵,如表表2-1 状态转换矩阵1b将转换矩阵中的所有子集重新命名,形成表2-2所示的状态转换矩阵,即得到 M ′=({0,1,2},{a,b},f,0,{1,2}),其状态转换图如图2-3所示。

表2-2 状态转换矩阵将图2-3所示的DFA M ′最小化。

编译原理习题解答(第2-3章)_吴蓉

编译原理习题解答(第2-3章)_吴蓉

P39 12.试分别构造产生下列语言的文法: 试分别构造产生下列语言的文法: 试分别构造产生下列语言的文法 (1){ abna | n=0,1,2,3……} ) , , , (3){ aban | n≥1} ) (5){ anbmcp | n,m,p≥0} ) , , 解: (1)G={VN,VT,P,S},VN={S,A },VT= ) = , , , , {a,b}, , , P:S∷=aAa : ∷ 或 S∷=aB ∷ A∷=bA |ε B∷=bB | a ∷ ∷ (3)G={VN,VT,P,S},VN={S,A },VT= ) = , , , , {a,b}, , , P:S∷=abA : ∷ 或 S∷=Sa | aba ∷ A∷=aA | a ∷
P41 27. 给 出 一 个 产 生 下 列 语 言 L ( G ) = {W|W∈{a,b}*且W中含 的个数是 个数两倍的前 中含a的个数是 ∈ 且 中含 的个数是b个数两倍的前 后文无关文法。 后文无关文法。 解:文法G=({S, A, B}, {a, b}, P, S) 文法 P: S::=AAB|ABA|BAA|ε A::=aS B::=bS 或者 S::=Saab|aSab|aaSb|aabS|Saba|aSba|abSa|abaS|Sbaa |bSaa|baSa|baaS|ε 或者 S::=aaB|aBa|Baa|ε B::=SbS
1 0 S 0
A
0 Z 0
1
解题思路二: 写出其正规表达式 解题思路二 : 写出其正规表达式(0|10)*(10|0|1)【 如果仅有 【 (0|10)*的话推导不出 ,因为是连接关系,后面缺了 的话 的话推导不出1,因为是连接关系,后面缺了10的话 的话推导不出 就会以1结尾 同样的道理还要推导出0, 结尾, 就会以 结尾 , 同样的道理还要推导出 , 所以得到此正规 画出转换系统,然后根据转换系统来推导出文法。 式 】 , 画出转换系统 , 然后根据转换系统来推导出文法 。 也可以根据正规表达式直接写文法,例如正规表达式 (0|10)*(10|0|1)可以看成是 可以看成是a*b,推导出 可以看成是 ,推导出A::= (0|10)A|10|0|1, , 即A::= 0A|1B|10|0|1,其中 ,其中B::=0A,但是 此项不符合正规 ,但是10此项不符合正规 文 法 的 选 项 , 可 以 进 行 改 写 从 而 得 到 A::= 0A|1B|0|1 B::=0A|0。 。

(完整版)编译原理课后答案(第三版蒋立源康慕宁编)

(完整版)编译原理课后答案(第三版蒋立源康慕宁编)

编译原理课后答案(第三版蒋立源康慕宁编)第一章习题解答1解:源程序是指以某种程序设计语言所编写的程序。

目标程序是指编译程序(或解释程序)将源程序处理加工而得的另一种语言(目标语言)的程序。

翻译程序是将某种语言翻译成另一种语言的程序的统称。

编译程序与解释程序均为翻译程序,但二者工作方法不同。

解释程序的特点是并不先将高级语言程序全部翻译成机器代码,而是每读入一条高级语言程序语句,就用解释程序将其翻译成一段机器指令并执行之,然后再读入下一条语句继续进行解释、执行,如此反复。

即边解释边执行,翻译所得的指令序列并不保存。

编译程序的特点是先将高级语言程序翻译成机器语言程序,将其保存到指定的空间中,在用户需要时再执行之。

即先翻译、后执行。

2解:一般说来,编译程序主要由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、代码优化程序、目标代码生成程序、信息表管理程序、错误检查处理程序组成。

3解:C语言的关键字有:auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while。

上述关键字在C语言中均为保留字。

4解:C语言中括号有三种:{},[],()。

其中,{}用于语句括号;[]用于数组;()用于函数(定义与调用)及表达式运算(改变运算顺序)。

C语言中无END关键字。

逗号在C语言中被视为分隔符和运算符,作为优先级最低的运算符,运算结果为逗号表达式最右侧子表达式的值(如:(a,b,c,d)的值为d)。

5略第二章习题解答1.(1)答:26*26=676(2)答:26*10=260(3)答:{a,b,c,...,z,a0,a1,...,a9,aa,...,az,...,zz,a00,a01,...,zzz},共26+26*36+26*36*36=34658个2.构造产生下列语言的文法(1){anbn|n≥0}解:对应文法为G(S) = ({S},{a,b},{ S→ε| aSb },S)(2){anbmcp|n,m,p≥0}解:对应文法为G(S) = ({S,X,Y},{a,b,c},{S→aS|X,X→bX|Y,Y→cY|ε},S)(3){an # bn|n≥0}∪{cn # dn|n≥0}解:对应文法为G(S) = ({S,X,Y},{a,b,c,d,#}, {S→X, S→Y,X→aXb|#,Y→cYd|# },S)(4){w#wr# | w?{0,1}*,wr是w的逆序排列}解:G(S) = ({S,W,R},{0,1,#}, {S→W#, W→0W0|1W1|# },S)(5)任何不是以0打头的所有奇整数所组成的集合解:G(S) = ({S,A,B,I,J},{-,0,1,2,3,4,5,6,7,8,9},{S→J|IBJ,B→0B|IB|e, I→J|2|4|6|8, Jà1|3|5|7|9}, S)(6)所有偶数个0和偶数个1所组成的符号串集合解:对应文法为S→0A|1B|e,A→0S|1C B→0C|1S C→1A|0B3.描述语言特点(1)S→10S0S→aAA→bAA→a解:本文法构成的语言集为:L(G)={(10)nabma0n|n, m≥0}。

《编译原理》第2章 编译基础-形式语言与有穷自动机

《编译原理》第2章 编译基础-形式语言与有穷自动机
整理课件
句型、推导
G[E]: E→E+T|T T→T*F|F F→(E)|a
对于句子a+a*a 有不同 的推导
EE+T T+T F+T a+T a+T*F a+F*F a+a*F a+a*a
EE+T E+T*F E+T*a E+F*a E+a*a T+a*a F+a*a a+a*a
整理课件
例:奇偶测试器
0
0
1
q0
q1

1
自动机:M=(Q,∑ ,δ ,q0,Z)
Q={ q0, q1}
∑ ={0,1}
q0=q0 Z={q1}
整理课件
映射函数:
δ( q0,0)= q0 0
0
δ( q0,1)= q1
1
δ( q1,0)= q1 q0
q1
δ( q1,1)= q0
1
例:000110001
整理课件
第四节 正规文法与有穷自动机 1、正规文法 产生的语言的推导 例:文法 G=(VN,VT,P,S) 其中: VN={A,B,C}
VT={a,b,c} S=A P:A →aB A →aA
B →bB B →bC C →cC C →c
整理课件
A=>aA=>aaA=>…..=>aa…aB =>aa…abB=>aa…abb…bC =>aa…abb…bcC=> aa…abb…bccC => aa…abb…bcc…c
D→ε
Aa→bD
自然语言属于上下文有关文法
整理课件
文法的类型

编译原理第二章-课后题答案

编译原理第二章-课后题答案

第二章3.何谓“标志符”,何谓“名字”,两者的区别是什么答:标志符是一个没有意义的字符序列,而名字却有明确的意义和属性。

4.令+、*和↑代表加、乘和乘幂,按如下的非标准优先级和结合性质的约定,计算1+1*2↑2*1↑2的值。

(1)优先顺序(从高到低)为+、*和↑,同级优先采用左结合。

(2)优先顺序为↑、+、*,同级优先采用右结合。

答:(1)1+1*2↑2*1↑2=2*2↑2*1↑2=4↑2*1↑2=4↑2↑2=16↑2=256(2)1+1*2↑2*1↑2=1+1*2↑2*1=1+1*4*1=2*4*1=2*4=86.令文法G6为N-〉D|NDD-〉0|1|2|3|4|5|6|7|8|9(1)G6的语言L(G6)是什么(2)给出句子0127、34、568的最左推导和最右推导。

答:(1)由0到9的数字所组成的长度至少为1的字符串。

即:L(G6)={d n|n≧1,d∈{0,1,…,9}}(2)0127的最左推导:N=>ND=>NDD=>NDDD=>DDDD=>0DDD=>01DD=>012D=>0127 0127的最右推导:N=>ND=>N7=>ND7=>N27=>ND27=>N127=>D127=>0127(其他略)7.写一个文法,使其语言是奇数集,且每个奇数不以0开头。

答:G(S):S->+N|-NN->ABC|CC->1|3|5|7|9A->C|2|4|6|8B->BB|0|A|ε[注]:可以有其他答案。

[常见的错误]:N->2N+1原因在于没有理解形式语言的表示法,而使用了数学表达式。

8.令文法为E->T|E+T|E-TT->F|T*F|T/FF->(E)|i(1)给出i+i*i、i*(i+i)的最左推导和最右推导。

(2)给出i+i+i、i+i*i和i-i-i的语法树,并给出短语,简单短语和句柄。

《编译原理》课后习题答案第二章

《编译原理》课后习题答案第二章
此文法没有多余规则,所以消去左递归后的文法就是G′[S]
4、试为文法G[P]:
P∷=begin S end S∷=A|C
A∷=V:=E C∷=if E then S
E∷=V E∷=E+V V∷=i
采用某种程序设计语言构造递归下降识别程序。
解:由于文法存在左递归,进行文法等价变换,得到等价文法G′[P]:
步骤三检查可得f的值与原有的优先矩阵一致所以上表函数即为所求优先函数bell有向图法形式化步骤一构造布尔矩阵b步骤二使用warshall算法构造布尔矩阵b1521步骤三则优先函数为
第二章
习题1
6.答:省略表示法:{1.3,1.33,1.333…};描述表示法:{1.3i|i=1,2,3…}
7.答:x+={0,12,123,1234…};
最小化:
(2)由e构造转换系统:
去ε弧及无用状态和死状态:
因为现在只有一个状态,所以无需再最小化,此时就是最小化.
13.解:建立方程组如下:
W=Ua+Vb ①
U=Va+c ②
V=Ub+c ③
把③代入②得,U=(Ub+c)a+c
=Uba+ca+c
把它改写成U=(ca+c){ba},因此U=(ca|c){ba} ④
follow(E)={#,)}
follow(E′)={#,)}
follow(T)={#,),+,-}
follow(T′)={#,),+,-}
follow(F)={*,/,#,),+,-}
识别输入符号串i*i-(i+i)/i,则识别过程
步骤 栈 输入 输出
0 #E i*i-(i+i)/i# E∷=TE′
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

文法和语言是密切相关的, 文法所定义的任一句型和句子, 都可以根据文法推导出来。 我们提出一个问题:
这种推导过程是否唯一?
同一个句型(句子)可以通过不 同的推导序列推导出来,这是因为 在推导过程中与所选择非终结符的 次序有关。
例如,设有文法G[N1] N1→N N→ND | D D→0 | 1 | 2 句子12有下列三种不同的推导序列: ① N1N ND N2 D2 12 ② N1N ND DD 1D12 ③ N1N ND DD D212
E (E) (E+E)(E*E+E) (i*E+E)
(i*i+E) (i*i+i) * 即有 E(i*i+i), 所以符号串(i+i*i)是文法 G[E]的一个句子。
2.3.2 语言的形式定义
5.语言
文法G[S]产生的所有句子的集合称为文 法G所定义的语言,记为L(G[S]):
* x且x∈V *} L(G[S])={x|S T 由语言定义可知: (1)当文法给定,语言也就确定。 (2)L(G)是VT* 的子集。即属于VT* 的符 号串 x 不一定属于L(G)。
语法树与二义性
用一张图表示一个句型的推导,称为语法树。 (i*i+i)的语法树 G(E): E i | E+E | E*E | (E)
(i*i+i)
E (E) (E+E) (E*E+E) (i*E+E) (i*i+E) (i*i+i)
E (E) (E+E) (E+i) (E*E+i) (E*i+i) (i*i+i)
四种类型描述能力比较
0型
1型 2型 3型
L5={anbn|n1} 不能由正规文法产生,但 可由上下文无关文法产生: G5(S): S aSb| ab L6={anbncn|n1}不能由上下文无关文法产 生,但可由上下文有关文法产生: G6(S): S aSBC| aBC CB BC aB ab bB bb bC bc cC cc
2.3.2 语言的形式定义
3.广义推导
* 0n表示从0出发,经0步或若干步, 可推导出n。 * 意味着 + 或者 = 。 也就是说
0 n 0 n 0 n
对上例 E→E+T | T T→T*F | F F→(E) | i *E * i+i*i 我们有: E E
2.3.2 语言的形式定义
例2 设有文法G[E]: E→E+E | E*E | (E) | i 试证明符号串 (i*i+i) 是文法G[E]的一 个句子。 分析 只要证明符号串 (i*i+i) 对文法 G 存在一个推导,就可证明符号串 (i*i+i) 是文法G[E]的一个句子。
2.3.2 语言的形式定义
E→E+E | E*E | (E) | i
2.3.1 文法的形式定义
L={ aa, aba, abba, …… }
所以定义语言的文法为:
G=( {A, B}, {a, b}, P, A )
P={ A→aBa B→Bb | ε }
2.3.1 文法的形式定义
设字母表∑={ (, ) } ,试设计一个文法描 述语言 L={ (n )n | n≥0} 分析 该语言中串的结构特征是 当n=0 L={ ε } 注: (0 )0= ε 当n=1 L={ ( ) } 当n=2 L={ (( )) } …… L={ ε, ( ), (( )), ((( ))), … }
其中P为:E→i | E+E | E*E | (E)
2.3.1 文法的形式定义
P为:E→i | E+E | E*E | (E) { i, i+i, i*i, i+i*i, (i+i), … }
注意:是符号 串的集合
2.3.1 文法的形式定义
设字母表 Σ={ a, b } , 试设计一个文法, 描述语言 L={ abna | n≥0 } 分析 该语言中串的结构特征是 当n=0 L={ aa } (b0=ε) 当n=1 L={ aba } 当n=2 L={ abba } …… L={ aa, aba, abba, …… }
• 一棵语法树是不同推导过程的共性抽象。
如果使用最左(右)推导,则一个最左(右) 推导与语法树一一对应。 一个句型是否只对应唯一一棵语法树?
E ( E E i E + E i * E i )
E ( E i E * E i E +E i )
定义:如果一个文法存在某个句子对应两颗不同 的语法树,则说这个文法是二义的。即:如果一 个文法存在某个句子,它有两个不同的最左(最 右)推导, 则说这个文法是二义的 G(E): E i|E+E|E*E|(E) 是二义文法。 语言的二义性:一个语言是二义性的,如果对它 不存在无二义性的文法。
对文法G(E): E i | E+E | E*E | (E)
E (E) (E+E) (i+E) (i+i)
2.3.2 语言的形式定义
2 .推导 如果存在一个直接推导序列: α0 α1 α2 … αn
则我们称这个序列是一个从0至 n的长度为n的推导,记为 + αα
即表示从0 出发,经 一步或若干 步 或者说 使用若干次规则可推导 出 。
2.3.2 语言的形式定义
例1 设有文法G[S]:S→01 | 0S1 我们有:
* 01 S * 0S1 S * 00S11 S * 000111 S 显然,符号串01、0S1、00S11和 000111 都是文法G[S]的句型,而01和 000111又是文法G[S]的句子。
2.3.2 语言的形式定义
第二章
语法描述
2.3.1 文法的形式定义
用文法定义一个含+、*的算术 表达式,定义用下述自然语言描 述: 变量是一个表达式; 若 E1和 E2是算术表达式, 则 E1+E2、E1*E2、(E1) 也是算术 表达式。
2.3.1 文法的形式定义
分析 算术表达式的定义用自然 语言描述,这是对算术表达式的非 形式定义,题意用文法来定义算术 表达式,即是用形式化的方法定义 表达式。定义算术表达式的文法为: G=({E},{ i, +, *, (, ) }, P, E )
可能存在G和G’,一个为二义的,一个为无二义的。 但L(G)=L(G’)
二义性问题是不可判定问题,即不存在一个算法, 它能在有限步骤内,确切地判定一个文法是否是 二义的。 可以找到一组无二义文法的充分条件。
二义文法: G(E): E i|E+E|E*E|(E) 无二义文法:
G(E):E T | E+T T F | T*F F (E) | i 表达式 项|表达式+项 项 因子 | 项*因子 因子 (表达式) | i
由该文法所确定的语言为 L(G[S])={ε, 0, 1, 00, 01, 10, 11, …} ={ x | x∈{0,1}* }
2.3.2 语言的形式定义
例5 设有文法G[A]: A→yB B →xB | x 该文法所定义的语言是什么? 分析 从文法开始符号A出发可推导 出以y开头后面跟一个或多个x结尾的 符号串,所以该文法定义的语言为
0
n
2.3.2 语言的形式定义
设有文法G[E]=({E,T,F},{i,+,*,(,)},P,E) 其中P为:E→E+T | T T→T*F | F F→(E) | i 对 i+i*i 有如下直接推导序列: E E+T T+T F+Ti+T i+T*F i+F*F i+i*Fi+i*i + 我们可记为 Ei+i*i
最左(最右)推导,是指对于 一个推导序列中的每一步直接推 导 αβ , 都是对α 中的最左(最右) 非终结符进行替换。 最右推导也称为规范推导, 用规范推导推导出的句型称为规 范句型。
例 设有文法G[S]: S→AB A→A0 | 1B B→0 | S1 请给出句子101001的最右、最左推导。 分析 最右推导是指在推导过程 中任何一步αβ (α和β是句型),都是 对α中的最右非终结符进行替换。
S→AB A→A0 | 1B B→0 | S1 句子101001的最右推导为: S AB AS1AAB1AA01A1B01 A10011B1001101001
最左推导是指在推导过程中任何 一步αβ (α和β是句型), 都是对α的最 左非终结符进行替换。 S→AB A→A0 | 1B B→0 | S1 句子101001的最左推导为: S AB 1BB10B 10S110AB1 101BB11010B1101001
*
*
r V
* T
2.3.3
形式语言鸟瞰
Chomsky于1956年建立形式语言 体系,他把文法分成四种类型:0, 1,2,3型。 与上下文无关文法一样,它们都由 四部分组成,但对产生式的限制有 所不同。
0型(短语文法,图灵机):
产生式形如: 其中: (VT VN)*且至少含有一个非终结 符; (VT VN)* 0型文法又叫短语文法,记为PSG。0型文法 相应的语言称为0型语言或称递归可枚举集, 它的识别系统是图灵(Turing)机。
我们应用第二个规则n-1次,然 后再应用第一个规则1次,有: S 0S100S11…0n-1S1n-10n1n * 即S0n1n
可见,此文法定义的语言为 L(G[S])={ 0n1n | n≥1}
2.3.2 语言的形式定义
例4 设有文法G[S]:S→0S | 1S |ε 该文法所定义的语言是什么?
L(G[A])={ yxn | n≥1}
2.3.2 语言的形式定义
相关文档
最新文档