欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    编译原理语法分析实验报告(共5页).doc

    • 资源ID:14356965       资源大小:56KB        全文页数:5页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    编译原理语法分析实验报告(共5页).doc

    精选优质文档-倾情为你奉上实验二 语法分析实验报告一、 实验内容1.1 实验目的编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析.1.2 实验要求利用C语言编制递归下降分析程序,并对简单语言进行语法分析1.2.1待分析的简单语言的词法用扩充的BNF表示如下:(1)<程序>:=<声明序列><语句序列>(2)<语句串>:=<语句><语句>(3)<语句>:=<赋值语句>(4)<赋值语句>:=ID:= <表达式>(5)<表达式>:=<项>(+<项>|-<项>(6)<项>:=<因子>*<因子>|/<因子>(7)<因子>:=ID|NUM|(<算术表达式>)1.2.2实验要求说明输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“success”,否则输出“error”。 二、实验程序的总体结构框架置初值 调用scaner读下一个单词符号调用lrparser结束 图1. 语法分析主程序示意图 调用statement函数是否begin?否是是否;?调用scaner是调用语句串分析函数调用scaner是否end?调用statement函数调用scaner否出错处理否Syn=0&&kk=0?图3.语句串分析示意图是出错处理打印分析成功图2.递归下降分析程序示意图图4.statement语句分析函数示意图否是否标识符是调用scaner否是否:=?是调用scaner出错处理调用expression函数调用term函数是否+,-?调用scaner调用term函数是否否是出错处理调用factor函数是否*,/?调用scaner调用factor函数出错处理图5. expression表达式分析函数示意图 图6.term分析函数示意图 是 是是否否否是否整常数?是否标识符是否(?调用scaner 调用expression函数 是否)? 是否调用scaner出错处理调用scaner图7. factor分析过程示意图三、 关键技术的实现方法专心-专注-专业Scanner函数定义已在实验一给出,本实验不再重复给出void Irparser() kk=0; if(syn=1) scaner(); yucu(); if(syn=6) scaner(); if(syn=0 && (kk=0) cout<<"success!"<<endl; else if(kk!=1)cout<<"缺end!"<<endl; kk=1; else cout<<"缺begin!"<<endl;kk=1; return;void yucu() statement(); while(syn=26)scaner(); statement(); return;void statement()if(syn=10)scaner();if(syn=18)scaner();expression();elsecout<<"赋值号错误"<<endl;kk=1;elsecout<<"语句错误"<<endl;kk=1;return;void expression()term();while(syn=13)|(syn=14)scaner();term();return;void term()factor();while(syn=15)|(syn=16)scaner();factor();return; void factor()if(syn=10)|(syn=11)scaner();else if(syn=27)scaner();expression();if(syn=28)scaner();elsecout<<")错误"<<endl;kk=1;elsecout<<"表达式错误"<<endl;kk=1;return;void main()p=0;cout<<"Please input string"<<endl;docin.get(ch);if(ch!=”n”)progp+=ch;while(ch!='#');p=0;scaner();Irparser();四、实验心得语法分析是编译过程的核心部分,它的主要功能是按照程序语言的语法规则,从由词法分析输出的源程序符号串中识别出各类语法成分,同时进行语法检查,为语义分析和代码生成做准备。从这次语法分析实验中我感到语法分析的过程要比之前的词法分析实验复杂的多,其中涉及到文法规则,自顶向下分析方法和许多编程的细节问题,有一处不正确,语法分析也不能成功。通过这次的语法分析实验,我对如何将文法规则转换为实际的程序代码有了进一步的认识,并且对语法分析过程有了更深入的认识。

    注意事项

    本文(编译原理语法分析实验报告(共5页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开