《编译原理》课程设计说明书-while循环语句的翻译程序设计

《编译原理》课程设计说明书-while循环语句的翻译程序设计

ID:6332461

大小:362.00 KB

页数:21页

时间:2018-01-10

《编译原理》课程设计说明书-while循环语句的翻译程序设计_第1页
《编译原理》课程设计说明书-while循环语句的翻译程序设计_第2页
《编译原理》课程设计说明书-while循环语句的翻译程序设计_第3页
《编译原理》课程设计说明书-while循环语句的翻译程序设计_第4页
《编译原理》课程设计说明书-while循环语句的翻译程序设计_第5页
资源描述:

《《编译原理》课程设计说明书-while循环语句的翻译程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、武汉理工大学《编译原理》课程设计说明书附件1:学号:课程设计题目WHILE循环语句的翻译程序设计学院计算机科学与技术学院专业计算机科学与技术班级计算机0702姓名指导教师2010年1月8日21武汉理工大学《编译原理》课程设计说明书课程设计任务书学生姓名:专业班级:计算机0702班指导教师:工作单位:计算机科学与技术学院题目:WHILE循环语句的翻译程序设计(LR方法、输出三地址表示)初始条件:理论:学完编译课程,掌握一种计算机高级语言的使用。实践:计算机实验室提供计算机及软件环境。如果自己有计算机可以在

2、其上进行设计。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)写出符合给定的语法分析方法的文法及属性文法。(2)完成题目要求的中间代码三地址表示的描述。(3)写出给定的语法分析方法的思想,完成语法分析和语义分析程序设计。(4)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。(5)设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:1系统描述(问题域描述);2文法及属性文法的描述;3语法分析方法描述及语法分析表设计;4按给定的题目给出中间代码形

3、式的描述及中间代码序列的结构设计;5编译系统的概要设计;6详细的算法描述(流程图或伪代码);7软件的测试方法和测试结果;8研制报告(研制过程,本设计的评价、特点、不足、收获与体会等);9参考文献(按公开发表的规范书写)。时间安排:设计安排一周:周1、周2:完成系统分析及设计。周3、周4:完成程序调试及测试。周5:撰写课程设计报告。设计验收安排:设计周的星期五第1节课开始到实验室进行上机验收。设计报告书收取时间:设计周的次周星期一上午10点。指导教师签名:2009年11月23日系主任(或责任教师)签名:2

4、009年11月23日21武汉理工大学《编译原理》课程设计说明书1.系统描述自定义while循环句型的文法及其属性文法,并用LR法为该文法设计、编制、调试一个语法及语义分析程序,并在过程中实现词法分析、语法分析,最终以三地址码的形式将形成的中间代码输出。2.文法及属性文法的描述2.1文法的描述该文法的产生式如下所示:S->while(A){B;}A->CDCC->a

5、bD-><=

6、>=

7、<

8、>B->a=EB->B;E->EFEE->(E)E->a

9、bF->+

10、-

11、*

12、/其中while、(、)、{、}、;、

13、a、b、<=、>=、<、>、=、+、-、*、/均为终结符,而S、A、B、C、D、E、F这些大写字母均为非终结符。D表示比较运算符,F表示算术运算符。2.2属性文法的描述对该文法的属性文法描述如下:(1)S->while(A){B;}prinf(ifAgotoBelsegotonext)(2)A->CDCprintf(A.val=C1.valDC2.val)(3)C->a

14、bC.val=a

15、b(4)D-><=

16、>=

17、<

18、>D.val=<=

19、>=

20、<

21、>(5)B->a=EB.val=a.val=E.val(

22、6)B->B;printf(B=i1.ValTi2.Val)21武汉理工大学《编译原理》课程设计说明书(7)E->EFEprintf(E.val=E1.valFE2.val)(8)E->(E)printf(E.place=E1.place)(9)E->a

23、bE.val=a

24、b(10)F->+

25、-

26、*

27、/F.val=+

28、-

29、*

30、/3.语法分析方法描述及语法分析表设计3.1语法分析方法的描述3.1.1LR分析法基本概述LR分析法的归约过程是规范推导的逆过程,所以LR分析过程是一种规范归约过程。LR分析法正是

31、给出一种能根据当前分析栈中的符号串(通常以状态表示)和向右顺序查看输入串的K个(K≥0)符号就可唯一地确定分析器的动作是移进还是归约和用哪个产生式归约,因而也就能唯一地确定句柄3.1.2LR分析器分析过程1.首先将初始状态S0及句子的左界符#分别压入状态栈和符号栈中。2.设在分析中的某一步,分析栈及余留的输入串为如下格局:↓S0S1…Smaiai+1…an#X1…Xm↑↑则用栈顶状态Sm和当前扫描符ai组成符号对(Sm,ai)去查分析动作表,根据ACTION[Sm,ai]的指示完成相应的分析动作。表中每

32、一表元素所规定的动作仅能是下列四种动作之一:(1)ACTION[Sm,ai]=Sm+1(移进)表明句柄尚未在栈顶形成,此时正期待移进输入符号以便形成句柄。故将当前的输入符号和表元素Sm+1分别压入栈中(2)ACTION[Sm,ai]=Rj(归约)表明此时应按文法的第j个产生式A→Xm-k+1Xm-k+2…Xm进行归约。即栈顶符号串Xm-k+1Xm-k+2…Xm已成为当前句型的句柄。所谓按第j个产生式归约,就是将分析栈中从顶向下的k个符号退栈

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

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

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