1、编译原理期末考试试卷(A卷)一、 简述编译程序的工作过程.(10)二、构造下列正规式相应的DFA(用状态转换图表示)(15)(1) 1(0 1)100(2) 010*10*10*1(3) letter(letter digit)三、给出下面语言的相应文法:(15)L1=an bn | n1 L2=anbm+nam | n1,m0四、对下面的文法G: Sa | b | (T)TT,S S(1) 消去文法的左递归,得到等价的文法G2;(2) 判断文法G2是否LL(1)文法,如果是,给出其预测分析表。(15)五、设有文法GA:ABCc gDBBbCDE |CDaB caDdD EgAf c(1) 计
2、算该文法的每一个非终结符的FIRST集和FOLLOW集;(2) 试判断该文法是否为LL(1)文法。(15)六、对表达式文法G:E E+T TT T*F FF (E) I(1)造各非终结符的FIRSTVT和LASTVT集合;(2)构造文法的算符优先关系表。(15)七、有定义二进制整数的文法如下:L LB BB 0 | 1 构造一个翻译模式,计算该二进制数的值(十进制的值)。(15)简述编译程序的工作过程。(10)编译程序的工作过程,是指从输入源程序开始到输出目标程序为止的整个过程,是非常复杂的,就其过程而言,一般可以划分为五个工作阶段:词法分析,对构成源程序的字符串进行扫描和分解,识别出一个个的
3、单词;语法分析,根据语言的语法规则,把单词符号串分解成各类语法单位;语义分析与中间代码产生,即对各类语法单位,分析其汉一并进行初步翻译;代码优化,以期产生更高效的代码;目标代码生成,把中间代码变换成特定机器上的低级语言指令形式.二、构造下列正规式相应的DFA(用状态转换图表示)(15)(4) 1(0 | 1)*10,1(5) 010*10*10*1(6) letter(letter digit)*31021(1)0051(2)104130211letter(3)2letter1digit三、给出下面语言的相应文法:(15)L1=an bn n1 L2=anbm+nam n1,m0 G1: SA
4、B AaAb | ab BbBa | G1: AaAb |ab 四、对下面的文法G: Sa | b (T)TT,S S(1) 消去文法的左递归,得到等价的文法G2;(2) 判断文法G2是否LL(1)文法,如果是,给出其预测分析表。(15)G2: Sa | b (T) T ST T,S T | G2是LL(1)文法。ab(),SSa Sb S(T)TT STT STT STTT T,S T 五、设有文法GA:ABCc gDBBbCDE |CDaB | caDdD EgAf | c(1) 计算该文法的每一个非终结符的FIRST集和FOLLOW集;(2) 试判断该文法是否为LL(1)文法。(15)F
5、IRSTFOLLOWABCDEA,b,c,d,gbA,c,dDC,gA,c,dC,d,gA,b,c,g是LL(1)文法。六、对表达式文法G:E E+T | TT T*F FF (E) I(1)造各非终结符的FIRSTVT和LASTVT集合;(2)构造文法的算符优先关系表.(15)FIRSTVTLASTVTETF,+,(,i*,(,i(,i*,+,),i*,),i),i算符优先关系表+*I()+*I()=七、有定义二进制整数的文法如下:L LB BB 0 | 1构造一个翻译模式,计算该二进制数的值(十进制的值)。(15)引入L、B的综合属性val,翻译模式为: S L print(L.val)L L1B L.val= L1.val2+B.valL B L.val= B。valB 0 B。val=0B 1 B。val=1