编译原理上机作业 解析简单画图语言 画图语言: origin is (200, 300); -- 设置原点的偏移量 rot is pi/6; -- 设置旋转角度 scale is (2, 1); -- 设置横、纵坐标比例 for T from 0 to 200 step 1 draw (t, 0); -- 画横坐标 for T from 0 to 180 step 1 draw (0, t); -- 画纵坐标 for T from 0 to 150 step 1 draw (t, t); --
目的:熟练掌握自下而上的语法分析方法,并能用程序实现。 要求: 1. 使用如下文法: E E+T | T T T*F | F F (E) | id 2. 对于任意给定的输入串(词法记号流)进行语法分析,要求采用LR分析器来完成。手工构造LR分析表,利用移进-归约分析算法(P69 图3.12)输出(P70 表3.8)对应的动作部分。如: 输入:id*+id/(id+id)# 输出:移进 按 F->id归约 移进 error …… 3. 要有一定的错误处理功能。即对错误能提示,并
第三次上机作业 1. 编写First和Follow函数,实现其求解过程。 (1)FIRST集合计算方法: ① 若Xa.., 则将终结符a加入FIRST(X)中; ② 若X,则将加入FIRST(X)中; ③ 若XY…,且Y属于非终结符,则将FIRST(Y)\{}加入到FIRST(X)中;(注:“\”表示除去元素,即FIRST(Y)中的非元素加入到FIRST(X)中。以下同理。) ④ 若XY1Y2..YK,且Y1,Y2,..Yi-1都是非终结符,且Y1,Y2,..Yi-1的FIR
1.以S属性的语法制导定义为基础,将下列产生式附上一定的语义规则。即在原来语法分析的基础上插入相应的语义动作:将输入串翻译成三地址代码序列。 E ® E1 + T E ® T T ® T1 * F T ® F F® (E) F ® digit F ® id 2.以词法分析和语法分析部分的上机结果为基础,添加语义分析部分。即以LR文法为基础。当进行产生式归约时执行对应的语义动作。 3.输入:(-b+c*d)+c*d 输出: t1= -b t2= c*d t3=t1+t2 t4= c*d t5=t