《编译原理与技术》期末考试

一、单选题

1、以编译方式和解释方式对高级语言源程序进行翻译时,( )。

A.编译方式不生成源程序的目标代码,解释方式生成源程序的目标代码

B.编译方式生成源程序的目标代码,解释方式不生成源程序的目标代码

C.编译方式和解释方式都生成源程序的目标代码

D.编译方式和解释方式都不生成源程序的目标代码

2、在自下而上语法分析中,LR(1)中的 L 表示( )。

A.从左到右扫描输入序列

B.最左推导

C.最左归约

D.最右推导

3、一个句型中的最左( )称为该句型的句柄。

A.短语

B.直接短语

C.非终结符号

D.终结符号

4、给定文法 A→bA|ab,( )是该文法的句子。

A.babb

B.abab

C.baab

D.bbab

5、用来描述控制进入和离开活动的树结构被称为( )。

A.语法树

B.分析树

C.活动树

D.嵌套关系树

二、填空

1、在以阶段划分的编译器中,识别单词的阶段称为________ ,识别句子结 构并将其表示成树形式的阶段称为______ ,贯穿整个编译过程的两个辅助过程 (阶段)为 ______ 和 ______ 。编译器前端生成的既接近目标语 言,又与具体机器无关的表示称为______ 。

2、将机器语言翻译成汇编语言的过程称为 ______。

3、 上 下 文 无 关 文 法 G 的 四 元 组 ( N,T,P,S 中 , T 表 示______ , P 表 示______.

4、设有二维数组 M[20,10] 以行为主存放,数组元素下标从 1 开始,每个元素占 1 个存 储单元,元素 M[8,5]相对于该数组空间首地址的偏移量为______ 。

5、在值调用参数传递方式中,参数传递是指______ 。

三、简答题

简述由正规式构造词法分析器的一般方法和过程

1、简述由正规式构造词法分析器的一般方法和过程

2、对于文法 G:

        E → E + T | T

        T → T * F | F

        F → (E)| num

请给出句型 T*(E+5)的分析树,并指出该句型中的所有短语、直接短语和句柄。

3、请给出下述表达式的后缀式与语法树。

        x := 2*(4+5)/3 - 6

4、请给出函数 foo 调用时分别采用传值调用和引用调用方式时代码的输出结果。

program main(input,output)
    procedure foo(a,b)
    begin
        a := a + 2;
        b := a * 5 - b;
    end;
begin
    x := 4; y := 7;
    foo(x, y);
    print(x,y);
end

四、计算题

1、某 NFA 的状态转换图如下表所示  (0 是初态,4 是终态)

《编译原理与技术》期末考试_第1张图片

 (1)用“子集法”把该 NFA 确定化为 DFA D;

(2)将 DFA D 最小化。

2、设有上下文无关无法G及其语法制导翻译如下(注:G中终结符id仅由单个英文字母 组成,如a, b等):

E→E1*T         {E.place=newtemp; emit(*, E1.place, T.place, E.place;}

        | T {E.place=T.place;}

T→T1-F {T.place=newtemp; emit(-, T1.place, F.place, T.place;}

        | F {T.place=F.place;}

F→id {F.place=id.name;}

(1)当 a=5、b=2、c=4 时,写出表达式 a-b*c 的结果;(*表示算术乘、-表示算术减)

(2)给出文法 G 识别活前缀的 DFA,简要说明该 DFA 的项目集中是否有冲突及冲突的 类型。

《编译原理与技术》期末考试_第2张图片

 

你可能感兴趣的:(java)