技术标签: MOOC 哈工大 陈鄞 答案 答案解析系列 编译原理
【最新合集】MOOC哈工大陈鄞 编译原理答案全集——>传送门
1 如果文法G是无二义的,则它的任何句子α( )。
A. 最左推导和最右推导对应的语法树必定相同
B. 最左推导和最右推导对应的语法树可能不同
C. 最左推导和最右推导必定相同
D. 可能存在两个不同的最左推导,但它们对应的语法树相同
2 采用自上而下分析,不必( )。
A. 消除回溯
B. 消除左递归
C. 消除右递归
D. 提取公共左因子
3 识别上下文无关语言的自动机是( )。
A. 下推自动机
B. NFA
C. DFA
D. 图灵机
4 ( )文法不是LL(1)的。
A. 递归
B. 右递归
C. 2型
D. 含有公共左因子的
5 已知文法G是无二义的,则对G的任意句型α( )。
A. 最左推导和最右推导对应的语法树必定相同
B. 最左推导和最右推导对应的语法树可能相同
C. 最左推导和最右推导必定相同
D. 可能存在两个不同的最左推导,但他们对应的语法树相同
6 在自上而下的语法分析中,应从( )开始分析。
A. 句型
B. 句子
C. 文法开始符号
D. 句柄
7 一个文法G,若( ),则称它是LL(1)文法。
A. G中不含左递归
B. G无二义性
C. G的LL(1)分析表中不含多重定义的条目
D. G中产生式不含左公因子
8 语法分析器的输入是()。
A. Token序列
B. 源程序
C. 目标程序
D. 符号表
9 在递归子程序方法中,若文法存在左递归,则会使分析过程产生( )。
A. 回溯
B. 非法调用
C. 有限次调用
D. 无限循环
10 LL(1)分析法中“1”的含义是在输入串中查看一个输入符号,其目的是( )。
A. 确定最左推导
B. 确定句柄
C. 确定使用哪一个产生式进行展开
D. 确定是否推导
语法分析_2
1 在语法分析处理中,FIRST集合、FOLLOW集合均是( )。
A. 非终结符集
B. 终结符集
C. 字母表
D. 状态集
2 在编译过程中,如果遇到错误应该( )。
A. 把错误理解成局部的错误
B. 对错误在局部范围内进行纠正,继续向下分析
C. 当发现错误时,跳过错误所在的语法单位继续分析下去
D. 当发现错误时立即停止编译,待用户改正错误后再继续编译
3 已知文法G[S]:
S→eT|RT T→DR|ε R→dR|ε D→a|bd
求FIRST(S)=()。
A. {e }
B. {e,d,a,b}
C. {e,d }
D. {e,d,a,b,ε}
4 已知文法G[S]:
S→eT|RT T→DR|ε R→dR|ε D→a|bd
求FOLLOW(D)=()。
A. {d,e}
B. {d,ε}
C. {d,$}
D. {a,d}
5 FIRST集中可以含有ε。
A. 对
B. 错
6 FOLLOW集中可以含有ε。
A. 对
B. 错
7 SELECT集中可以含有ε。
A. 对
B. 错
语法分析_3
1 若a为终结符,则A→α · aβ为( )项目。
A. 归约
B. 移进
C. 接受
D. 待约
2 一个句型中的( )称为该句型的句柄。
A. 最左直接短语
B. 最右直接短语
C. 终结符
D. 非终结符
3 在自底向上的语法分析方法中,分析的关键是( )。
A. 寻找句柄
B. 寻找句型
C. 消除递归
D. 选择候选式
4 在自顶向下的语法分析方法中,分析的关键是( )。
A. 寻找句柄
B. 寻找句型
C. 消除递归
D. 选择候选式
5 若B为非终结符,则 A→a · Bb 为( )。
A. 移进项目
B. 归约项目
C. 接受项目
D. 待约项目
6 在规范归约中,用( )来刻画可归约串。
A. 直接短语
B. 句柄
C. 最左素短语
D. 素短语
7 若B为非终结符,则A→α·Bβ为( )项目。
A. 归约
B. 移进
C. 接受
D. 待约
8 下列动作中,不是自下而上分析动作的是( )。
A. 移进
B. 展开
C. 接受
D. 报错
9 下列动作中,不是自上而下分析动作的是( )。
A. 匹配
B. 展开
C. 移进
D. 报错
10 若B为非终结符,则A→α· 为( )项目。
A. 归约
B. 移进
C. 接受
D. 待约
11 设有文法G[T]:
T→T*F|F
F→F↑P|P
P→(T)|a
该文法句型TP↑(TF)的句柄是下列符号串 。
A. (T*F)
B. T*F
C. P
D. P↑(T*F)
12 LR分析表中的转移表(goto)是以()作为列标题的。
A. 终结符
B. 非终结符
C. 终结符或非终结符
D. 表示状态的整型数
13 LR分析表中的动作表(action)是以( )作为列标题的。
A. 终结符
B. 非终结符
C. 终结符或非终结符
D. 终结符和结束符$
14 下列项目中为可归约项目的是()。
A. E′→· E
B. L→·
C. L→-· L
D. F→L*· F
15 LR分析器的核心部分是一张分析表,该表由( )组成。
A. ACTION表
B. GOTO表
C. 预测分析表
D. ACTION表和GOTO表
语法分析_4
1 一个LR(1)文法合并同心集后若不是LALR(1)文法( )
A. 则可能存在移进/归约冲突
B. 则可能存在归约/归约冲突
C. 则可能存在移进/归约冲突和归约/归约冲突
D. 以上说法都不对
2 若状态k含有项目“A→α· ”,且仅当输入符号a∈FOLLOW(A)时,才用规则“A →α”归约的
语法分析方法是( )。
A. LALR分析法
B. R(0)分析法
C. LR(1)分析法
D. SLR(1)分析法
3 LR(1)文法都是( )。
A. 无二义性且无左递归
B. 可能有二义性但无左递归
C. 无二义性但可能是左递归
D. 可以既有二义性又有左递归
4 同心集合并可能会产生新的( )冲突。
A. 二义
B. 移进/移进
C. 移进/归约
5 就文法的描述能力来说,有( )。
A. SLR(1) ⊂ LR(0)
B. LR(1) ⊂ LR(0)
C. SLR(1) ⊂ LR(1)D. 无二义文法 ⊂ LR(1)
6 在LR(0)的Action表中,如果某行中存在标记为“rj”的栏,则( )。
A. 该行必定填满“rj” B. 该行未必填满“rj”C. 其他行可能也有“rj”
D. goto表中也可能有“rj”
7 若状态k含有项目“A→α·”,对任意非终结符a,都用规则“A →α”归约的语法分析方法是(
)。
A. LALR分析法
B. LR(0)分析法
C. LR(1)分析法
D. SLR(1)分析法
8 在SLR( 1)的Action表中,如果某行中存在标记为“rj”的栏,则( )。
A. 该行必定填满“rj”
B. 该行未必填满“rj”C. 其他行可能也有“rj”
D. goto表中也可能有“rj”
9 若状态k含有项目“A→α·”,且仅当输入符号a∈FOLLOW( A)时,才用规则“A →α”归约的语
法分析方法是( )。
A. LALR分析法
B. LR(0)分析法
C. LR(1)分析法
D. SLR(1)分析法
10 编译程序的语法分析器必须输出的信息是( )。
A. 语法规则信息
B. 语法错误信息C. 语法分析过程
D. 语句序列
整理不易, 如果对你产生了帮助, 还请点个赞哦~ Thanks♪(・ω・)ノ
文章浏览阅读9.7w次,点赞2次,收藏7次。Spring报错:Error creating bean with name的解决方法_error creating bean with name 'org.springframework.transaction.annotation.pr
文章浏览阅读689次。2017高考全国1卷数学流程图_2017年高考数学全国一卷的流程图题怎么算
文章浏览阅读546次。测试代码实现效果_class统一设置setter
文章浏览阅读5.2k次。现在,python语言可以说是非常火热的语言之一。很多人开始学习python,下面我将和大家说说,python用什么软件编写。Python开发软件可根据其用途不同分为两种,一种是Python代码编辑器,一种是Python集成开发工具,两者的配合使用可以极大的提高Python开发人员的编程效率,以下是常用的几款Python代码编辑器和Python集成开发工具。一、Python代码编辑器1. Subl..._python敲代码用什么软件
文章浏览阅读2.4k次。接口package mainimport "fmt"type Test interface { Print() Sleep()}type Student struct { name string age int score int}/*student实现接口Print方法*/func (p Student) Print() {_go 结构体转为接口类型
文章浏览阅读402次。http://fengqing888.blog.163.com/blog/static/3301141620117205563951/ 转载于:https://blog.51cto.com/584250550/1187682_puppy linux ssh
文章浏览阅读5.5k次。JDBC通过文件读取加载方式连接数据库(以MySQL为例)前言: 在java项目开发中,必然会经常使用到数据库连接,并且数据库的种类也不尽相同,另外JDBC(java DataBase Connectivity :java数据库连接)的方式也有很多种方式。所以本博文是以文件读取加载方式连接数据库,这种方式的好处在于当数据库驱动,地址或者用户名密码发生变动时,只需要在文件里改动即可,而不需要在代码里改_jdbc 加载本地文件到
文章浏览阅读3.3k次。$f$在$(x_0,x_2)$上四阶可导,且在$[x_0,x_2]$上三阶导函数连续.则\begin{equation} \int_{x_0}^{x_2}f(x)dx=\frac{h}{3}[f(x_0)+4f(x_1)+f(x_2)]-\frac{h^5}{90}f^{(4)}(\xi) \end{equation}其中$h=x_1-x_0=x_2-x_1$.证明:我们仍然进行牛顿插..._辛普森公式误差怎么求
文章浏览阅读103次。简要说明烟雨红尘小说网 https://wap.zuxs.net/在C语言、C++等方向面试时,经常会被问道 进程、线程等问题,当然了10年前我刚开始找工作那会,也是各种煎熬“我又不写操作系统,为什么还要学这么底层的知识”,真想不通面试官是不是sha。。。转眼间,我现在成了面试官,你说可笑不。。。。世事变化无常啊。。。。为了让各位小伙伴把这块理解了,所以趁一个空闲时机把它们的对..._问什么进程比线程 重量
文章浏览阅读1.1w次。 定义Color枚举类:package testEnum;public enum Color { RED(0,"红色"), BLUE(1,"这是蓝色"), YELLOW(2,"这是黄色"), GREEN(3,"这是绿色"); //可以看出这在枚举类型里定义变量和方法和在普通类里面定义方法和变量没有什么区别。 //唯一要注意的只是变量和方法定义必须放在所有枚举值定义..._enumdemo
文章浏览阅读1.7w次,点赞4次,收藏19次。1.首先在HBuilder里面配置外部服务器2.绑定你的项目,即在下面圈选的地方写上你项目的完整路径3.点击下面的图标运行你的项目注意:到此处就成功了。..._hbuilder运行php
文章浏览阅读4.6k次,点赞5次,收藏39次。安装arduino扩展首先下载arduino IDE并安装。然后打开VScode安装arduino扩展“File”-“Preference”-“settings”打开设置窗口,输入arduino搜索,往下拉找到arduino Path,把刚才arduino IDE的安装路径复制进去,注意要将 “\” 改为 “/”打开或新建.ino文件,我这里使用自带的Blink例程来测试。打开.ino后,点击右下角来配置编程器、开发板参数、COM口,和在arduino IDE中一样。这些配置和安信_vscode开发esp8266