WHILE循环语句的翻译程序设计(简单优先法、输出四元式)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
WHILE循环语句的翻译程序设计(简单优先法、输出四元式)
1 需求说明或问题描述
1.1 问题描述
对C++中while循环语句的理解及分析,通过编译中的词法分析、语法分析、语义分析及中间代码生成等编译过程,用简单优先分析法分析并翻译while语句。
1.2 需求说明
1 写出符合给定的语法分析方法的文法及属性文法
2 完成题目要求的中间代码四元式的描述
3 写出给定的语法分析方法的思想,完成语法分析及语义分析程序设计
4 设计若干用例,上机通过测试
2 文法及语法设计
2.1文法及属性文法:
文法G=(V N ,V T ,P ,S)
其中V N={S , B, E, C, A, B, P, T} V T={w, (, ), { ,}, i, ;}
P={
S -> w(B){E}
E -> C
C -> CA
C -> A
A -> iPA
A -> i;
P -> +|-|*|/
B -> iTi
B-> i
T -> >|<|>=|<=|==
}
2.2 语法分析方法描述及语法分析表设计
2.2.1 语法分析方法描述:
简单优先分析法是按照文法符号(终极符和非终极符)的优先关系确定句柄的。
基本思想可设计如下,首先根据已知优先文法构造相应优先关系矩阵,并将
文法的产生式保存,设置符号栈S,步骤如下:
(1)将输入符号串a1a2…a n#依次逐个存入符号栈S中,直到遇到栈顶符号a i的优先性>下一个待输入符号a j为止。