下载此文档

WHILE循环语句的翻译程序设计(简单优先法、输出四元式).doc


文档分类:IT计算机 | 页数:约10页 举报非法文档有奖
1/10
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/10 下载此文档
文档列表 文档介绍
WHILE循环语句的翻译程序设计(简单优先法、输出四元式)++中while循环语句的理解及分析,通过编译中的词法分析、语法分析、语义分析及中间代码生成等编译过程,用简单优先分析法分析并翻译while语句。,完成语法分析及语义分析程序设计4设计若干用例,:文法G=(VN,VT,P,S)其中VN={S,B,E,C,A,B,P,T}VT={w,(,),{,},i,;}P={S->w(B){E}E->CC->CAC->AA->iPAA->i;P->+|-|*|/B->iTiB->iT->>|<|>=|<=|==}:简单优先分析法是按照文法符号(终极符和非终极符)的优先关系确定句柄的。基本思想可设计如下,首先根据已知优先文法构造相应优先关系矩阵,并将文法的产生式保存,设置符号栈S,步骤如下:(1)将输入符号串a1a2…an#依次逐个存入符号栈S中,直到遇到栈顶符号ai的优先性>下一个待输入符号aj为止。(2)栈顶当前符号ai为句柄尾,由此向左在栈中找句柄的头符号ak,即找到ak-1<ak为止。(3)由句柄ak...ai在文法的产生式中查找右部为ak…ai的产生式,若找到则用相应左部代替句柄,若找不到则为出错,这时可断定输入串不是该文法的句子。(4)重复上述(1)、(2)、(3)步骤直到规约完输入符号串,栈中只剩文法的开始符号为止。:Sw(B){E}APiT;C#S>w=(=<B=)={=<<<E=}>A><>P=<i>===T=;>>>C>=<#<<。四元式的四个组成成分是:算符op,第一和第二运算对象ARG1和ARG2及运算结果RESULT。运算对象和运算结果有时指用户自己定义的变量,有时指编译程序引进的临时变量。,取出其中的运算表达式。对表达式进行分析。其中,先乘除后加减,先运算括号内的。如a=b*c+b*d的四元式表示如下:1)(*,b,c,t1)2)(*,b,d,t2)3)(+,t2,t3,t3)4)(=,t3,-,a)4编译系统的概要设计及部分流程图1通过程序,。对文本进行扫描,通过词法分析函数cifa()对输入的while语句进行词法分析。2将已算好的优先关系矩阵放至程序中,通过函数Guanxi()。3对已进行词法分析的while语句进行语法分析,分析函数为JanDan()。其中包含对错误语句的报错处理。同时,对可以进行四元式输出的运算表达式进行输出。4通过四元式输出函数Siyuan()将运算表达式表示为四元式的形式,。整体框图:词法分析程序框图5源程序与执行结果(含测试方法和测试结果)()//词法分析程序{ chara[100]; charch; ifstreaminfile("

WHILE循环语句的翻译程序设计(简单优先法、输出四元式) 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数10
  • 收藏数0 收藏
  • 顶次数0
  • 上传人bodkd
  • 文件大小115 KB
  • 时间2020-07-01
最近更新