资源描述
华南师范大学
计算机学院 2009—2010学年第(二)学期期末考试
《编译原理》试卷(A)
一、 正则表达式→DFA分析题 15分
请写出实验一有关C语言词法分析中整数的正则表达式及相应的DFA。教材P35
二、 词法分析设计题( 15分)
请写出实验一有关C语言词法分析中整数的词法分析程序。
(先画出整数的DFA,再由DFA写出程序)
三、 自顶向下分析设计题 20分 教材P136 分析表在P116表4-3
请构造下面文法G(statement)的LL(1)分析表
statement → if-stmt | other
if-stmt → if(exp) statement else-part
else-part → else statement | ε
exp → 0 | 1
四、 LR分析题 20分 教材P170
请画出下面文法的LR(1)分析表:
S→ id | V:=E
V→ id
E→ V | n
五、 语义分析题 20分
请将下面代码段转为用四元组表达的中间代码、
if(A&&B)if(X<Y||C>D)F=1;else F=0;else if(x>) G=1;
六、 综合分析设计 10分
现有如下问题:
将一个代数的算术表达式的括号去掉。
如,表达式a-(b-c)#,去掉括号之后的表达式为a-b+c;又如表达式(a-b-c)*(c-d)#,则结果为:a*c-a*d-b*c-c*c+c*d。
为了处理的简单,我们做以下的规定:
(1)运算符:+、-、*、/、()且无单目运算符
(2)操作数:小写的英文字母
(3)表达式输入的结束符为:#
请运用编译原理的所学知识解决这个问题,把问题解决的思路及概要的实现方法描述出来。
展开阅读全文