云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 编译原理与实践作业答案

编译原理与实践作业答案

  • 62 次阅读
  • 3 次下载
  • 2025/5/5 12:37:05

作业题:

2.1(a,c,d), 2.8(a,c,d), 2.12, 3.3, 3.4, 4.8, 4.12

5.8(a,b,c), 5.12, 6.7, 6.8, 6.13 7.4, 7.15

第二章作业: 2.1 (a) a | a[a-z]*a

(c) [1-9][0-9]* (d) [0-9]*[02468]

2.8(a)

Start a a [b-z] [b-z]

a

正则表达式中丢了单独a的情况的比较多,另外有些同学在有NFA到DFA的转化过程

中,不能够正确的确定最终的状态,造成有两个终结状态的情况。 (c)

Start [0-9]

[1-9]

(d)

问题比较多,建议同学画出DFA图生成的全部过程。

2.12

3.4

a a a b a bb b a a b b b a (c).rewrite this grammar to establish the correct precedences for the operator.

rexp -> rexp “|” rexp1 | rexp1 rexp1 -> rexp1 rexp2 | rexp2 rexp2 -> rexp3 * | rexp3 rexp3 -> (rexp) | letter 左结合 4.8

(a) 消除左递归

lexp -> atom | list atom -> number | identifier list -> (lexp-seq) lexp-seq -> lexp lexp-seq’ lexp-seq’ -> lexp lexp-seq’ | ?

first (lexp)= { number ,identifier,( } first (atom)= { number, identifier } first (list) = { ( }

first (lexp-seq)= { number ,identifier,( } first (lexp-seq’)= { number ,identifier,( , ?}

follow(lexp)= { $,),number,identifier,(} follow (atom)= { $,), number,identifier,( } follow (list) = {$,), number,identifier,(} follow (lexp-seq)= { )} follow (lexp-seq’)= { )} M[N,T] lexp atom list lexp-seq lexp-seq’

4.12

(a) LL(1)文法不会是二义的,因为它的分析表的每个入口是唯一的。就不会是二义文法

了。

(b) 二义文法也不可能是LL(1)的,否则在LL(1)的parsing table 中会产生各种冲突。 非二义的文法不一定是LL(1)的,因为二义文法是非LL(1)文法的一个因素,但不是唯一的因素。如一些带有左递归的文法也不是LL(1)文法。

number lexp->atom atom->number lexp-seq’ lexp-seq’ identifier lexp->atom atom->identifier lexp-seq’ lexp-seq’ ( lexp->list list -> (lexp-seq) -> lexp-seq’ lexp-seq’ ? ) lexp $ lexp-seq -> lexp lexp-seq -> lexp lexp-seq lexp-seq’ -> lexp lexp-seq’ -> lexp lexp-seq’ -> lexp lexp-seq’ -> 第五章作业 5.12 s’ ?s

s?a A d | b B d | a B e | b A e A?c B?c c·, e A?B? c·, d A c b s’ ?s·,$ s’ ?·s,$ s?·a A d,$ s ?·b B d ,$ s?· a B e,$ s? ·b A e,$ a A?c·, d B?c·, e c s ?b·B d ,$ s? b·A e,$ A?·c, e B?·c, d B B s?a·A d,$ s?a·B e,$ A?·c, d B?·c, e s?aB·e,$ s?aBe·,$ A s?aA·d,$ s? bA·e,$

5.8 Consider the following grammar

declaration -> type var-list type -> int | float

var-list -> identifier, var-list | identifier

(a) declaration -> type var-list

type -> int | float

var-list -> var-list, identifier | identifier

s?aAd·,$ s?bAe· ,$ s?bB·d,$ s?bBd·,$

搜索更多关于: 编译原理与实践作业答案 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

作业题: 2.1(a,c,d), 2.8(a,c,d), 2.12, 3.3, 3.4, 4.8, 4.12 5.8(a,b,c), 5.12, 6.7, 6.8, 6.13 7.4, 7.15 第二章作业: 2.1 (a) a | a[a-z]*a (c) [1-9][0-9]* (d) [0-9]*[02468] 2.8(a) Start a a [b-z] [b-z] a 正则表达式中丢了单独a的情况的比较多,另外有些同学在有NFA到DFA的转化过程中,不能够正确的确定最终的状态,造成有两个终结状态的情况。 (c)

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com