编译语言-中间代码生成

编译语言-中间代码生成

ID:47466745

大小:71.50 KB

页数:5页

时间:2020-01-11

编译语言-中间代码生成_第1页
编译语言-中间代码生成_第2页
编译语言-中间代码生成_第3页
编译语言-中间代码生成_第4页
编译语言-中间代码生成_第5页
资源描述:

《编译语言-中间代码生成》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验四中间代码生成一、实验内容设计一个程序,该程序能够将形如x=yopz的简单赋值语句翻译为对应的四元式序列,其中op可为+、-、*、/等二元运算符。(可参考实验指导书P163至P164)。要求用JAVA语言编程。例如:若输入赋值语句a=b+c,则输出如下四元式序列。二、程序代码InToPost.JAVApackagezlf;importjava.io.IOException;publicclassInToPost{privateStacktheStack;privateStringinput;privateStringoutpu

2、t="";publicInToPost(Stringin){input=in;intstackSize=input.length();theStack=newStack(stackSize);}publicStringdoTrans(){for(intj=0;j

3、eStack.push(ch);break;case')':gotParen(ch);break;default:output=output+ch;break;}}while(!theStack.isEmpty()){output=output+theStack.pop();}//System.out.println(output);returnoutput;}publicvoidgotOper(charopThis,intprec1){while(!theStack.isEmpty()){charopTop=theStack.p

4、op();if(opTop=='('){theStack.push(opTop);break;}else{intprec2;if(opTop=='+'

5、

6、opTop=='-')prec2=1;elseprec2=2;if(prec2

7、ack.pop();if(chx=='(')break;elseoutput=output+chx;}}classStack{privateintmaxSize;privatechar[]stackArray;privateinttop;publicStack(intmax){maxSize=max;stackArray=newchar[maxSize];top=-1;}publicvoidpush(charj){stackArray[++top]=j;}publiccharpop(){returnstackArray[top--

8、];}publiccharpeek(){returnstackArray[top];}publicbooleanisEmpty(){return(top==-1);}}}QuaternaryTypeOfAlgorithm.JAVApackagezlf;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.Stack;publicclassQuaternaryTypeOfAlgorithmextendsJFrame{privatesta

9、ticStacknumber=newStack();privateintn=1;privateJButtonjbt=newJButton("生成");privateJTextAreajta=newJTextArea();privateJTextFieldjtf=newJTextField("A=B+C*D+E",20);privatebooleanhasError=false;publicQuaternaryTypeOfAlgorithm(){JPanelp1=newJPanel();p1.add(

10、jtf);p1.add(jbt);add(p1,BorderLayout.NORTH);add(newJScrollPane(jta),BorderLayout.CENTER);jbt.addActionListener(newActionList

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。