1 / 2
文档名称:

算符优先文法处理算术表达式.doc

格式:doc   大小:17KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

算符优先文法处理算术表达式.doc

上传人:dsjy2351 2020/3/14 文件大小:17 KB

下载得到文件列表

算符优先文法处理算术表达式.doc

文档介绍

文档介绍:一、实验目的:算术表达式的文法可以是(你可以根据需要适当改变):E→E+E|E-E|E*E|E/E|(E)|i根据算符优先分析法,将表达式进行语法分析,判断一个表达式是否正确。二、实验时间:上机二次。三、实验过程和指导:(一)准备:,花一周时间确定算术表达式的文法,设计出算符优先关系表;;、测试数据,初步编制好程序。(二)上课上机:上机调试,发现错误,分析错误,再修改完善。教师根据学生的设计方案与学生进行探讨,以修改方案和代码。(三)程序要求:程序输入/输出示例:如参考C语言的运算符。输入如下表达式(以分号为结束)和输出结果:(1)10;输出:正确(2)1+2;输出:正确(3)(1+2)/3+4-(5+6/7);输出:正确(4)((1-2)/3+4输出:错误(5)1+2-3+(*4/5)输出:错误注意:,表达式中不含变量(只含无符号整数);,应输出错误提示信息(该信息越详细越好);,一行存放一个表达式,同时以分号分割。同时将预期的输出结果写在另一个文本文件中,以便和输出进行对照;,可增加功能:当判断一个表达式正确时,输出计算结果,计算过程用浮点表示,但要注意不要被0除。程序思路(仅供参考):,可将其中的取字符函数几乎原封不动地移植过来,其中的分割和分析单词的方法可借用过来分割现在这个实验的运算符、常量和变量。:(1)初始化:设立算符优先关系表(或优先函数)、初始化变量空间(包括堆栈、结构体、数组等);(2)控制部分:将一个表达式从文件中读出;(3)词法分析:将表达式分割成单词序列;(4)利用算符优先文法进行表达式处理:根据算符优先关系表对表达式单词序列进行堆栈操作,如果遇到错误则显示错误信息。(四)练****该实验的目的和思路:程序比较复杂,需要利用到大量的编译原理,也用到了大量编程技巧和数据结构,通过这个练****可极大提高编程能力。程序规模大概为250行。本实验的结果可作为课程设计的基础。通过练****掌握对表达式进行处理的一种方法。(五)为了能设计好程序,主意以下事情::将程序分成合理的多个模块(函数),每个模块做具体的同一事情。(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。:空行的使用、注释的使用、缩进的使用、变量合理命名等。四、上交:(源代码中以注释的形式说明程序的功能,主文件名为by3);(,以“第一组输入/输出/第二组输入/输出/第三组输入/输出……”的格式存放);:(1)功能描述:该程序具有什么功能?(2)程序结构描述:函数调用格式、参数含义、返回值描述、函数功能;函数之间的调用关系图、程序总体执行流程图(参考课本第二章)。(3)实验过程记录:出错次数、出错严重程度、解决办法摘要。(4)实验总结:你在编程过程中花时多少?多少时间在纸上设计?多少时间上机输入和调试?多少时间在思考问题?遇到