编译原理课程设计LR0分析法的实现(3)

2019-04-05 18:45

(11) A->cA. (12) A->.d (13) A->d. (14) B->.cB (15) B->c.B (16) B->cB. (17) B->.d (18) B->d.

LR(0)项目规范族如下: I0 = { 1, 3, 6 } I1 = { 2 }

I2 = { 4, 9, 12 } I3 = { 7, 14, 17 } I4 = { 5 }

I5 = { 10, 9, 12 } I6 = { 13 } I7 = { 8 }

I8 = { 15, 14, 17 } I9 = { 18 } I10 = { 11 } I11 = { 16 }

文法的LR(0)分析表 ACTION GOTO 状态 a b c d # E A B 0 S2 S3 1 1 acc 2 S5 S6 4 3 S8 S9 7 4 R1 R1 R1 R1 R1 5 S5 S6 10 6 R4 R4 R4 R4 R4 7 R2 R2 R2 R2 R2 8 S8 S9 11 9 R6 R6 R6 R6 R6 10 R3 R3 R3 R3 R3 11 R5 R5 R5 R5 R5

10

图一:读入文法

图二:分析文法

11

图三:分析句子:ad

图四:生成树

7.软件运行环境及限制

系统平台:Windows XP/2000 软件平台:VC++ 6.0

12

8.心得体会

归约的时候应该从状态栈和文法符号栈中自顶向下去掉R个符号,即栈指针SP减去R,并把A移入文法符号栈内,j=GOTO[i,A]移进状态栈,其中i为修改指针后的栈顶状态。

而在当归约到文法符号栈中只剩文法的开始符号E时,并且输入符号串已结束即当前输入符是'#',则为分析成功。

LR(0)分析器归约是个难点,应该认真分析文法结构。通过实验设计加深了对VC的熟练程度和对编译原理课程的理解。

总的来说,形式语言是编译原理的基础,是建立文法,分析文法的重要知识基础。

9.参考文献

《程序设计语言编译方法》(第三版) 肖军模 大连理工出版社

《编译原理教程习题解析与上机指导》 胡元义 西安电子科技大学出版社 《编译原理学习与应用指导》 张永梅 国防工业出版社 《编译原理》 李建中 机械工业出版社

13


编译原理课程设计LR0分析法的实现(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:室内分布系统及直放站培训手册-3 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: