《编译原理》典型题解

合集下载

编译原理习题参考答案

编译原理习题参考答案

程序设计语言与编译——语言的设计与实现(第2版)习题4答案4-5 解:上下文有关文法(1型文法),产生的语言L(G){=a i b i c i | i≥1,i为整数} 4-6 解:3型文法,L(G)={a i | i≥1,i为奇数}4-7 解:2型文法,L(G)={a i b i | i≥1,i为整数}4-8 解:1型文法,L(G)={a i b i c i | i≥1,i为整数}4-9 解:1. 最左推导最右推导S⇒ (A) ⇒ (B) ⇒(SdB) S⇒ (A) ⇒ (B) ⇒ (SdB)⇒ ((A)dB) ⇒ ((B)dB) ⇒ (SdS) ⇒ (Sda)⇒ ((S)dB) ⇒ ((b)dB) ⇒ ((A)da ⇒ ((B)da)⇒ ((b)dS) ⇒ ((b)da) ⇒ ((s)da⇒ ((b)da)2. 语法树4-10解:1. 因为存在推导S ⇒ SbF ⇒ SbP ⇒ Sbc ⇒ Fbc ⇒ FaPbc所以FaPbc是文法G (S) 的一个句型。

2. 语法树4-11解:因为串aaabaa可有下列两棵不同的语法树所以文法G (S)是二义文法。

因为串i(*可有下列两棵不同的语法树9-2解:(1)消除文法G的②产生式直接左递归。

A→SeA' | fA' ③A'→dA' | ε④(2)消除间接左递归:按S.A排序,将S的①产生式代入③有A→AaeA' | AbeA' | ceA' | fA' ⑤(3)消除⑤的直接左递归有A→ceA'A" | fA'A" ⑥A"→aeA'A" | beA'A" | ε⑦(4)对S的①产生式提公因子有S→AB | c ⑧B→| a | b ⑨(5)最后,文法G提取公因子,消除左递归后的产生式由⑧, ⑨, ⑥, ⑦和④组成,无多余的产生式。

编译原理习题及答案 ppt课件

编译原理习题及答案  ppt课件
39ppt课件40编译原理教程习题解析图图216正规式a??baab对应的nfa40ppt课件141编译原理教程习题解析图图217图216确定化后的状态转换矩阵41ppt课件42编译原理教程习题解析由于对非终态的状态12来说它们输入ab的下一状态是一样的故状态1和状态2可以合并将合并后的终态3命名为2则得到表23注意终态和非终态即使输入ab的下一状态相同也不能合并
ppt课件
7
《编译原理教程》习题解析
8
在编译方式下,高级语言程序的执行是分两步进行 的:第一步首先将高级语言程序全部翻译成机器代码程序, 第二步才是执行这个机器代码程序。因此,编译对源程序 的处理是先翻译,后执行。
从执行速度上看,编译型的高级语言比解释型的高级 语言要快,但解释方式下的人机界面比编译型好,便于程 序调试。
ppt课件
24
《编译原理教程》习题解析
25
图2-5 正规式(ab)*a对应的NFA
ppt课件
25
《编译原理教程》习题解析
26
图2-6 正规式a(ba)*对应的NFA
ppt课件
26
《编译原理教程》习题解析
27

图2-7 图2-5和图2-6确定化后的状态转换矩阵
ppt课件
27
《编译原理教程》习题解析
C.汇编语言是计算机唯一能够直接识别并接受 的语言
D.高级语言接近人们的自然语言,但其依赖具 体机器的特性是无法改变的
ppt课件
2
《编译原理教程》习题解析
3
(2) 将编译过程分成若干“遍”是为了 。
A.提高程序的执行效率
B.使程序的结构更加清晰
C.利用有限的机器内存并提高机器的执行效率
D.利用有限的机器内存但降低了机器的执行效

编译原理(龙书)课后习题解答(详细)

编译原理(龙书)课后习题解答(详细)

编译原理(龙书)课后习题解答(详细)编译原理(龙书)课后题解答第一章1.1.1 :翻译和编译的区别?答:翻译通常指自然语言的翻译,将一种自然语言的表述翻译成另一种自然语言的表述,而编译指的是将一种高级语言翻译为机器语言(或汇编语言)的过程。

1.1.2 :简述编译器的工作过程?答:编译器的工作过程包括以下三个阶段:(1) 词法分析:将输入的字符流分解成一个个的单词符号,构成一个单词符号序列;(2) 语法分析:根据语法规则分析单词符号序列中各个单词之间的关系,确定它们的语法结构,并生成抽象语法树;(3) 代码生成:根据抽象语法树生成目标程序(机器语言或汇编语言),并输出执行文件。

1.2.1 :解释器和编译器的区别?答:解释器和编译器的主要区别在于执行方式。

编译器将源程序编译成机器语言或汇编语言等,在运行时无需重新编译,程序会一次性运行完毕;而解释器则是边翻译边执行,每次执行都需要进行一次翻译,一次只执行一部分。

1.2.2 :Java语言采用的是解释执行还是编译执行?答:Java一般是编译成字节码的形式,然后由Java虚拟机(JVM)进行解释执行。

但是,Java也有JIT(即时编译器)的存在,当某一段代码被多次执行时,JIT会将其编译成机器语言,提升代码的执行效率。

第二章2.1.1 :使用BNF范式定义简单的加法表达式和乘法表达式答:<加法表达式> ::= <加法表达式> "+" <乘法表达式> | <乘法表达式><乘法表达式> ::= <乘法表达式> "*" <单项式> | <单项式><单项式> ::= <数字> | "(" <加法表达式> ")"2.2.3 :什么是自下而上分析?答:自下而上分析是指从输入字符串出发,自底向上构造推导过程,直到推导出起始符号。

编译原理考试习题及答案

编译原理考试习题及答案

( T ② S ① a
T ,
T ④ S ③ a
2019/1/29
CH.5.练习题3(P133.)

3.(1) 计算练习2文法G2的FIRSTVT和LASTVT。 S→a||(T) T→T,S|S

(1) 解: (执行相应的算法可求得) FIRSTVT(S)={ a, ∧, ( } FIRSTVT(T)={ , , a, ∧, ( } LASTVT(S)={ a, ∧, ) } LASTVT(T)={ , , a, ∧, ) }
(1) 正规式 1(0|1)*101
0
0
DFA:
3,2
1 0
3,5,2
1 1 0
x
1
1,3,2
1
0
3,4,2
1
3,Y,4,2 I0 I1 1 3 3 3 5 3
I {X} {1,3,2} {3,2} {3,4,2} {3,5,2} {3,Y,4,2}
I0 {3,2} {3,2} {3,5,2} {3,2} {3,5,2}
2019/1/29 22
CH.5.练习题2(P133.)

2.(2).给出(a,(a,a))“移进-归约”的过程。 (2) 解: (a,(a,a))的“移进-归约”过程: 步骤 符号栈 输入串 动作 9 #(T,( S ,a))# 归约 S → a 10 #(T,(T , a ))# 归约 T → S 11 #(T,(T, a ))# 移进 , 12 #(T,(T, a ))# 移进 a 13 #(T,( T,S ))# 归约 S → a 14 #(T, (T ) )# 归约 T → T,S 15 #(T, (T) )# 移进 ) 16 #( T, S )# 归约 S → (T)

2-3-习题(含解答)

2-3-习题(含解答)

2-3 习题(含解答)目录第1章编译原理概述 (1)第2章PL/O编译程序的实现 (4)第3章文法和语言 (4)第4章词法分析 (13)第5章自顶向下语法分析方法 (28)第6章自底向上优先分析 (39)第7章LR分析 (42)第8章语法制导翻译和中间代码生成 (60)第9章符号表 (67)第10章目标程序运行时的存储组织 (70)第11章代码优化 (73)第12章代码生成 (76)综合练习一 (79)综合练习二 (84)综合练习三 (90)综合练习四 (95)综合练习五 (101)综合练习六 (107)第1章编译原理概述一、选择题1.一个编译程序中,不仅包含词法分析,语法分析,中间代码生成,代码优化,目标代码生成等五个部分,还应包括 (1) 。

其中, (2) 和代码优化部分不是每个编译程序都必需的。

词法分析器用于识别 (3) ,语法分析器则可以发现源程序中的 (4) 。

(1) A.模拟执行器 B.解释器 C.表格处理和出错处理 D.符号执行器(2) A.语法分析 B.中间代码生成 C.词法分析 D.目标代码生成(3) A.字符串 B.语句 C.单词 D.标识符(4) A.语义错误 B.语法和语义错误 C.错误并校正 D.语法错误2.程序语言的语言处理程序是一种 (1) 。

(2) 是两类程序语言处理程序,他们的主要区别在于 (3) 。

(1) A.系统软件 B.应用软件 C.实时系统 D.分布式系统(2) A.高级语言程序和低级语言程序 B.解释程序和编译程序C.编译程序和操作系统D.系统程序和应用程序(3) A.单用户与多用户的差别 B.对用户程序的查错能力C.机器执行效率D.是否生成目标代码3.汇编程序是将翻译成,编译程序是将翻译成。

A.汇编语言程序B.机器语言程序C.高级语言程序D. A 或者BE. A 或者CF. B或者C4.下面关于解释程序的描述正确的是。

(1) 解释程序的特点是处理程序时不产生目标代码(2) 解释程序适用于COBOL 和 FORTRAN 语言(3) 解释程序是为打开编译程序技术的僵局而开发的A. (1)(2)B. (1)C. (1)(2)(3)D.(2)(3)5.高级语言的语言处理程序分为解释程序和编译程序两种。

编译原理-习题解答

编译原理-习题解答

第一章习题解答1.解:源程序是指以某种程序设计语言所编写的程序。

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

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

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

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

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

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

即先翻译、后执行。

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

3.解:C语言的关键字有:auto break case char const continuedefault do double else enum extern float for goto if int longregister 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){a n b n|n≥0}解:对应文法为G(S) = ({S},{a,b},{ S→ε| aSb },S)(2){a n b m c p|n,m,p≥0}解:对应文法为G(S) = ({S,X,Y},{a,b,c},{S→aS|X,X→bX|Y,Y→cY|ε},S)(3){a n # b n|n≥0}∪{c n # d n|n≥0}解:对应文法为G(S) = ({S,X,Y},{a,b,c,d,#}, {S→X,S→Y,X→aXb|#,Y→cYd|# },S)(4){w#w r# | w?{0,1}*,w r是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)n ab m a0n|n, m≥0}。

编译原理习题与答案

编译原理习题与答案

第三章
正规表达式:a(b|a(a|b))|b(a|b)
a a X b 2 1 b a b 3 a Y b
a a X b 2 1 b a
3 a
b
第三章
用子集法将NFA确定化。
I {X} {1} {2} {3} {Y} Ia {1} {3} {Y} {Y} - Ib {2} {Y} {Y} {Y} -
S→A B→C|B+C
A→B|AiB C→)A*|(
第四章
1)将文法G[S]改写为LL(1)文法。 文法G[S]为左递归文法,削去文法左递归 后的文法为: S→A A→BA’ A’→ iBA’|ε B→CB’ B’ → +CB’|ε C→)A*|(
S→A A→BA’ A’→ iBA’|ε B→CB’ B’ → +CB’|ε C→)A*|(
2 3 4 5 6 7
a 1 3 - 3 3 5 6 6
b 2 4 5 6 5 7 6 7
第三章
{0,1,2,5}, {4}, {3,6,7}
对于非终态集,在输入字符 a 、
b 后按其下一状态落入的状态集 不同而最终划分为
{0}, {1}, {2}, {5}, {4}, {3,6,7}
按顺序重新命名为 0 、 1 、 2 、 3 、
b
6
b
b
0 1 2 3 4 5 6 7
a 1 3 - 3 3 5 6 6
b 2 4 5 6 5 7 6 7
第三章
对上图的 DFA 进行最小化。首先将
状态分为非终态集和终态集两部分: 0 {0,1,2,5}和{3,4,6,7}。 1
由终态集可知,对于状态 3、 6、 7,
无论输入字符是 a 还是 b 的下一状态 均为终态集,而状态 4 在输入字符 b 的下一状态落入非终态集,故将其 化为分{0,1,2,5}, {4}, {3,6,7}

编译原理习题解答

编译原理习题解答

第二章:习题2-4 Table表var x,y;procedure p;var a;procedure q;var b;beginb:=10;end;procedure s;var c,d;procedure r;var e,f;begincall q;end;begincall r;end;begincall s;end;begincall p;end根据:Page289,变量table:array[0..txmax] of record 结构体以及block函数得到下表,而表中各部分的含第三章文法和语言5. 写一文法,使其语言是偶正整数的集合要求:(1)允许0打头(2)不允许0打头解:(1)G[S]=({S,P,D,N},{0,1,2,…,9},P,S)P:S→PD|DP->NP|ND→0|2|4|6|8N->0|1|2|3|4|5|6|7|8|9(2)G[S]=({S,P,R,D,N,Q },{0,1,2,…,9},P,S)P:S→PD|P0|DP->NR|NR->QR|QD→2|4|6|8N->1|2|3|4|5|6|7|8|9Q->0|1|2|3|4|5|6|7|8|96. 已知文法G:<表达式>::=<项>|<表达式>+<项>|<表达式>-<项><项>::=<因子>|<项>*<因子>|<项>/<因子><因子>::=(<表达式>)|i。

试给出下述表达式的推导及语法树。

(1)i; (2)(i) (3)i*i;(4)i*i+i; (5)i+(i+i); (6)i+i*i。

解:(1)v=<表达式>=><项>=><因子>=>i=w(2)v=<表达式>=><项>=><因子>=>(<表达式>)=>(<项>)=>(<因子>)=>(i)=w(3)v=<表达式>=><项>=><项>*<因子>=><因子>*<因子>=>i*i=w(4)v=<表达式>=><表达式>+<项>=><项>+<项>=><项>*<因子>+<项>=><因子>*<因子>+<因子>=>i*i+i=w(5)v=<表达式>=><表达式>+<项>=><项>+<项>=><因子>+<因子>=>i+(<表达式>)=> i+(<表达式>+<项>)=>i+(<项>+<项>)=> i+(<因子>+<因子>)=>i+(i+i)=w(6)v=<表达式>=><表达式>+<项>=><项>+<项>=><因子>+<项>=>i+<项>=>i+<项>*<因子>=> i+<因子>*<因子>=> i+i*i=w语法树见下图:7. 为句子i+i*i 构造两棵语法树,从而证明下述文法G[<表达式>]是二义的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

典典典典型型型型题题题题解解解解编译原理编译原理编译原理编译原理主讲教师主讲教师主讲教师主讲教师::::周时阳周时阳周时阳周时阳编译原理编译原理编译原理编译原理根据课程基本知识点根据课程基本知识点根据课程基本知识点根据课程基本知识点,,,,结合测验常见题型结合测验常见题型结合测验常见题型结合测验常见题型,,,,讨论典型题例解法讨论典型题例解法讨论典型题例解法讨论典型题例解法。

一般题型分为一般题型分为一般题型分为一般题型分为客观题客观题客观题客观题和和和和主观题主观题主观题主观题两类两类两类两类。

其中其中其中其中,,,,客观题包括客观题包括客观题包括客观题包括单项选择题单项选择题单项选择题单项选择题、、、、多项选择题多项选择题多项选择题多项选择题和和和和判断题判断题判断题判断题等等等等,,,,主观题包括主观题包括主观题包括主观题包括简答题简答题简答题简答题、、、、计算题计算题计算题计算题和和和和证明题证明题证明题证明题等等等等。

内容摘要内容摘要内容摘要内容摘要华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院2多项选择题多项选择题多项选择题多项选择题和和和和判断题判断题判断题判断题等等等等,,,,主观题包括主观题包括主观题包括主观题包括简答题简答题简答题简答题、、、、计算题计算题计算题计算题和和和和证明题证明题证明题证明题等等等等。

本课程考查的知识点本课程考查的知识点本课程考查的知识点本课程考查的知识点,,,,请参看请参看请参看请参看《《《《编译原理编译原理编译原理编译原理》》》》课程教学大纲和网课程教学大纲和网课程教学大纲和网课程教学大纲和网络版络版络版络版《《《《课程内容课程内容课程内容课程内容》》》》中各章小结部分中各章小结部分中各章小结部分中各章小结部分。

编译原理编译原理编译原理编译原理一、单选题1.文法所描述的语言是的集合。

A. 文法的字汇表V中符号组成的符号串B. 文法的字汇表V中终结符号组成的符号串C. 由文法开始符推导的符号串D. 由文法开始符推导的终结符号串D华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院32.生成能被5整除的正整数的文法G[Z]是________。

A. G[Z]: Z→AC,A→BA|B,B→0|1|2|…|9,C→0|5B. G[Z]: Z→AC,A→BA|ε,B→0|1|2|…|9,C→0|5C. G[Z]:Z→ADA0|A5,A→BA|ε,B→0|D,D→1|2|…|9D. G[Z]:Z→AC|C,A→BA|B,B→0|1|2|…|9,C→0|5C编译原理编译原理编译原理编译原理3.符号串ab1b2是文法G[A]:A→aB, B→bB|b的句子,该句子的句柄是________。

A.b1B.b2C.aD.b1b2A解释:B华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院4aBb1Bb2编译原理编译原理编译原理编译原理4.LL(1)文法中第一个L表示________。

A.最左推导B.最左归约C.从左到右识别输入串D.规范归约C华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院55.对于LR(0)分析法,语法分析栈中存放的状态是识别规范句型_______的DFA状态。

A.前缀B. 活前缀C. LR(0)项目D. 句柄B编译原理编译原理编译原理编译原理6.算符文法是指的文法。

①没有形如U→...VW...的规则(U,V,W∈VN)②VT中任意两个符号之间至多存在一种算符优先关系③没有相同右部的规则④没有形如U→ε的规则A. ①B. ①和②C. ①、②和③D. ①、②、③和④A华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院6A.①B. ①和②C. ①、②和③D. ①、②、③和④7.下述语句类中,____________在编译阶段通常不产生可执行代码。

A.变量说明语句B.流程控制语句C.输入输出语句D.赋值语句A编译原理编译原理编译原理编译原理8.在编译程序采用的优化方法中,是在循环语句范围内进行的。

①合并已知常量②删除多余运算③删除归纳变量④运算强度削弱⑤代码外提A.①④B.①⑤C.①④⑤D.③④⑤D华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院79.程序的基本块是指_______。

A. 不含无条件转移语句的程序段B. 不含条件转移语句的程序段C. 不含停机的语句程序段D. 仅含有一个入口语句和一个出口语句的顺序程序段D编译原理编译原理编译原理编译原理二、多选题1.符号串dbb是给定文法G[A]:A→dBC,B→aB| ε,C→bC|b的句子,试问其活前缀包括。

A.εB.dC.dbD.dbbA、B注解注解注解注解::::符号串符号串符号串符号串dbbdbbdbbdbb可归约前缀为可归约前缀为可归约前缀为可归约前缀为dddd。

华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院82.已知字母表Σ={a ,b},下列________是字母表Σ上的正规式。

A.ab+aB.abc|b*C.(a|b)*D.εC、D编译原理编译原理编译原理编译原理3.常见的自底而上语法分析方法有。

A.递归下降分析B.算符优先分析C.LL(1)预测分析D.LR分析B、D4.一个文法是LR(0)文法一定也是。

A.SLR(1)文法B.LR(1)文法A、B、C华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院9A.SLR(1)文法B.LR(1)文法LR(1)文法D.OG文法注解注解注解注解::::SSSSLR(0)????SSLR((((1))????SLALR((((1)) )) ????SLR((((1))))编译原理编译原理编译原理编译原理1.设A是符号串集,则A0=ε。

()2.在形式语言中,最右推导的逆过程称为规范归约。

()3.一个语言的文法是唯一的。

()4.句型的每个直接短语都是某规则的右部。

()三三三三、、、、判断题判断题判断题判断题××××√√√√××××√√√√华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院104.句型的每个直接短语都是某规则的右部。

()5.如果语言的文法是二义性,则该语言也是二义性的。

()6.任何正规文法都是上下文无关文法。

()7.符号表的主要作用是辅助语义分析和代码生成。

()√√××××√√√√√√√√编译原理编译原理编译原理编译原理1.构造一个高级语言的词法分析程序的基本技术线路是什么?四四四四、、、、简述题简述题简述题简述题简答简答简答简答::::依据给定的源语言之单词集,设计其正规文法华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院11依据给定的源语言之单词集,设计其正规文法或正规式,之后等价地转换成非确定有穷自动机,再通过子集法将其确定化,最终将确定有穷自动机最小化,最后依据最小化的确定有穷自动机,设计词法分析程序。

编译原理编译原理编译原理编译原理五五五五、、、、填空题填空题填空题填空题1.编译程序是一种翻译程序,它将用户用高级语言编写的_______翻译成等价的_________________的目标程序。

2.有这样一个推导过程,其每一步推导都是对符号源程序源程序源程序汇编语言或机器语言汇编语言或机器语言汇编语言或机器语言汇编语言或机器语言华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院12串中最右的非终结符进行替换,我们把这种推导过程称为____________________ 。

3.属性文法中的属性分为综合属性和__________两种。

最右推导最右推导最右推导最右推导((((或规范推导或规范推导或规范推导或规范推导))))继承属性继承属性继承属性继承属性编译原理编译原理编译原理编译原理4.已知文法G[A]:A→(B)| a |ε,B→B,A | A,该文法的开始符号是___ ,非终结符号集合为______,终结符号集合为_______。

5.自下而上的语法分析方法的基本思想是从待识别的输入串开始逐步______到文法的______。

A{A,B}{(,),a}归约归约归约归约开始符开始符开始符开始符华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院136.已知文法G[S]:S→AB,A→aAb | c,B→aBb| d,则对于非终结符A,FOLLOW(A)=______。

注解:FOLLOW可以采用依据定义直接计算,或依据教材所给算法计算。

编译原理编译原理编译原理编译原理六六六六、、、、解答题解答题解答题解答题1.已知文法G[S]:S→*A,A→*∣0A1。

(1)求文法G非终结符的FIRSTVT集和LASTVT集;(2)构造文法G算符优先关系分析表,并判断G是否为算符优先文法。

解解解解::::(1)计算FIRSTVT集和LASTVT集华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院14FIRSTVT(S)={*}, LASTVT(S)={*,1}FIRSTVT(A)={0,*},LASTVT(A)={1,*}注解:FIRSTVT 集和LASTVT集可以采用依据定义直接计算,或依据教材所给算法计算。

编译原理编译原理编译原理编译原理(2) 对于S→*A,FIRSTVT(A),有:* 0,* *对于A→0A1,有:0 1对于A→0A1,FIRSTVT(A),有:00,0*对于A→0A1,LASTVT(A),有:11,* 1FIRSTVT(A)={0,*},LASTVT(A)={1,*}构造文法G算符优先关系分析表如下。

华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院15显然,文法G是OG文法、没有空规则、任何两个终结符之间至多存在一种算符优先关系。

所以文法G是算符优先文法。

构造文法G算符优先关系分析表如下。

编译原理编译原理编译原理编译原理2.试设计文法描述语言L={0n12n+1|n≥1}。

解解解解::::G(S): S →0S11∣13.已知文法G[S]:S→AB,A→aAb | ab,B→Bc | ε,试写出该文法描述的语言。

解解解解::::L(G(S)) ={anbncm︱n≥1,m≥0}华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院华中科技大学计算机学院16解解解解::::L(G(S)) ={anbncm︱n≥1,m≥0}4.将赋值语句a= b*((((c+d))))翻译成四元式。

相关文档
最新文档