编译原理题-带答案

2023-10-26

一、判断题()
1.一个 LL(l)文法一定是无二义的。 ( Y)
2.正规文法产生的语言都可以用上下文无关文法来描述。 ( N)
3.一张转换图只包含有限个状态,其中有一个被认为是初态,最多只有一个终态。 ( Y)
4.目标代码生成时,应考虑如何充分利用计算机的寄存器的问题。 ( N)
5.逆波兰法表示的表达式亦称前缀式 。 (Y )
6.如果一个文法存在某个句子对应两棵不同的语法树,则称这个文法是二义的。 (Y )
7.LR 法是自顶向下语法分析方法。 ( N)
8.数组元素的地址计算与数组的存储方式有关。( N)
9.算符优先关系表不一定存在对应的优先函数。 (N )
10.对于数据空间的存贮分配, FORTRAN 采用动态贮存分配策略。 (N )
参考答案:
1、× 2、× 3、√ 4、× 5、√
6、√ 7、× 8、× 9、× 10、×

二. 填空题(每空 2 分,共 20 分)

  1. 不同的编译程序关于数据空间的存储分配策略可能不同,但大部分编译中采用的方案有两种:静态存储分配方案和动态存储分配方案,而后者又分为(1) 和 (2) 。
  2. 规范规约是最(3)规约。
  3. 编译程序的工作过程一般划分为 5 个阶段:词法分析、(4) 、语义分析与中间代码生成,代码优化及(5) 。另外还有(6)和出错处理。
    4.表达式 x+yz/(a+b)的后缀式为 (7) 。
    5.文法符号的属性有综合属性和 (8)。
    6.假设二位数组按行存放,而且每个元素占用一个存储单元,则数组 a[1…15,1…20]某个元素 a[i,j]的地址计算公式为(9)。
    7.局部优化是局限于一个(10)范围内的一种优化。
    答案:
    (1) 栈式动态存储分配
    (2) 堆式动态存储分配
    (3) 左
    (4) 语法分析
    (5) 目标代码生成
    (6) 表格管理
    (7) xyz
    ab+/+
    (8) 继承属性
    (9) a+(i-1)*20+j-1
    (10) 基本块

三. 选择题(每问 2 分,共 20 分)

  1. 一个上下文无关文法 G 包括四个组成部分:一组终结符,一组非终结符,一个(C ),以及一组 产生式。
    A. 字符串 B. 产生式 C. 开始符号 D. 文法

2.程序的基本块是指(D )。
A. 一个子程序 B. 一个仅有一个入口和一个出口的语句
C. 一个没有嵌套的程序段 D. 一组顺序执行的程序段,仅有一个入口和一个出口

  1. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于( B)分析方法。
    A. 自左向右 B. 自顶向下 C. 自底向上 D. 自右向左

4.在通常的语法分析方法中,(A )特别适用于表达式的分析。
A. 算符优先分析法 B. LR 分析法
C. 递归下降分析法 D. LL(1)分析法

5.经过编译所得到的目标程序是( D)。
A. 四元式序列 B. 间接三元式序列
C. 二元式序列 D. 机器语言程序或汇编语言程序
6. 设有文法 G[I]: I I → I1|I0|Ia|Ic|a|b|c
下列符号串中是该文法句子的有( B)。
① ab0 ② a0c01 ③ aaa ④ bc10
可选项有:
A. ① B.②③④ C.③④ D.①②③④
7.程序的基本块是指( D)。
A. 一个子程序 B. 一个仅有一个入口和一个出口的语句
C. 一个没有嵌套的程序段 D. 一组顺序执行的程序段,仅有一个入口和一个出口
8. 高级语言编译程序常用的语法分析方法中,递归下降分析法属于(B )分析方法。
A. 自左向右 B. 自顶向下 C. 自底向上 D. 自右向左
9.经过编译所得到的目标程序是( D)。
A. 四元式序列 B. 间接三元式序列
C. 二元式序列 D. 机器语言程序或汇编语言程序
10. 运行阶段的存储组织与管理的目的是( C)。
① 提高编译程序的运行速度 ② 节省编译程序的存储空间
③ 提高目标程序的运行速度 ④ 为运行阶段的存储分配做准备
可选项有:
A. ①② B. ②③ C. ③④ D. ④②
四、简答题(每题10分,共30分)

  1. 已知文法 G[S] 为:
    S→dAB
    A→aA|a
    B→Bb|ε
    G[S] 产生的语言是什么?
    参考答案:
    答:G[S]产生的语言是L(G[S])={danbm│n≥1,m≥0}。

  2. 简述 DFA 与 NFA 有何区别 ?
    参考答案:
    答:DFA与NFA的区别表现为两个方面:一是NFA可以若干个开始状态,而DFA仅只一个开始状态。 另一方面,DFA的映象M是从K×∑到K,而NFA的映象M是从K×∑到K的子集, 即映象M将产生一个状态集合(可能为空集),而不是单个状态。

  3. 何谓优化?按所涉及的程序范围可分为哪几级优化?
    参考答案:
    (1)优化:对程序进行各种等价变换,使得从变换后的程序出发,能产生更有效的目标代码。         
    (2) 三种级别:局部优化、循环优化、全局优化。

五、计算题(共20分)
考虑以下文法:
D → T V
T → int | float
V → id ,V | id
在该文法中提取左公因子。
为所得的文法的非终结符构造First集合和Follow集合。
说明所得的文法是LL(1)文法。
为所得的文法构造LL(1)分析表
假设有输入串 int x,y,z 写出相应的LL(1)分析程序的动作
答案:
a. 文法存在左公因子,提取左公因子后的文法为:
   D → T V
T → int | float
V → id V’
V’→ ,V |ε

b.
非终结符
First集合
Follow集合

D
{ int , float }
{ $ }

T
{ int , float }
{ id }

V
{ id }
{ $ }

V’
{ , , ε }
{ $ }

c. (1) First ( TV ) = { int , float }
First(int) ∩ First(float)={int}∩{float}=φ;
First(id V’)={id};
First(,V) ∩First(ε)={,} ∩{ ε}}=φ;
(2) V’=>ε,
First(V’)∩Follow(V’)= { , , ε }∩{ $ }=φ
根据LL(1)文法的定义判断,此文法是LL(1)文法;

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

编译原理题-带答案 的相关文章

随机推荐

  • tftp服务器权限配置文件,tftp服务器权限配置

    tftp服务器权限配置 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 本课程主要针对openEuler操作系统工程师在基
  • VUE-element-admin之配置多级路由菜单

    步骤 routers js中添加如下代码 path usermanagement alwaysShow true 是否显示父级 如果为false则只显示最内层菜单 默认false component Layout hidden false
  • NIO、AIO、BIO的区别

    一 同步阻塞I O BIO 同步阻塞I O 服务器实现模式为一个连接一个线程 即客户端有连接请求时服务器就需要启动一个线程进行处理 如果这个连接不做任何事情会造成不必要的线程开销 可以通过线程池机制来改善 BIO方式适用于连接数目比较少且固
  • Springboot配置的端口号不起作用

    在application yml文件中 进行了如下配置 server port 32088 spring profiles active dev spring application name consul client 启动项目后发现 端
  • ElasticSearch基础(一)

    ElasticSearch 适用场景 日志可视化 ELK组合 方便查询定位业务问题 存储非结构化数据 有些场景存储复杂嵌套的关系类型 使用关系型数据库联合查询将会很繁琐 并且影响性能 这时ElasticSearch是个不错的选择 全文搜索引
  • 分频电路的实现:奇数分频、偶数分频和小数分频

    目录 偶数分频 奇数分频 N 0 5分频 任意小数分频 偶数分频 偶数分频是最简单的 N分频需要计数到 N 1 并在 N 2 1 和 N 1 处更改输出的取值即可 只需要单一时钟沿计数 下面是四分频电路的实现 代码 module div4
  • 【满分】【华为OD机试真题2023B卷 JAVA&JS】数据分类

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 数据分类 知识点位运算 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 对一个数据a进行分类 分类方法为 此数据a 四个字节大小 的四个字节相加对一个给定的值b取模 如
  • 地理信息安全在线培训考试系统题库-填空题

    第1题 依据 中华人民共和国保守国家秘密法实施条例 定密授权应当以 书面 形式作出 第2题 机关 单位对符合保密法的规定 但保密事项范围没有规定的不明确事项 应当先行拟定密级 保密期限和知悉范围 采取相应的保密措施 并自拟定之日起 10 日
  • 嵌入式 Linux 入门(六、Shell 脚本编程下:Shell 脚本语法)

    嵌入式 Linux 入门第六课 继续完成 Shell 脚本学习 本文学习 Shell 脚本语法 矜辰所致 前言 上文我们初次认识了 Shell 脚本 本文我们就要学习 Shell 脚本的语法 争取做到学完本文 你也会写 Shell 脚本 g
  • linux达芬奇安装教程,在Linux系统中能安装和运行达芬奇DaVinci Resolve 17版本

    如果你想在Linux系统中安装达芬奇DaVinci Resolve 17版本和运行它 请按以下说明操作 以下以Deepin 20 2为例 也适用在Ubuntu 20 04 UOS Debian发行版中 注意事项 其实安装达芬奇17最容易出问
  • 窈窕如烟秋水流转——同人立绘征集大赛赵婵雪·金奖

    导语 本期介绍的作品是由来自江西科技师范大学软件动漫学院的裴欣怡设计的赵婵雪形象 荣获了本次大赛赵婵雪组别的金奖 2020年12月22日 由首都版权协会联合全国部分高等院校和链游玩家及部分企业共同举办的 2020同人立绘征集大赛 正式启动
  • 为什么很多程序员 到了30来岁 就面临失业,这是真实存在的?

    前言 最近老是能在某乎上看到这样的热点问题 35 岁很多人会失业 究竟是危言耸听 还是真实存在的 为什么会有这样的情况 现在社会上有一种流行的说法 那就是在35岁左右的年龄段 许多人可能会面临失业的风险 这种说法是否夸大其词 或者确实是真实
  • ES 教程

    ES快速入门 一篇就懂 如何用Elasticsearch实现Word PDF TXT文件的全文内容检索
  • el-table 实现单元格内编辑功能

    el table 实现单元格内编辑功能 功能 双击单元格出现编辑框 编辑框失去焦点后保存内容 原理 通过v if控制编辑框与显示值显示和隐藏 通过el table 组件 的cell dblclick事件 得到row column的数据 并且
  • 使用ETL工具Kettle实现,把一个数据库中的多张表的数据同步到另外一个数据库中

    需求 使用ETL工具Kettle实现 把一个数据库中的多张表的数据 不少于3张表 同步到另外一个数据库中 1 使用Kettle工具连接MySQL数据库 连接第一个数据库db03 出现圈3说明连接成功 依次点击 转换 gt 主对象树 gt D
  • csgo服务器找不到,csgo社区服务器进不去解决方法

    近期有玩家在玩csgo的时候遇到了一些小问题 他们在询问 csgo社区服务器进不去怎么办 今天小编就带来csgo社区服务器进不去解决方法 希望对大家能有所帮助 csgo社区服务器进不去解决方法 好几个人喊进不去服务器 提示什么会话错误什么的
  • 无盘服务器秒卡 锐起0359,锐起无盘系统问题汇集

    锐起无盘系统问题汇集 锐起无盘系统问题汇集 说难也不难 上手快 但是做好难 随着大家做锐起的 时间长了 各种各样的问题都出现了 下面我说最常见的问题 无限滚动 这个很常见 有些人勾选了锐起自带的网卡pnp 导致无限滚动 这类问题最多 还有一
  • JavaWeb-实体类对象嵌套实体类对象的查询

    1 1 实体类代码 Cart类 购物车类 public class Cart 自增的购物车记录id private int cid 用户id private int uid 产品id private int pid 产品数量 private
  • C# 中的委托和事件(详解) ....

    C 中的委托和事件 委托和事件在 NET Framework 中的应用非常广泛 然而 较好地理解委托和事件对很多接触 C 时间不长的人来说并不容易 它们就像是一道槛儿 过了这个槛的人 觉得真是太容易了 而没有过去的人每次见到委托和事件就觉得
  • 编译原理题-带答案

    一 判断题 1 一个 LL l 文法一定是无二义的 Y 2 正规文法产生的语言都可以用上下文无关文法来描述 N 3 一张转换图只包含有限个状态 其中有一个被认为是初态 最多只有一个终态 Y 4 目标代码生成时 应考虑如何充分利用计算机的寄存