第一范文网 - 专业文章范例文档资料分享平台

山东科技大学编译原理课程设计

来源:用户分享 时间:2025/5/17 20:09:49 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

山东科技大学学生课程设计

五、总结

经过努力,终于完成了本次实验,在实验中遇到了诸多问题,以及一些

小的细节的实现,实验开始之前,先温习了C++迭代器部分,觉得使用这部分内容来实现本次的作业很适合,然后开始写需求分析,整理思路以及代码的书写。经过不断地调试,代码部分总算完成,但是和理想中的结果还有很大的差距。分析之后,对代码整体上进行了调整,并参考资料,完成了本次的作业。通过本次作业,不仅学到了新的知识,而且对以往的知识进行了回顾,并在编码上提高了一个新的阶段。对今后的学习和工作都有很大的帮助。

18

山东科技大学学生课程设计

语法分析之 LL1分析法实现

一、设计目的

根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对预测分析LL(1)分析法的理解。

二、设计要求

程序输入/输出示例:

对下列文法,用LL(1)分析法对任意输入的符号串进行分析: (1)E->TG (2)G->+TG|—TG (3)G->ε (4)T->FS (5)S->*FS|/FS (6)S->ε (7)F->(E) (8)F->i 输出的格式如下:

(1)输入一以#结束的符号串(包括+—*/()i#): (2)输出过程如下:

19

山东科技大学学生课程设计

步骤 分析栈 剩余输入串 所用产生式 1 E i+i*i# E->TG

(3)输入符号串为非法符号串(或者为合法符号串) 注意:

1.表达式中允许使用运算符(+-*/)、分割符(括号)、字符i,结束符#; 2.如果遇到错误的表达式,应输出错误提示信息(该信息越详细越好); 3.测试用的表达式可以事先放在文本文件中,一行存放一个表达式,同时以分号分割。同时将预期的输出结果写在另一个文本文件中,以便和输出进行对照;

三、设计说明 1. 需求分析:

a) 输入及其范围

输入为文法,表达式中允许使用运算符(+-*/)、分割符(括号)、字

符i,结束符#。

b) 输出形式

步骤 分析栈 剩余输入串 所用产生式 1 E i+i*i# E->TG

c) 程序功能

根据输入的文法进行分析,利用LL(1)控制程序根据显示栈栈顶内容、

20

山东科技大学学生课程设计

向前看符号以及LL(1)分析表,对输入符号串自上而下的分析过程

d) 测试数据

输入字符串i+i*i#作为测试。

2. 概要设计

a)数据类型的定义

char Stack[50];/*分析栈*/

char Left[20];/*剩余输入串*/

char arrZhongjie[20]={'i','+','-','*','/','(',')','#'};

char arrNozhongjie[20]={'E','G','T','S','F'}; b) 主程序流程

21

搜索更多关于: 山东科技大学编译原理课程设计 的文档
山东科技大学编译原理课程设计.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6xc4d6emw96et861e25n_6.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top