(完整word版)WHILE循环语句的翻译程序设计(LL(1)法、输出三地址表示).doc
上传人:书生****写意 上传时间:2024-09-11 格式:DOC 页数:23 大小:284KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

(完整word版)WHILE循环语句的翻译程序设计(LL(1)法、输出三地址表示).doc

(完整word版)WHILE循环语句的翻译程序设计(LL(1)法、输出三地址表示).doc

预览

免费试读已结束,剩余 13 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

武汉理工大学〈〈WHILE语句的翻译分析LL(1)法、输出三地址表示〉〉课程设计说明书第页共NUMPAGES23页课程设计任务书题目:WHILE语句的翻译分析程序设计(LL(1)法、输出三地址表示)初始条件:理论:学完编译课程,掌握一种计算机高级语言的使用。实践:计算机实验室提供计算机及软件软件环境。要求完成的主要任务(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)写出符合LL(1)法的文法及属性文法。完成题目要求的中间代码三地址表示的描述。写出LL(1)法的思想,完成语法分析和语义分析程序设计。编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。设计报告格式按附件要求书写。课程设计报告书正文的内容应包括:1问题描述;2文法及属性文法的描述;3语法分析方法及中间代码形式的描述;4简要的分析与概要设计;5详细的算法描述;6给出软件的测试方法和测试结果;7设计的特点、不足、收获与体会。时间安排:设计安排一周:周1、周2:完成程序分析及设计。周3、周4:完成程序调试及测试。周5:程序验收和撰写课程设计报告。设计验收安排:18周的星期五第3节课到实验室进行上机验收。设计报告书收取时间:19周的星期四下午。指导教师签名:年月日系主任(或责任教师)签名:年月日目录1问题描述…………………………………32文法及属性文法的描述…………………33语法分析方法及中间代码形式的描述…44简要的分析与概要设计…………………75详细的算法描述…………………………86软件的测试方法和测试结果…………137设计的特点、不足、收获与体会………16WHILE语句的翻译分析程序设计----LL(1)法、输出三地址表示1问题描述:1.1能够写出一个while-do语句,此语句符合LL(1)的文法。1.2构造词法分析程序对while-do语句进行词法分析。1.3构造语法分析程序对while-do语句进行语法分析,判断语法正确性。1.4运行程序,要求有正确的语义输出(3地址码)。2文法及属性文法的描述:2.1文法描述:2.1.1基本概念:文法是对语言结构的定义与描述。即从形式上用于描述和规定语言构的称为“文法”。定义:文法G=(VN,VT,P,Z)VN:非终结符号集VT:终结符号集P:产生式或规则的集合Z:开始符号(识别符号)Z∈VN其中:A.产生式:产生式是一个有序对(U,x),通常写为:U::=x或U®x;|U|=1|x|³0B.非终结符号:出现在产生式的左部,且能推出符号或符号串的那些符号。其全体构成非终结符号集,记为VN。C.终结符号:不出现在产生式的左部,且不能推出符号或符号串的那些符号。其全体构成终结符号集,记为VT。2.1.2此设计针对的文法为:S->whileEdoAE->id1>id2|id1=id2|id1<id2A->id1=id2(id1,id2代表标识符)2.2属性文法的描述:2.2.1属性文法的定义形式:每个文法符号有一组属性,每个文法产生式A->α有一组产生式b:=f(c1,c2,……,ck)的语义规则,其中f式函数,b和c1,c2,……,ck式该产生式文法符号的属性。2.2.2此设计题目的属性文法为:产生式属性文法(语义规则)S->whileEdoAS.begin:=newlable;E.true:=newlable;E.false:=S.next;A.next:=S.begin;S.code:=gen(S.begin‘:’||E.code||Gen(S.ture‘:’)||A.code||gen(‘goto’S.begin);E->id1>id2|id1=id2|id1<id2E.place:=newtemp;E.code:=B1.code||B2.code||gen(E.place':='id1.place'>'id2.place)||gen(E.place':='id1.place'='id2.place)||gen(E.place':='id1.place'<'id2.place)A->id1=id2A.place:=newtemp;code:=id1.code||id2.code||gen(A.place':='id1.place'='id2.place3语法分析方法及中间代码形式的描述;3.1语法分析方法:3.1.1本次设计采用LL(1)分析:预测分析方法概述:所谓的LL(1)方法是在实现时用到一个LL(1)分析钜阵和一个分析栈以及预测分