


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学与计算机学院 编译原理 实验报告年级 2005级 学号 2005430076 姓名 赵浩鑫 成绩 专业 网络工程 实验地点 主楼402 指导教师 何欣枫 实验项目 递归下降分析器的设计 实验日期 一、 实验目的 使用递归子程序法设计一个语法分析程序,理解自顶向下分析方法的原理,掌握手工编写 语法分析程序的方法。二、 实验原理 首先将上述文法改写成EBNF形式,根据递归下降分析算法基本思想编写程序。递归下降法的实现思想是对应文法中每个非终结符编写一个递归过程。每个过程的功能是识别由该终结符推出的串,当某终结符的产生式有多个候选时按LL(1)形式唯一地确定选择某个候选进行推导。三、 实验要求1、使用递归下降分析算法分析表达式文法:exp := exp addop term | termaddop := + | -term := term mulop factor | factormulop := * | /factor := (exp) | number其中number可以是多位的十进制数字串(整数即可),因此这里还需要一个小的词法分析器来得到number的值。2、该词法分析器以子程序形式出现,当需要进行词法分析时进行调用;3、能够识别正确和错误的表达式;4、在进行语法分析的过程中,计算输入表达式的值。四、实验结果(程序)及分析1. 首先是建立数学表达式的文法EBNF。expression - term addop Term addop - + | -term - factor mulop factor mulop - * | /factor - num | ( expression )2.分析过程l 看第一条非终结产生式expression - term addop Term 先定义函数intexpression(),result值就是我们要处理的表达式的值。右边的产生式中,第一个是term,我们就直接调用term函数完成。然后是0到无限次的addopterm,那么用一个循环即可。文法中使用非终结符号addop,直接在代码以-代替addop。代码如下。int expression () int result = term (); /调用term()函数。 while (TOKEN = + | TOKEN = -) /TOKEN用来存放正在分析的字符 char tmp = TOKEN; get_token (); /自定义的取字符的函数 tmp = + ? result += term () : result -= term (); return result;l 看产生式term - factor mulop factor int term () int result = factor (); /调用函数factor() while (TOKEN = * | TOKEN = /) char tmp = TOKEN; get_token (); tmp = * ? result *= factor () : result /= factor (); return result;l 看产生式factor - num | ( expression )int factor () int result; if (TOKEN = () /看是不是左括号 get_token (); /如果是取下一个字符,并调用expression(),执行完后检查有没有配对的右括号,如果没有,是不合法的表达式 result = expression (); match (); else if(isdigit(TOKEN) /如果不是左括号看是不是数字,若为数字,调用number()分析出数值数据,如果不是数字,则为不合法的表达式 result = number (); else error=1; return error; r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 皮革缝纫辊工艺考核试卷及答案
- 水产品干燥能耗评估工艺考核试卷及答案
- 景区运营管理师知识考核试卷及答案
- 陶瓷釉面涂层涂层镭射装饰技术考核试卷及答案
- 铁路机车车辆制动钳工前沿技术考核试卷及答案
- 肉品分级员职业考核试卷及答案
- 医疗技术考试题目及答案
- 心室相关电生理手术问题及心动过速诊断试卷
- 2025年XX学校会计学专业大学生生涯发展展示
- 公安学专业试题及答案
- 2025年机组A级检修安健环管理方案
- 中国合成生物项目创业投资方案
- 康复科院感染管理制度
- 人工湖设计方案
- 联合办刊协议书
- 人民币反假知识培训
- 夫妻吵架冷战协议书
- 网络安全等级保护备案表(2025版)
- 《湿地生态的保护与利用:课件》
- 情人合同协议书短
- 生产承包劳务合同协议
评论
0/150
提交评论