1 / 30
文档名称:

[毕业设计 论文 精品]编译原理课程设计 设计词法分析器.doc

格式:doc   页数:30
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

[毕业设计 论文 精品]编译原理课程设计 设计词法分析器.doc

上传人:策划大师 2011/12/29 文件大小:0 KB

下载得到文件列表

[毕业设计 论文 精品]编译原理课程设计 设计词法分析器.doc

文档介绍

文档介绍:目录
1 前言 1
2 报告主体 1
设计目的: 1
: 1
设计符号表 1
设计词法分析器 1
语法分析与中间代码产生器 2
优化器(选做) 2
(选做) 2
测试范例: 2
实现原理 3
符号表的设计 3
词法分析器的设计 4
语法/语义分析 5
算法实现流程图 7
测试数据 17
19
软件运行环境及限制 28
心得体会 29
30
3 结论 30
1 前言
在网络世界中,我们往往对功能强大的程序叹为观止。而这些强大程序的背后是编译这些程序的编译软件,是这些编译软件承托起了这些功能强大的运行程序。我们有不少的同志致其自身于无尽的运行程序上。而只有很少的人搞编译程序。这就是为什么中国的可运行程序满天飞,而编译程序却很少。本课程设计就是在这方面的探索,为你解读编译程序的奥秘。
课程设计题目选择9个题目中的一个,要求根据自己的兴趣和能力,选择一个对自己意义甚大的题目。课程设计基本原理是在实践上,实现我们在课程上学习到的理论知识。通过理论联系实践,更好的掌握课本上的理论知识。
2 报告主体
设计目的:
本次课程设计是作一个集词法分析、语法分析、语义分析和中间代码生成于一体的编译器,它集中了《编译原理》里的几乎所有的思想。不但加深了学生对编译方法的理解,而且能对学生的编程能力起到进一步提高的作用,培养学生的程序设计风格。通过某种可视化编程语言的应用,具备初步的Windows环境下的编程思想。
:
设计符号表
确定符号表的组织方式,一般应包括名字栏和信息栏,其中名字栏作为关键字。要考虑能够存储有关名字的信息,并可以高效地完成如下操作:
:根据给定的名字,在符号表中查找其信息。如果该名字在符号表中不存在,则将其加入到符号表中,否则返回指向该名字的指针;
:从符号表中删除给定名字的表项。
设计词法分析器
设计各单词的状态转换图,并为不同的单词设计种别码。将词法分析器设计成供语法分析器调用的子程序。功能包括:
1. 具备预处理功能。将不翻译的注释等符号先滤掉,只保留要翻译的符号串,即要求设计一个供词法分析调用的预处理子程序;
2. 能够拼出语言中的各个单词;
3. 将拼出的标识符填入符号表;
4. 返回(种别码, 属性值)。
语法分析与中间代码产生器
要求用LL1 、递归下降、算符优先分析法、SLR分析法等方法之一或若干方法,实现对表达式、各种说明语句、控制语句进行语法分析。
若语法正确,则用语法制导翻译法进行语义翻译:对说明语句,要求将说明的各符号记录到相应符号表中;对可执行语句,应产生出四元式中间代码并填写到三地址码表中;
若语法错误,要求指出出错性质和出错位置(行号)。出错处理应设计成一个出错处理子程序
优化器(选做)
1. 局部优化:设计出划分基本块的算法,在每一个基本块中实现:合并已知量、删除多余运算和删除无用赋值三种局部优化。设计构造基本块的DAG图的算法,以及将DAG图还原实现基本块的优化的算法。
2. 循环优化:只做一重循环优化,完成代码外提,强度削弱和删除归纳变量等三种优化。要求实现while循环和for循环语句的优化。
(选做)
能完成指定寄存器个数的情况下将一中间代码程序段翻译成汇编语言目标代码(汇编指令应包括加、减、乘、除),要求指令条数最少的情况下,尽量使用寄存器,尽量少访问内存,这样才能做到运行效率高。
测试范例:
procedure test;
var b,c,i:integer;
begin
b:=1;
if a>b then
c:=a+b
else
c:=a-b;
for i:=0 to 3 do
begin
c:=i;
end;
end;
实现原理
符号表的设计

class Symbol
{
public WordName name;
public StringBuffer type;
public StringBuffer kind;
public StringBuffer val;
public int addr;
public Symbol()
{ name=new WordName();
type=new StringBuf

最近更新

2025年宿州学院单招综合素质考试模拟测试卷新.. 40页

2025年山东外事职业大学单招职业适应性考试模.. 39页

2025年山东电子职业技术学院单招综合素质考试.. 40页

2025年山东省青岛市单招职业倾向性测试模拟测.. 40页

2025年山西运城农业职业技术学院单招职业技能.. 40页

2025年川南幼儿师范高等专科学校单招职业倾向.. 40页

2025年常德科技职业技术学院单招职业倾向性考.. 41页

2025年广东岭南职业技术学院单招综合素质考试.. 40页

2025年广东茂名幼儿师范专科学校单招综合素质.. 40页

2025年广州城市职业学院单招职业倾向性测试题.. 42页

2025年广西体育高等专科学校单招职业适应性测.. 41页

2025年广西安全工程职业技术学院单招综合素质.. 39页

2025年广西演艺职业学院单招职业适应性考试模.. 41页

2025年广西省玉林市单招职业倾向性测试模拟测.. 39页

2025年延安职业技术学院单招职业倾向性测试模.. 41页

2025年徐州幼儿师范高等专科学校单招职业适应.. 40页

2025年忻州职业技术学院单招职业技能考试模拟.. 40页

2025年成都工业职业技术学院单招职业倾向性测.. 40页

2025年扎兰屯职业学院单招职业适应性考试模拟.. 40页

2025年抚顺职业技术学院单招职业技能测试模拟.. 41页

2025年枣庄职业学院单招职业技能考试模拟测试.. 41页

2025年桐城师范高等专科学校单招职业技能测试.. 40页

2025年武汉信息传播职业技术学院单招综合素质.. 41页

2025年毕节职业技术学院单招职业技能测试模拟.. 39页

2025年江南影视艺术职业学院单招职业适应性测.. 42页

2025年江苏城乡建设职业学院单招职业倾向性测.. 41页

2025年江苏海事职业技术学院单招职业技能测试.. 40页

2025年江苏航空职业技术学院单招职业适应性考.. 41页

2025年重庆市《保安员证》考试题库含答案 39页

预防滑倒、绊倒及跌落专题培训课件 45页