语法制导把表达式翻译成逆波兰式分析报告.docVIP

  • 32
  • 0
  • 约2.57千字
  • 约 6页
  • 2016-04-30 发布于湖北
  • 举报

语法制导把表达式翻译成逆波兰式分析报告.doc

实验二 语法制导把表达式翻译成逆波兰式 一、实验名称 语法制导把表达式翻译成逆波兰式 二、实验目的 通过上机实习加深对语法指导翻译原理的理解,进一步掌握语法制导翻译的概念,掌握运算符优先权的算法,将语法分析所识别的表达式变换成中间代码的翻译方法。 三、表达式生成逆波兰式的算法 1、初始化△送到运算符栈。 2、扫描左括号“(”,把△送到运算符栈。 3、扫描到变量,把它送到逆波兰区。 4、扫描到运算符 (1)栈内运算符比较 a.栈内运算符=栈外运算符,把栈内运算符送到逆波兰区。 b.栈内运算符栈外运算符,把栈外运算符入栈。 ( 2 ) 栈内是△把运算符入栈。 5、扫描右括号 “)”。 ( 1 )栈内是运算符,把栈内运算符送到逆波兰区。 ( 2 )栈内是△则△退栈,读入下一个字符。 6、扫描到#(结束符) ( 1 )栈内是运算符,把栈内运算符送到逆波兰区。 ( 2 )栈内是△结束,否则继续分析。 四、程序清单 #includestdio.h #includestring.h int main(){ char str[100]; char exp[100]; char stack[100]; char ch; int flag=1; unsigned int zs; while(true){ int i=0,j=0,t=0

文档评论(0)

1亿VIP精品文档

相关文档