语法分析_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. 语句序列