下载此文档

编绎试卷答案.doc


文档分类:资格/认证考试 | 页数:约5页 举报非法文档有奖
1/5
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/5 下载此文档
文档列表 文档介绍
词法分析器(扫描器):输入源程序,进行词法分析,输出单词符号。
语法分析器(分析器):对单词符号串进行语法分析,识别出各类语法单位。
语义分析与中间代码产生器:按照语义规则对语法分析器归约出的语法单位进行语义分析并翻译成一定形式的中间代码。
优化器:对中间代码进行优化处理。
目标代码生成器:把中间代码翻译成目标程序。
2.
(1)
G(S): S→AB
A→aAb|ξ
B→aAb|ξ
(2)
G(S): S→1S0|A
A→0A1|ξ
3、构造一个DFA,它接收∑={a, b}上所有满足下述条件的字符串:字符串中的每个a都有至少一个b直接跟在其右边。
解:已知∑={a, b},根据题意得出相应的的正规式为: (b*abb*)*
根据正规式画出相应的DFA M,如下图所示
用子集法将其确定化
4:有文法G[s]:
S→BA A→BS|d B→aA|bS|c
(1)证明文法G是LL(1)文法。
(2)构造LL(1)分析表。
(3)d的分析过程
解:
(1)一个LL(1)文法的充要条件是:对每一个非终结符A的任何两个不同产生式A→α|β,有下面的条件成立:
① FIRST(α)∩FIRST(β)=Φ;
②若β*Þε, 则有FIRST(α)∩FOLLOW(A)=Φ。
对于文法G[s]:
S→BA A→BS|d B→aA|bS|c
其FIRST集如下:
FIRST(B)={a, b, c}; FIRST(A)={a, b, c, d}; FIRST(S)={a, b, c}。
其FOLLOW集如下:
首先, FOLLOW(S)={#};
对S→BA有: FIRST(A)\{ε}加入FOLLOW(B), 即FOLLOW(B)={a, b, c, d };
对A→BS有:FIRST(S)\{ε}加入FOLLOW(B), 即FOLLOW(B)={a, b, c, d };
对B→aA有:FOLLOW(B)加入FOLLOW(A), 即FOLLOW(A)={a, b, c, d };
对B→bS有:FOLLOW(B)加入FOLLOW(S), 即FOLLOW(S)={#, a, b, c, d };

编绎试卷答案 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数5
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2711595009
  • 文件大小0 KB
  • 时间2014-06-25