优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

VC编译器设计与实现

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
摘要编译原理和技术是计算机专业学生的必修课程。通过手工编写一个编译器可以对编译原理课程中主要理论方法有更好的掌握,加深对程序语言背后运行机制的理解。编译原理中涉及大学本科许多的课程,因此也是对于这些课程的一次很好的回顾。由于编译原理的基本技术已经稳定下来使得编写一个小的编译器成为可能。本系统主要完成对源程序进行词法分析,语法分析(语法分析采用递归下降分析方法),语义分析,符号表的管理,类型检查,最终生成8086汇编代码。生成的汇编代码基本上能由MASM汇编器编译通过。并能够根据需输出分析所得记号,符号表的信息。关键词:编译器;递归下降;词法分析;语法分析;汇编代码生成;符号表1 项目概述与需求分析1.1 编译器发展简介在上世纪50年代,IBM的John Backus带领一个研究小组对FORTRAN语言及其编译器进行开发。但由于当时人们对编译理论了解不多,开发工作变得既复杂又艰苦。与此同时,Noam Chomsky开始了他“对自然语言结构的研究”。他的发现最终使得编译器的结构异常简单,甚至还带有了一些自动化。当分析问题变得好懂起来时,人们就在开发程序上花费了很大的功夫来研究这一部分的编译器自动构造。这些程序最初被称为编译器的编译器(Compiler-compiler),但更确切地应称为分析程序生成器(Parser Generator),这是因为它们仅仅能够自动处理编译的一部分。这些程序中最著名的是Yacc(Yet Another Compiler-compiler),它是由Steve Johnson在1975年为Unix系统编写的。类似的,有限状态自动机的研究也发展了一种称为扫描程序生成器(Scanner Generator)的工具,Lex(与Yacc同时,由Mike Lesk为Unix系统开发)是这其中的佼佼者[2]。1.2 编译器最近的发展编译器设计最近的发展包括:首先,编译器包括了更加复杂算法的应用程序它用于推断或简化程序中的信息;这又与更为复杂的程序设计语言的发展结合在一起。其中典型的有用于函数语言编译的Bindley-Milner类型检查的统一算法。其次,编译器已越来越成为基于窗口的交互开发环境(Interactive Development Environment,IDE)的一部分,它包括了编辑器、连接程序、调试程序以及项目管理程序。这样的IDE标准并没有多少,但是对标准的窗口环境进行开发已成为方向。另一方面,尽管近年来在编译原理领域进行了大量的研究,但是基本的编译器设计原理在近20年中都没有多大的改变,它现在正迅速地成为计算机科学课程中的中心环节。在九十年代,作为GNU项目或其它开放源代码项目标一部分,许多免费编译器和编译器开发工具被开发出来。这些工具可用来编译所有的计算机程序语言。它们中的一些项目被认为是高质量的,而且对现代编译理论感兴趣的人可以很容易的得到它们的免费源代码。2 系统分析系统分析主要解决的是系统“做什么”的问题,这一阶段对系统的设计和以后系统的实施是十分重要的,没有好的分析,设计将很难进行,所以要做好系统的分析工作,从业务入手,整理数据,分析流程,分析好系统的功能要求和数据要求。3 系统设计系统设计的目标是根据系统的逻辑模型建立物理模型。即根据目标系统的逻辑功能要求考虑实际条件,进行各种具体设计。主要包括以下活动:系统结构设计、代码设计、输出设计、输入设计、及系统的软、硬件配置。3.1 系统结构设计根据数据流程图设计出系统结构图,并对系统结构图中的每个模块定义其外部及内部特性的工作,即进行模块设计。3.1.1系统结构系统按照编译原理给出的开发方法将整个系统分成几大功能模块汇编代码生成、类型检查、建立符号表、语法分析、词法分析本系统采用面向对象的方式对问题进行分析设计,把系统中的遇到的数据进行抽象出类,用类来描述个模块的功能。3.5 出错处理由于源程序可能存在错误主要包括输入的符号不合法系统无法识别,程序的结构与文法规定的不一致。对于前一种出错处理采用给出发生错误的位置及原因。后一种采用称为紧急恢复策略的方法具体实现就是不断抛掉读入的记号直到找到与给定的同步集合相同的符号为止。这种错误恢复策略的优点是使程序不会陷入死循环,缺点是可能抛掉过多的记号错过发现更多错误的机会。3.6 程序逻辑建立符号表,符号表中的符号拥有继承属性所以对语法树进行先根遍历。语法分析,对源程序的记号进行语法分析构建一颗语法树。

包含资料: 本文来自think58 [资料来源:www.THINK58.com]

think58好,好think58

[资料来源:www.THINK58.com]

源程序+论文(15000字以上)+可执行程序+答辩稿ppt+开题报告+外文翻译

本文来自think58

[版权所有:http://think58.com]

获取资料请您联系本站客服 copyright think58 [版权所有:http://think58.com]