1 / 36
文档名称:

WHILE循环语句的翻译程序设计(简单优先法,三地址输出).doc

格式:doc   大小:103KB   页数:36页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

WHILE循环语句的翻译程序设计(简单优先法,三地址输出).doc

上传人:花花世界 2019/6/9 文件大小:103 KB

下载得到文件列表

WHILE循环语句的翻译程序设计(简单优先法,三地址输出).doc

文档介绍

文档介绍:羄莁目录蚁1问题域描述..........................................3螈2文法及属性文法的描述.....................................................................................4莀3语法分析方法及中间代码形式的描述............................................................................................6薁4编译系统的概要设计.....................................................................................................................8***5详细的算法描述....................................................................................................................................................................9芄6软件的调试过程和结果测试.................................................................................................................19肈7使用说明............................................20蚄8课设总结............................................20蒂9参考文献.............................................22蝿膈肅膄蒈芈蒆蚂薁WHILE循环语句的翻译程序设计莇(简单优先法、输出三地址表示)蚃莄1问题域描述芀while循环语句的翻译程序设计(简单优先法,输出单地址表示),要求完成:莇用C++语言正确编写程序,完成WHILE循环语句的翻译程序设计。肄求能正确进行词法分析,语法分析,并能正确的输出预期结果。螂根据指定的文法,判定程序的正确性。聿本次课程设计中要求设计一个WHILE循环语句的词法﹑语法及语义分析程序,语法分析选择简单优先法,采用语法制导翻译输出中间代码三元式。通过设计、编制、调试一个WHILE循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解,实现功能。蒇while循环语句的格式为:while(P){doA},其中A为循环体,可为一个或多个赋值语句;P为循环控制条件。while循环语句首先根据循环控制条件P进行判断,若满足条件则执行循环体A,否则执行下面的程序段;蒅本次课程设计中系统首先要进行词法分析,即从左到右把源文件的字符序列逐个进行扫描,产生一个个的单词序列,作为语法分析的输入从而继续编译过程。蒄该程序的语法分析读入词法分析的结果,并判断输入语句是否满足while循环语句的文法所描述的形式。通过简单优先法对语句进行分析,看是否能通过给定的输入串归约到文法的开始符号。在语法分析的同时进行语义分析,最后输出三元式的代码。,文法G(S)如下:袁S->while(P){A};蚇A->id=E;芇E->TE'蚃E'->+TE'|-TE'|e虿T->FT'螇T'->*FT'|/FT'|e莃F->(E)|id膁P->Eropid莈rop->>|<|>=|<=|!=|==→whileP{A}:=newlabel;:=newlabel;:=;:=;:=gen(’:’‖E。code‖蒁gen(’:’)‖‖肂gen(‘goto’)(终结符和非终结)的优先关系确定句柄的,因此我们首先介绍任意两个文法符号之间的优先关系