语法分析_1
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
该文法句型T*P↑(T*F)的句柄是下列符号串 。
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. 移进/归约
D. 归约/归约
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. 语句序列