编译原理学士学位毕业论文Word文件下载.doc
- 文档编号:13099499
- 上传时间:2022-10-05
- 格式:DOC
- 页数:16
- 大小:127.50KB
编译原理学士学位毕业论文Word文件下载.doc
《编译原理学士学位毕业论文Word文件下载.doc》由会员分享,可在线阅读,更多相关《编译原理学士学位毕业论文Word文件下载.doc(16页珍藏版)》请在冰豆网上搜索。
关键字:
基本块内的优化,面向对象技术,编译原理
Abstract
Asweallknown,therearethousandsofcomputerlanguageexistingintheworld.Somanylanguagescouldbeappliedinthecomputerbyreasonofcompilerprogram.‘CompilerPrinciple’isanimportantspecialcourseforthecomputermajor,particularlyforsoftwaremajorofcomputerdepartment.Inordertoprovidestudentswithastraightandexplicitunderstandingofcomplierprocessofseniorlanguage,wedevelopedthecomputer-assistedsoftwareofcomplierprogramtohelpintheclass.
Thissoftwareisconsistedoftwoparts:
oneisCAI(Computer-AidedInstruction)ofPL/0,theotherisanexercisesystemforteachersandstudents.Theexercisesystemisconsistedoffiveparts:
BaseSyntaxAnalysis,LexicalAnalysis,SyntaxAnalysis,IntermediateCodeGeneration,BasicBlockPartitioningandBasicblockintheoptimization.Mostofmyworkinvolve:
PL/0perfectdemonstrationofthefunctionanderrorcorrection;
partofteachingpracticeinthebasicblockoptimization,andfromfourformulatotheDAGgraphic.
ComputerAssistedInstructionofCompilation,takingfulladvantageofthebasalpowerfulcontrolabilityofVisualC++.NetandC++,isagoodassistantsoftwarehelpfulforstudentstostudyandunderstandthecourseofCompilerPrincipleclearly.Itcouldbeusednotonlyforteacher’sillustrationinclass,butalsoforstudents’exerciseafterclass.
Keyboard:
Basicblockintheoptimization,Object-OrientedProgramming,CompilerPrinciple
中国农业大学学士学位论文致谢
第一章绪论
1.1编译原理辅助教学软件的设计背景
本系统以编译原理为基础、以C/C++为实现语言、VisualStudio.Net2003为开发平台,主要实现编译器的基本设计方法和一些自动构造功能。
本系统是一个教学辅助软件,实现辅助教学和辅助课后习题求解的功能。
本系统包含了编译器所有的组成部分,如词法分析、语法分析、语义分析、代码生成和代码优化等各个部分。
编译器本身就是一个十分庞大而复杂的系统软件,涉及到许多复杂的数据结构、程序设计语言和算法,要开发实现其功能,在理论上要求掌握编译技术和有关编译的抽象概念,在技术上要求具有软件开发的能力。
我们此次的设计是在前人已经开发了部分功能模块的基础上,继续完成其它部分功能,并对以前存在的问题进行处理。
1.2编译原理课程建设的研究现状
编译原理是一门理论性极强,抽象程度也很高的课程,关于这一课程的教学应该更多的与实践相结合,突破传统的教学模式才能去得良好的效果。
目前国内对这一课程的教学主要采取多媒体方式,配合图形、动画效果,而达到使学生更容易接受和感兴趣。
清华大学计算机系曾基于DOS环境开发了编译原理辅助教学软件THPL0CAI和TH_CCAIS,能动态地显示程序编译的过程,并能够解答相关习题,显示程序的中间状态。
这套系统被应用教学,并取得了很大的成效。
但是DOS环境下,对程序的操作性受到了很大的限制。
另一方面,目前的多媒体教学大都采用Windows平台,这种只能在DOS平台下实现的功能在实际的教学中已经很难应用。
因此,开发一个可以应用于Windows平台下的软件系统成为一种趋势,已经有不少学校在着手这一方面的开发。
1.3系统环境的选择
作为一个用于辅助教学的软件,我们所完成的系统应该具有很好的人机交互界面,实现完备的功能的同时具有方便简单的操作性。
另一方面,考虑到系统将来的应用环境是在Windows操作系统下,因此我们所开发出来的软件应该能够较好地与Windows平台接合。
Visual C++正式这样一个开发环境,它操作简单,而且界面结构和风格明晰,使用灵活,同时它兼容标准C和标准C++语言。
而C++语言功能强大、能够有效地实现封装和继承。
Visual C++采用的框架是MFC。
MFC不仅仅是人们通常理解的一个类库。
如果选择了MFC,也就选择了一种程序结构,一种编程风格。
MFC早在Windows 3.x的时代就出现了,那时的Visual C++还是16位的。
经过这些年的不断补充和完善,MFC已经十分成熟。
由于该软件以前所完成的各模块是在VC++.Net2003下实现的整合,因此最终本系统选择了由C++/C语言实现的VC++.Net2003作为编译系统的开发工具。
1.4编译原理辅助教学软件功能设计说明
编译原理辅助教学软件,其功能(图1-1)包括如下方面:
1、语法基础部分:
对文法符号串进行:
最左或最右推导
构造语法树
判定输入串是否为指定文法的句子或句型(规范句型)
2、词法分析:
对正规式、有穷自动机和正规文法三者关系有:
输入正规式可给出对应的不确定的、确定的和最小的有穷自动机
输入有穷自动机可进行确定化和最小化
输入正规文法可给出相应正规式
3、语法分析:
语法分析部分可对已输入的文法:
构造LL
(1)、LR分析表,其中LR分析表可有四种:
LR(0)、SLR
(1)、LALR
(1)、LR
(1)
若所构造的分析表满足相应文法的要求,则用相应分析表可对输入的终结符串进行分析,给出分析过程,并说明输入串是否为正确句子。
4、中间代码生成:
该过程应可对以PASCAL语句格式给出的简单语句序列:
生成四元式代码
对含有条件语句和循环语句的语句序列可给出相应四元式代码及其回填次序。
对表达式和赋值语句可生成逆波兰式。
5、划分基本块
对四元式形式的中间代码进行基本块的划分。
6、基本块内的优化
对C语言形式的复制语句表示的四元式序列构造DAG图
输出优化结果
语法基础部分
最左推导
生成语法树
最右推导
中间代码生成
编译原理辅助教学软件
LL
(1)分析法
自顶
向下
自底
向上
语法部分
LR
(1)分析法
SLR
(1)分析法
LR(0)分析法
LALR
(1)分析法
划分基本块
词法分析
NFA到DFA
DFA最小化
正规式到NFA
正规文法到正规式
基本块内的优化
图1-1系统整体框架图
第二章系统开发环境及其相应的技术简介
2.1编译原理概述
编译程序完成从源程序到目标程序的翻译工作,是一个复杂的整体的过程。
从概念上讲,一个编译程序的整个工作过程是划分成阶段进行的,每个阶段将源程序的一种表示形式转化成另一种表示形式,各个阶段进行的操作在逻辑上是紧密连接在一起的,下图给出了一个编译过程划分成了词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成六个阶段,我们将就这几个方面进行系统模块设计,实现其功能。
如果编译过程中发现源程序有错误,编译程序应报告错误的性质和错误发生的地点,并且将错误所造成的影响限制在尽可能小的范围内,使得源程序的其余部分能继续被编译下去,有些编译程序还能自动校正错误,这些工作称之为出错处理[5]。
将高级语言翻译成较低级的、面向机器的汇编语言或者某种中间表示,是非常复杂和困难的事情。
通过几代计算机科学家的探索经验可以得出一套行之有效的思想,这就是,把高级语言的翻译这个问题划分成若干个相对容易解决的小问题,然后采用分而治之的策略逐个攻破。
下图为编译流程图
源程序
词法分析、语法分析
输出
代码生成
语义分析
代码编译
抽象语法树
图2-1编译过程
2.2面向对象技术
面向对象程序设计技术(OOP)是目前流行的系统设计开发技术,它包括面向对象分析和面向对象程序设计。
OOP之所以引起如此大的关注,和C++编程语言的流行是分不开的。
面向对象的编程方法具有四个基本特征:
抽象:
抽象就是忽略一个主题中与目前目标无关的那些方面,以便更充分地注意与当前目标有关的方面[6]。
继承:
是一种联结类的层次模型,并且允许类的重用,它提供了一种明确表述共性地方法。
对象的一个新类可以从现有的类中派生,这个过程成为继承类。
派生类可以从它地基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要[6]。
封装:
是面向对象特征之一,是对象和类概念的主要特征。
封装是把过程和
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 学士学位 毕业论文