《编译原理与技术》期末考试 (综合大作业)

一、单项选择题

1、程序设计语言可划分为低级语言和高级语言两大类。与高级语言相比,用低级语言 开发的程序,其    

A .运行效率低,开发效率低      B .运行效率低,开发效率高

C .运行效率高,开发效率低      D .运行效率高,开发效率高

2、编译过程中 ,(    阶段不是必需的。

A .语法分析      B .语义分析      C .代码优化      D  目标代码生成

3、对于正规式(a|b)*abb,属于其所表示正规集的是    

A aaabbb            B abab             C bbbaaa            D ababb

4、有限状态自动机可以识别的语言为    

A .上下文有关语言          B .上下文无关语言

C .短语文法定义的语言      D .正规文法定义的语言

5 、一个句型中的最左    称为该句型的句柄。

A .短语      B .直接短语      C 非终结符号      D .终结符号

6、    是与规范归约(最左归约)互逆的一个过程。

A .最左推导      B .最右推导      C .词法分析      D .语义分析

7、与逆波兰式 ab+c*d+对应的中缀表达式    

A a+b+c*d            B (a+b)* c+d             C (a+b)* (c+d)            D a+b*c+d

8、在表达式 x:=y+1 ,(    作为左值出现(其中,“:= ”表示赋值)。

A x            B y            C 1            D y+1

9、为数组声明 a:array[1..4, 0..3] a 分配的存储空间的首地址为 base_a ,且每个数组元 素占据一个存储单元。若以行为主存放,数组元素 a[3,1]在存储空间中相对 base_a 的偏移量

    

A 8            B 9            C 10            D 11

10、用来描述控制进入和离开活动方式的树结构被称为    

A .语法树      B .分析树      C .活动树      D .嵌套关系树

二、填空题(每空 2 分,  10 分)

1、Yacc 常用于编译的         阶段。

2、CFG 的定义包含有终结符集合、非终结符集合、____ ____ 

3、参数传递的方法有值调用、 ____   、复写恢复、换名调用。其中,C 语言中 void swap(int *a, int *b)的参数传递方式是_____ 

三、简答题(每小题 10 分,共 40 分)

1、为什么在一般情况下用正规式而不用 CFG 来描述语言的词法?

2、请简要说明进行自上而下的语法分析时, 文法中为什么不能有左递归和公共左因子。

3、举例说明下述文法 G 是二义的。有哪些方法可以消除文法的二义性。

4、给出语句 if (b>0) then while (a>b) do a:=a-1 else a:=a+b;的中间代码序列

五、综合题(每小题 15 分,  30 分)

1、有 NFA N 如下图所示。

(1)(9 分)求出 N 的最小 DFA D

2)(6 分)给出 N 所识别语言的正规式 r

2、设文法 GS→aA

A→Abc | c

1)(9 分)拓广该文法并构造基于 LR(0)项目的、能识别其所有活前缀的 DFA

2)(6 分)该文法是否是 LR0)文法?是否为 SLR(1)文法?为什么?

点击关注,发消息

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_70752559

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值