为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

编译习题课

2019-01-27 5页 doc 18KB 86阅读

用户头像

is_496339

暂无简介

举报
编译习题课1.构造一个DFA,它接收Σ={0,1}上所有满足如下条件的字符串:每个1都有0直接跟在右边。并给出该语言的正规式。 2.已知文法G[S]: S→MH|a H→LSo|ε K→dML|ε L→eHf M→K|bLM 判断G是否是LL(1)文法,如果是,构造LL(1)分析表。 3.设文法G(S): 构造各非终结符的FIRSTVT和LASTVT集合及算符优先分析表; 4.若有定义二进制数的文法如下: S→L.L|L L→LB|B B→0|1 (1) 试为该文法构造LR分析表,并说明属哪类LR分析表。 (2) 给出输入串1...
编译习题课
1.构造一个DFA,它接收Σ={0,1}上所有满足如下条件的字符串:每个1都有0直接跟在右边。并给出该语言的正规式。 2.已知文法G[S]: S→MH|a H→LSo|ε K→dML|ε L→eHf M→K|bLM 判断G是否是LL(1)文法,如果是,构造LL(1)分析表。 3.设文法G(S): 构造各非终结符的FIRSTVT和LASTVT集合及算符优先分析表; 4.若有定义二进制数的文法如下: S→L.L|L L→LB|B B→0|1 (1) 试为该文法构造LR分析表,并说明属哪类LR分析表。 (2) 给出输入串101.110的分析过程。 5.请将表达式-(a+b)*(c+d)-(a+b)分别表示成三元式、间接三元式和四元式序列。 6.采用语法制导翻译思想,表达式E的"值"的描述如下: 产生式       语义动作 (0) S′→E    {print E.VAL} (1) E→E1+E2    {E.VAL∶=E1.VAL+E2.VAL} (2) E→E1*E2    {E.VAL∶=E1.VAL*E2.VAL} (3) E→(E1)    {E.VAL∶=E1.VAL} (4) E→n      {E.VAL∶=n.LEXVAL} 假如终结符n可以是整数或实数,算符+和*的运算对象类型一致,语义处理增加"类型匹配检查",请给出相应的语义描述。 7.请将下列语句: while (AD) then { X:=Y+Z; Y=Z+2; Z=Z+1; } 翻译成四元式. 解答: 4. 6. (0) S′→E { if error≠1 then print E.VAL} (1) E→E1+E2 { if E1.TYPE=int AND E2.TYPE=int then begin E.VAL:=E1.VAL + E2.VAL; E.YTPE:=int; end else if E1.TYPE=real AND E2.TYPE=real then begin E.VAL:=E1.VAL + E2.VAL; E.YTPE:=real; end else error=1 } (2) E→E1*E2 { if E1.TYPE=int AND E2.TYPE=int then begin E.VAL:=E1.VAL * E2.VAL;; E.YTPE:=int; end else if E1.TYPE=real AND E2.TYPE=real then begin E.VAL:=E1.VAL * E2.VAL;; E.YTPE:=real; end else error=1 } (3) E→(E1) { E.VAL:=E1.VAL;  E.TYPE:=E1.TYPE } (4) E→n { E.VAL:=n.LEXVAL; E.TYPE:=n.LEXTYPE }
/
本文档为【编译习题课】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索