编译原理期末考试试卷(A卷)
编译原理期末考试试卷(A卷) 、简述编译程序的工作过程。(10) 二、构造下列正规式相应的DFA (用状态转换图表示)(15) (1) 1 (0| 1) *100 (2) 0*10*10*10*1 (3) letter (letter | digit) * 三、给出下面语言的相应文法:(15) Li=(an bn| nNl}L2=(anbm+nam | nNl, mNO} 四、对下面的文法G: S-a|b| (T) T—T, S | S (1) 消去文法的左递归,得到等价的文法G2; (2) 判断文法G2是否LL (1)文法,如果是,给出其预测分析表。(15) 五、设有文法G[A]: A一BCc | gDB B—bCDE | e C—DaB | ca D—dD | e E—gAf | c (1) 计算该文法的每一个非终结符的FIRST集和FOLLOW集; (2) 试判断该文法是否为LL (1)文法。(15) 六、对表达式文法G: E — E+T|T T — T*F|F F - (E) 11 (1) 造各非终结符的FIRSTVT和LASTVT集合; 构造文法的算符优先关系表。(15) 七、有定义二进制整数的文法如下: L 一 LB | B B —0 | 1 构造一个翻译模式,计算该二进制数的值(十进制的值)。(15) 简述编译程序的工作过程。(10) 编译程序的工作过程,是指从输入源程序开始到输出目标程序为止的整个 过程,是非常复杂的,就其过程而言,一般可以划分为五个工作阶段:① 词法分析,对构成源程序的字符串进行扫描和分解,识别出一个个的单词; ② 语法分析,根据语言的语法规则,把单词符号串分解成各类语法单位; ③ 语义分析与中间代码产生,即对各类语法单位,分析其汉一并进行初步 翻译;④代码优化,以期产生更高效的代码;⑤目标代码生成,把中间代 码变换成特定机器上的低级语言指令形式。 二、构造下列正规式相应的DFA (用状态转换图表示)(15) (4)1 (0| 1) *1 三、给出下面语言的相应文法:(15) L2=(anbm+nam | nNl, mNO} Li=(an bn| nNl} Gl: A—aAb | ab Gl: S—AB A—aAb | ab B-*bBa | e 四、对下面的文法G: S-a|b| (T) T—T, S | S (1) 消去文法的左递归,得到等价的文法G2; (2) 判断文法G2是否LL (1)文法,如果是,给出其预测分析表。(15) G2: S-a b | (T) T— ST, T 一,S T e G2是LL (1)文法。 a b ( ) S S—a S-b S — (T) T T一 ST T— ST T一 ST T, T 一 £ T 一,S T, 五、设有文法G[A]: A一BCc | gDB B—bCDE | e C—DaB | ca D—dD | e E—gAf | c (1) 计算该文法的每一个非终结符的FIRST集和FOLLOW集; (2) 试判断该文法是否为LL (1)文法。(15) FIRST FOLLOW A A, b, c, d, g B b A, c, d C A, c, d C, d, g D D A, b, c, g E C, g 是LL (1)文法。 六、对表达式文法G: E 一 E+T|T T 一 T*F|F F —(E) 11 (1)造各非终结符的FIRSTVT和LASTVT集合; (2)构造文法的算符优先关系表。(15) FIRSTVT LASTVT E *, +, (, i *, +,), i T *, (, i *,), i F (,i ),i 算符优先关系表 + * I ( ) # + * I ( ) # > > > > > > > > > 七、有定义二进制整数的文法如下: L —LB | B B 一0 | 1 构造一个翻译模式,计算该二进制数的值(十进制的值)。(15) 引入L、B的综合属性val,翻译模式为: S—L(print (L. val)) L—LiB{L. val= Li. val*2+B. val} L—B(L. val= B. val} B一0{B. val=O} B 一 1(B. val=l}