- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编写一个语法分析程序并生成四元式中间代码.doc
编写一个语法分析程序并生成四元式中间代码
班级 学号 姓名: 指导老师:
实验目的:
学习编译的基本原理;
巩固课堂学习的知识;
会对最基本的语句进行分析,转换成四元式;
实验内容:
编制一个大型程序,可以对小型的EL语言程序进行翻译,可以处理最基本的语句如:
if语句,while语句等;
实验硬件和软件平台:
INTEL C433MHz Cpu
128Mb SDRAM
TPW
Microsoft Windows XP SP1
步骤和算法描述:
先对输入的语句进行词法分析,建立各种表格;
对程序进行语法分析,建立四元式;
对部分程序语句进行翻译,生成相应的四元式,及出错处理
五. 源程序:
program elcompiler(input,output,f);
const reser=20;
type alfa=packed array[1..9] of char;
opr=(jmp,prt,jeq,jne,jgt,jlt,jge,jle,add,sub,mul,did,ass,umi,jsr,ret,inp,out,xxx);
{中间代码的操作码符号}
instruction=record {四元式} op:opr; arg1,arg2,result:integer;
end;
symset=set of 0..45;
obj=1..45;
var reserve:array[0..reser] of alfa; {保留字表}
token,id:alfa;
line:array[1..80] of char; {输入缓冲区}
ch,ch1:char;
quad:array[0..300] of instruction; {四元式表}
table:array[0..100] of {符号表}
recordname:alfa;
level:integer;
case cat:obj of
2 : (val:integer);
18,7: (addr:integer)
end;
mnemonic:array[opr] of array[1..3] of char;
cp,tp,new,nxq:integer;
cc,ii,i,j,k,num:integer;
kind,l,err:integer;
filename:string; {外部文件名}
f:text;
procedure getchar; {从扫描缓冲区取一字符}
begin
if cc=ii then {如果已取到缓冲区的最后,则从外部 }
{文件再读一行}
begin
if eof(f) then
begin
writeln(program incomplete!);
close(f); exit
end;
cc:=0;
您可能关注的文档
最近下载
- 每月骨科科室质控小组工作记录.docx VIP
- 小码王CPA图形化编程二级试题打卡-第3天.docx VIP
- 新闻写作题库.docx VIP
- EN ISO 6506-1-2014 金属材料 布氏硬度试验 第1 部分:试验方法(中文).pdf
- 中国科技大学并行计算(结构-算法-编程)课程精讲PDF合辑(共617页).pdf
- 2018年第一期新任网点负责人政策资源考试.docx VIP
- 福州大学硕士研究生入学考试2011年有机化学考研真题.pdf VIP
- 全国青少年软件编程(Scratch)四级等级测试.docx VIP
- 工伤保险待遇申报表2025年.docx VIP
- python等级考试四级.docx VIP
原创力文档


文档评论(0)