布尔表达式的递归下降翻译程序设计

布尔表达式的递归下降翻译程序设计

ID:17522918

大小:1.52 MB

页数:16页

时间:2018-09-02

布尔表达式的递归下降翻译程序设计_第1页
布尔表达式的递归下降翻译程序设计_第2页
布尔表达式的递归下降翻译程序设计_第3页
布尔表达式的递归下降翻译程序设计_第4页
布尔表达式的递归下降翻译程序设计_第5页
资源描述:

《布尔表达式的递归下降翻译程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、布尔表达式的递归下降翻译程序设计1引言“编译原理”是一门研究设计和构造编译程序原理和方法的课程,是计算机各专业的一门重要的专业基础课。编译原理这门课程蕴含着计算机学科中解决问题的思路、形式化问题和解决问题的方法,对应用软件和系统软件的设计与开发有一定的启发和指导作用。“编译原理”是一门实践性较强的课程,要掌握这门课程中的思想,就必须要把所学到的知识付诸实践。而课程设计是将理论与实践相互联系的一种重要方式。2概述2.1设计题目布尔表达式的递归下降翻译程序设计2.2设计目的课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,设计

2、题中的问题比平时的练习题要复杂,也更接近实际。编译原理这门课程安排的课程设计的目的是旨在要求学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容,选择合适的数据逻辑结构表示问题,然后编制算法和程序完成设计要求,从而进一步培养学生独立思考问题、分析问题、解决实际问题的动手能力。2.3设计任务内容布尔表达式的文法:B®TB′B′®andTB′

3、εT®FT′T′®orFT′

4、εF®notF

5、true|false

6、(B)

7、iropi设计布尔表达式文法,给出该文法的属性文法,用递归下降分析法实现对布尔表达式的翻译,给出翻译的逆波兰式结果。163设计环境与工具VisualC

8、++4设计原则4.1基本方法在本程序中,输入一段布尔语句,使用递归下降的方法得到其推到过程,并利用递归下降翻译的方法的到四元式序列,最终根据生成的四元式序列分析得到逆波兰式。4.2属性文法B®TB′B’.in=T.typeB′®andTB′B’.in=T.typeaddtype(and,entry,B.in)B′®εB’.val=εT®FTT.in=F.type.T′®orFT′T’.in=F.typeaddtype(or,entry,B.in)T′®εT’val=εF®notFF.val=not.F.valF®trueF.val=trueF®falseF.val=fal

9、seF®(B)F.val=B.valF®iropiF.val=i.lexvalropi.lexvaladdtype(i,entry,l.in)5简要的分析与概要设计在该程序中,总共包括3个主要功能,第一个功能是对输入的布尔语句进行递归下降的分析,从而得出从文法到该布尔语句的推导过程,第二个功能是使用递归下降的方法,该布尔语句的四元式序列,第三个功能对四元式序列进行扫描并分析每个四元式的结构特点,并据此将四元式转化为逆波兰式。main函数的流程图如下:16开始递归下降分析得到推导过程并输出递归下降分析得到四元式序列并输出读四元式并得到逆波兰式并输出结束在开始进行本次实验中,

10、本来计划在递归下降分析的过程中就得到逆波兰式,但是经过多次尝试之后总是存在错误,所以采用先得到四元式序列,再根据四元式序列生成逆波兰式这种效率比较低的方法。6详细的算法描述,框图6.1主要数据结构的设计四元式类在该类中,要包含四元式中的四个元素,运算结果,两个运算数以及一个运算符号classquad{public:charresult[8];chararg1[8];charop[8];chararg2[8];voidprint()//输出该四元式{cout<

11、构体这个结构体的对要用来存储单个单词,包括一个字符串成员。structword{charw[10];voidprint(){cout<

12、当前读到的字符下标chartoken[8];//记录当前读到的单词public:16voidscaner();voidB();voidB1();voidT();voidF();voidT1();voidrun();voidread();voidbolon();voidtoword();char*factor();char*expression();char*term();voidbolan();voidreset(){current=0;};voidrun1(){scaner();expression();};};6.2全局变

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。