编制一个递归下降分析程序语法分析实验报告

上传人:沈*** 文档编号:137763208 上传时间:2022-08-19 格式:DOC 页数:9 大小:71KB
收藏 版权申诉 举报 下载
编制一个递归下降分析程序语法分析实验报告_第1页
第1页 / 共9页
编制一个递归下降分析程序语法分析实验报告_第2页
第2页 / 共9页
编制一个递归下降分析程序语法分析实验报告_第3页
第3页 / 共9页
资源描述:

《编制一个递归下降分析程序语法分析实验报告》由会员分享,可在线阅读,更多相关《编制一个递归下降分析程序语法分析实验报告(9页珍藏版)》请在装配图网上搜索。

1、超经典 HPUX AIX cisco 华为 大学课件 毕业论文 历年考研真题 共大家学习 编译原理 实验报告2008年11月20日姓名 班 级 学 号 课程名称编译原理实验项目名 称语法分析指导教师 一、实验目的:编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。利用C语言编制递归下降分析程序,并对简单语言进行语法分析。二、实验原理(可以流程图的形式出现,加以文字说明)1待分析的简单语言的语法2用扩充的BNF表示如下:(1):beginend(2):;(3):(4):ID:(5): | 项(6):* | /(7):ID | NUM | ()3实验要求说明输入单词

2、串,以“”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则输出“error”。例如:图c.3语法分析主程序示意图输入begin a:=9;x:=2*3;b:=a+x end #输出success输入x:=a+b*c end #输出 error4语法分析程序的算法思想() 主程序示意图如图.所示。() 递归下降分析程序示意图如图.所示。() 语句串分析过程示意图如图.所示。() statement语句分析函数流程如图.6. C.7. C.8 C.9所示。图c.4递归下降分析程序示意图图c.5语句串分析示意图是否是调用scaner是否:=?调用scaner是否标识?出错处理

3、调用expression函数 图c.6statement语句分析函数示意图否出错处理调用term函数调用scaner是否+,-?调用term函数是 图c.7 expression表达式分析函数示意图否是调用factor函数调用scaner是否*,/?调用factor函数出错处理图c.8term分析函数示意图图c.9factor分析过程示意图三、实验步骤(介绍关键的步骤,至少10步,并简要说明其工作原理)1. 语法分析的主程序void main()p=0; printf(*语法分析程序*n);printf(请输入源程序:n);do scanf(%c,&ch); progp+=ch;while(c

4、h!=#);p=0;scaner(); lrparser();printf(语法分析结束!n);2. 编写扫描子程序void lrparser()if (syn=1) /begin scaner(); yucu(); if (syn=6) /end scaner(); if (syn=0 & kk=0) printf(success n); else if(kk!=1) printf(error,lose end ! n); kk=1; else printf(error,lose begin ! n); kk=1; return;void yucu()statement();while(sy

5、n=26) /; scaner(); statement();return;void statement()if (syn=10) scaner(); if (syn=18) scaner(); expression(); else printf(error!); kk=1; else printf(error!); kk=1;return;void expression()term();while(syn=13 | syn=14) scaner(); term();return;void term()factor();while(syn=15 | syn=16) scaner(); fact

6、or();return;void factor()if(syn=10 | syn=11) scaner(); /为标识符或整常数时,读下一个单词符号else if(syn=27) scaner(); expression(); if(syn=28) scaner(); else printf( ) 错误n); kk=1; else printf(表达式错误n); kk=1;return;3.调试程序,验证实验结果。四、实验过程原始记录(数据、图表、计算等)输入begin a:=9;x:=2*3;b:=a+x end #输出success输入x:=a+b*c end #输出 error五、实验结果及分析,以及心得体会 通过学习了语法分析,再经过实验,让我对语法分析有了深刻的认识和了解。递归下降分析法,是一种确定的自顶向下分析技术,它的实现思想是,对文法中分别代表一种语法成分的每个非终结符号编写一个子程序,已完成非终结符号所对应的语法成分的分析任务。在分析过程中调用一系列过程或函数,对源程序进行语法语义分析直到整个程序处理结束。教 师 评 语 专 栏指导教师评语成绩指导教师年 月 日

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!