编译原理试题

发布 2024-04-16 20:05:10 阅读 6504

西南大学育才学院第10届毕业大补考《编译原理》课程考试试题(a)卷。

一、填空题(共10题,20分,每题2分)

1. 高级程序设计语言的翻译主要有两种方式和。

2. 编译程序的工作过程主要分为如下几个阶段:词法分析、语法分析、语义分析目标**生成。

3. 文法g产生的的全体是该文法描述的语言。

4. 算符优先分析法中每次归约的是当前句型的。

5. 自上而下语法分析方法中会遇到的主要问题有左递归和。

6. 假设有文法g[s]:s?sa|b,对该文法消除左递归后得到的文法为。

7. 以01结尾的二进制串的正规式描述为。

8. 属性文法中综合属性用于“自下而上”传递信息,而属性用于“自上而下”传递信息。

9. 表达式(a+b)* c的逆波兰式是。

10. 以下方法中不能够用于表示源程序中间**形式的有。

a. 语法分析树 b. 逆波兰表示法

c. 三地址** d. 抽象语法树。

二、简答题(共4题,每题5分,共20分)

1. 简述文法的形式化定义。

2. 什么是二义性文法?

3. 简述自上而下语法分析过程的含义。

4. 简述follow集合的定义。

三、综合计算题(共5题,共60分)

1. 请画出编译程序的基本结构框图。(10分)

2. 已知:基本字母表∑=,则∑*=u=,v=,u和v都是∑*的子集,请求出如下字符串集合:

uv={ u0=,u2 ={u3={ 10分)

3. 令文法为g[e]:

e? t| e+t | e-t

t? f| t*f | t/f

f? (e) |i

1)给出句子i * i + i )的最左推导和最右推导。

2)给出句子i * i + i )的的句柄。(10分)

4. 构造正规式1(0|1)*101相应的dfa。(10分)

5. 已知文法g[s]:

s?ahh?amd |d

m?ab|ε

a?am|e

1) 计算文法中每个非终结符的first集合和follow集合。(5分)

2) 判断该文法是否为ll(1)文法?(5分)

3) 构造该文法的**分析表。(10分)

一、填空题(共10题,20分,每题2分)

1. 编译、解释。

2. 中间**生成、**优化。

3. 句子。

4. 最左素短语。

5. 回溯。

6. s?bs’, s’?as’|ε

8. 继承属性。

9. ab+c*

10. a二、简答题(共4题,每题5分,共20分)

1. 简述文法的形式化定义。

文法g是一个四元组(vn,vt,p,s)。其中vn为非终结符集合,非终结符表示语法实体或语法变量;vt为终结符集合;p为产生式集合,p中每个产生式的形式为α—>其中α∈(vn∪vt )*且至少包含一个非终结符,β∈vn∪vt )*s称为文法的开始符号。

2. 什么是二义性文法?

某文法若存在一个句子对应两棵不同的语法树,则说这个文法是二义性文法。或者说,若一个文法中存在某个句子,有两个不同的最左推导或最右推导,则该文法是二义的。

3. 简述自上而下语法分析过程的含义。

所谓自上而下语法分析,是从文法的开始符号出发,反复使用各产生式,寻找“匹配”于输入符号串的推导。从语法树的角度来看,自上而下方法是从文法符号开始,将它作为语法树的根,向下逐步建立语法树,使语法树的末端结点符号串正好是输入符号串。

4. 简述follow集合的定义。

文法中非终结符a的follow集定义为:

follow(a)=。

若有s ==a,则规定#∈follow(a)。

三、综合计算题(共6题,每题10分,共60分)

1. 请画出编译程序的基本结构框图。

2. 已知:基本字母表∑=,则∑*=u=,v=,u和v都是∑*的子集,请求出如下字符串集合:

uv={aaba, aabb, abba, abbb},u0 =

u2 =uu={aaaa, aaab, abaa, abab}

u3 =uuu=(uu)u={ aaaaaa,aaabaa,abaaaa,ababaa,aaaaab,aaabab,abaaab,ababab}

3.(1)给出句子i * i + i )的最左推导和最右推导。

句子i * i + i )的最左推导为:

e==>t==>t*f==>f*f==>i*f==>i*(e) =i*(e+t) =i*(t+t)

=> i*(f+t) =i*(i+t) =i*(i+f) =i*(i+i)

句子i * i + i )的最右推导为:

e==>t==>t*f==>t*(e) =t*(e+t) =t*(e+f) =t*(e+i)

=> t*(t+i) =t*(f+i ) t*(i+i) =f*(i+i) =i*(i+i)

2)则该句子的句柄为:i

4.(1)正规式1(0|1)*101对应的nfa:

2)从nfa的初始状态x的转换过程:

重新命名状态,令ab为b,ac为c,aby为d。

得到新dfa的状态转换图如下所示:

5.(1)计算文法中每个非终结符的first集合和follow集。

非终结符 first集 follow集。

s h

m a

2)判断该文法是否为ll(1)文法。

文法不含有左递归;

对与如下产生式,候选式的first集的交集为空。

h?amd |d

m?ab|ε

a?am|e

因为ε∈first( m ),故考察first(m)与follow(m)的交集为空。

综上所述,该文法为ll(1)文法。

3)构造该文法的**分析表:(网页显示有问题)

a d b e #

s ?ah

h ?amd ?d

m ?ab ?εab

a ?am ?ε

编译原理试题

语法分析 自顶向下的分析。重点与难点。重点 自顶向下分析的基本思想,分析器总体结构,分析表的构造,递归下降分析法基本思想,简单算术表达式的递归下降分析器。难点 first和follow集的求法,对它们的理解以及在构造ll 1 分析表时的使用。递归子程序法中如何体现分析的结果。基本要求。掌握语法分析 ...

编译原理试题

编译原理模拟试题。班级姓名学号。1 20分 写出字母表 上语言l 的正规式,并画出接受该语言的最简dfa。2.10分 计算文法g m 的每个非终结符的first和follow集合,并判断该文法是否是ll 1 的,请说明理由。g mm tb t ba b db et d d 3.10分 写一个文法使其...

编译原理试题

东南大学。一 文法g1 e et t t tf f f fp p p e i1 试证明符号串tet i 是g1的一个句型 要求画出语法树 2 写出该句型的所有短语,简单短句和句柄。三 1 试写出一个上下文无关文法g3,它能产生配对的圆括号串 例如等,甚至包含0对括号 2 使用文法g3给出输入串 的自...