标准实验报告(PL0编译程序).doc

标准实验报告(PL0编译程序).doc

ID:58544317

大小:77.50 KB

页数:36页

时间:2020-05-19

标准实验报告(PL0编译程序).doc_第1页
标准实验报告(PL0编译程序).doc_第2页
标准实验报告(PL0编译程序).doc_第3页
标准实验报告(PL0编译程序).doc_第4页
标准实验报告(PL0编译程序).doc_第5页
资源描述:

《标准实验报告(PL0编译程序).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、[标准实验报告]南昌航空大学实验报告年月日课程名称:编译原理实验名称:扩充的PL/0编译程序班级:姓名:同组人:指导教师评定:签名:一、实验目的进一步熟悉编译程序的整体框架,给出整个编译程序的流程结构,用C或vc++语言编写程序;并将编制的编译程序进行调试、实现PL/0编译程序。二、实验要求(1)根据所选的程序设计语言,修改并调试。(2)举出例子程序,在程序中进行编译。(3)用此编译程序对有关语句进行编译,并输出目标指令。(4)书写出合格的实验报告。三、实验步骤1.输入文件中变量的声明形如:vara,b,c;以va

2、r保留字开始,不同变量以”,”分隔,最后以”;”结束。2.read语句格式为read(a)或者read(a,b);3.write语句格式为write(a),括号里面没有字符串常量,注意与书后的形如write(‘a=’,a)是不相同的。4.的声明形如:”procedureproname;”不含参数表。5.一维数组形如:变量类型array数组名[数组下标]。6.条件语句形如:if<条件>then<语句>{;else,语句>}7.扩充的记录型数据类型形如:for循环语句及带参数的过程。四、参考源代码#include

3、dio.h>/*#include"plo.h"*/#include"string.h"#definestacksize500typedefenum{false,true}bool;enumobject{procedur,constant,variable};#definenorw13#definetxmax100#definenmax14#defineal10#definelevmax3#definecxmax200#defineamax2047#definesymnum32enumsymbol{nul,ident

4、,number,plus,minus,times,slash,oddsym,eql,neq,lss,leq,gtr,geq,lparen,rparen,comma,semicolon,period,becomes,beginsym,endsym,ifsym,thensym,whilesym,writesym,readsym,dosym,callsym,constsym,varsym,procsym,};enumfct{lit,opr,lod,sto,cal,inte,jmp,jpc,};#definefctnum8

5、structinstruction{enumfctf;intl;inta;};FILE*fas;FILE*fa;FILE*fal;FILE*fa2;boollistswitch;booltableswitch;charch;enumsymbolsym;charid[al+1];intnum;intcc,ll;intcx;charline[81];chara[al+1];intnum;intcc,ll;intcx;charline[81];chara[al+1];structinstructioncode[cxmax

6、];charword[norw][al];structinstructioncode[cxmax];charword[norw][al];enumsymbolwsym[norw];enumsymbolssym[256];charmnemonic[fctnum][5];booldeclbegsys[symnum];boolstatbegsys[symnum];boolfacbegsys[symnum];boolfacstatbegsys[symnum];structtablestruct{charname[al];e

7、numobjectkind;intval;intlevel;intadr;intsize;};structtablestructtable[txmax];FILE*fin;FILE*fout;charfname[al];interr;#definegetsymdoif(-1==getsym())return-1#definegetchdoif(-1==getch())return-1#definetestdo(a,b,c)if(-1==test(a,b,c))return-1#definegendo(a,b,c)i

8、f(-1==gen(a,b,c))return-1#defineexpressiondo(a,b,c)if(-1==expression(a,b,c))return-1#definefactordo(a,b,c)if(-1==factor(a,b,c))return-1#definetermdo(a,b,c)if(-1==term(a,b,c))return

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

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

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