循环语句的语法分析及语义分析程序设计

循环语句的语法分析及语义分析程序设计

ID:9795802

大小:180.00 KB

页数:7页

时间:2018-05-10

循环语句的语法分析及语义分析程序设计_第1页
循环语句的语法分析及语义分析程序设计_第2页
循环语句的语法分析及语义分析程序设计_第3页
循环语句的语法分析及语义分析程序设计_第4页
循环语句的语法分析及语义分析程序设计_第5页
资源描述:

《循环语句的语法分析及语义分析程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、学号:0120510680224课程设计题目WHILE循环语句的翻译程序设计(递归下降法、输出三地址表示)学院计算机科学与技术学院专业软件工程班级0502班姓名杨松林指导教师彭德巍2008年6月21日循环语句的语法分析及语义分析1.设计题目基于递归下降分析法的循环语句WHILEEDOS1的语法及语义分析程序,其中E为布尔表达式,S1为赋值语句。输出的中间代码选用三地址码。2.摘要和关键字摘要:递归下降分析法是确定的自上而下的分析法,这种分析法要求文法是LL(1)文法。他的基本思想是对文法中的每个非终结符编写一个函数(或子程序)。每个函数的功能是识别由该非终结符所表示

2、的语法成分。根据递归下降的方法,同时利用C++语言对输入的WHILEEDOS1循环语句进行文法分析,并输出其对应的三地址码。关键字:递归下降分析法,LL(1)文法,语法分析Abstract:Recursivedropanalysisisthetop-downanalysistodeterminethatsuchanalysisisrequiredgrammarLL(1)grammar.It’sbasicideaofgrammarattheendofeachnon-preparationofafunction(orsubroutine).Eachfunctionist

3、oidentifythefunctionexpressedbytheNGOsattheendofthegrammaticalelements.Accordingtodroptherecursivemethod,usingtheC++languagetoinputitsrealgrammaranalysis,NBL(alanguageinventedbyLukasiewicz)istherealoutputofitscounterparts.Keywords:Recursivedropanalysis,LL(1)grammar,syntaxanalysis3.正文3.

4、1引言递归下降分析法是一种自上而下的语法分析方法,所谓自上而上分析法,就是从文法的开始符号出发,根据文法规则正向推导出给定句子的一种方法。在用递归下降分析法时要注意所选用的文法必须是LL(1)文法。3.2需求分析WHILE〈布尔表达式〉DO〈赋值语句〉,其中:(1)选择递归下降法法完成以上任务,中间代码选用三地址码。(2)写出符合分析方法要求的文法,给出分析方法的思想,完成分析程序设计。程序设计的环境和工具为Windows环境下的VisualC++。3.3数据结构设计3.3.1文法的描述终结符:有VT={WHILE、<、>、*、/、+、-、=、DO、、id、digi

5、t、;}非终结符:有VN={S,E,F,M,T,P,B}开始符号:开始符号S={S}产生式:S->id=M

6、WHILEEdoSE->B

7、B>BM->TF

8、TF->+TF

9、-TF

10、εT->BP

11、BP->*BP

12、/BP

13、εB->id

14、digit3.3.2简要分析与概要设计出现在循环语句WHILEEDOS1中的布尔表达式E,它的作用在于控制对S1的选择。作为转移条件的布尔式E,我们可以赋予它“出口”,出向S1。本程序采用递归向下分析法,在语法分析的过程中输出中间代码。逆波兰代码采用结构体存放,在输出逆兰式函数中,分别定义操作数数组nbl1[10]和操作符数组nbl2[

15、20],并利用二重循环逆向输出三地址码。定义存储结构及函数如下:#defineMAX_TOKEN256//Token表大小词法分析#defineMAX_QUAD256//三地址码数组大小Tokentokentable[MAX_TOKEN];//建立词法表Quadquad[MAX_QUAD];//建立三地址码表boolcifa();//词法分析函数voidprint();//词法输出函数voidyuyi();//语义分析函数voidprintQuad();//输出三地址码表printQuad();//输出三地址码本程序对词法分析进行了简化,只能输入WHILE,DO,〉

16、,<,=,;,a-z,0-9,A-Z且是从文件输入。作为条件语句可是B>B,B

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

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

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