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

当前位置:首页 > FOR循环语句的翻译程序设计(递归下降法、输出四元式表示)

FOR循环语句的翻译程序设计(递归下降法、输出四元式表示)

  • 62 次阅读
  • 3 次下载
  • 2026/1/8 14:34:20

武汉理工大学《编译原理》课程设计说明书

6.2

测试结论

经过测试,可以得知,结果程序能达到预计的要求:对合法程序进行词法分析和简单优先的语法分析,并生四元式表示的中间代码;对于错误的程序输入,结果程序能够判断其出错。

本次设计的文法是: S->for(A){G} A->D id P D->E id O F E->id=F F->id P->++|-- O-> <|> G->GB B->ID=S1 s1->TE1 T->FT1

E1->+TE1|&|-TE1 T1->*FT1|&|-TE1 X->B|& */

当输入的程序缺少do时,将会提示error do,表明输入出错。又因为该文法实现的设计是i=j这一赋值语句,当缺少了赋值符号“=”时,系统将会提醒赋值语句缺少赋值运算符这一错误现象。

存在问题:对于含有非法输入符号的程序,结果程序没有很好地处理,程序健壮性不强。例如当我输入的程序为:For i=1 step -1 until 10 do k=j#,该程序处理时把-1的负号给省略掉了,把这一语句和语句For i=1 step 1 until 10 do k=j#当做相同的进行处理。这是程序设计考虑不周到的地方。

- 17 -

武汉理工大学《编译原理》课程设计说明书

7、课程设计总结

在做本次试验之前我对递归下降原理不是很了解,在查阅了相关资料后,对此有了深

入了解,只要理解了分析方法的实现原理,编写程序判断出入字符串是否满足给定的文法比较简单。通过阅读大量相关书籍,利用网络查找各种资料,根据相关知识,我终于写出了符合递归下降法的关于for语句的属性文法。

此次设计对for语句进行了全面词法分析和语法分析,并得到了用于分析for 语句的结果程序。结果程序能对用户输入的程序代码进行分析,判断是否存在词法错误和语法错误,如果出现错误,向用户给出提示,如果没有错误,则生成于输入程序等价的中间代码,方便后续编译过程工作。本课程设计是for循环语句的翻译程序,包括词法分析部分、语法分析部分和中间代码生成部分。词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词。语法分析部分采用递归下降分析方法进行语法分析,判断给出的符号串是否为该文法识别的句子。中间代码生成器部分主要实现三元式的生成,将用中缀式表示的算术表达式转换为用三元式表示的算术表达式。

在整个编译器设计过程中,遇到了很多意想不到的困难,其主要原因是对各个部分要实现的功能考虑不够周全,例如对空白符、跳格符、回车符和换行符等编辑性字符的处理,及删除注解等。这些在程序设计初期实现都比较困难,经过努力,在后期这些问题都得到了比较有效的解决。在语法分析的设计过程中,程序相当复杂,需要利用到大量的编译原理,其中在对输入字符串的移进和归约冲突得不到很好的处理,造成了调试的困难。通过多次调试,最终构造出来分析表并调试成功。

通过本次课程设计,将编译的理论知识应用于实践,加深了对课本理论知识的理解,更好的掌握了编译技术的基本方法,了解了编译程序的一般分析过程,并且通过对for语句编译程序的设计和实现,对for语句也加深了认识和理解。此次课程设计对自己的编程能力的提升有很大帮助。

- 18 -

武汉理工大学《编译原理》课程设计说明书

8、参考文献

[1]张素琴、吕映芝、蒋维杜、戴桂兰等.编译原理(第二版).清华大学出版社.2005

年2月

[2]何炎祥.编译原理(第二版).武汉:华中科技大学出版社.2005年8月

- 19 -

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

武汉理工大学《编译原理》课程设计说明书 6.2测试结论 经过测试,可以得知,结果程序能达到预计的要求:对合法程序进行词法分析和简单优先的语法分析,并生四元式表示的中间代码;对于错误的程序输入,结果程序能够判断其出错。 本次设计的文法是: S->for(A){G} A->D id P D->E id O F E->id=F F->id P->++|-- O-> G->GB B->ID=S1 s1->TE1 T->FT1 E1->+TE1|&|-TE1 T1->*FT1|&|-TE1 X->B|& */ 当输入的程序缺少do时,将会提示error do,表明输入出错。又因为该文法实现的设计是i=j这一赋值语句,当缺少了赋值符号“=”时,系统将会提醒赋值语句缺少赋值运算符这一错误

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价: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