编译原理课程设计

上传人:人*** 文档编号:477598288 上传时间:2023-12-08 格式:DOC 页数:27 大小:874KB
返回 下载 相关 举报
编译原理课程设计_第1页
第1页 / 共27页
编译原理课程设计_第2页
第2页 / 共27页
编译原理课程设计_第3页
第3页 / 共27页
编译原理课程设计_第4页
第4页 / 共27页
编译原理课程设计_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《编译原理课程设计》由会员分享,可在线阅读,更多相关《编译原理课程设计(27页珍藏版)》请在金锄头文库上搜索。

1、编译原理课程设计任务书1、本课题的目的及意义课程设计实践对学生巩固所学基础专业课程知识、进行编译系统基本技能训练、培养实践动手能力,从而掌握编译系统的基本工作原理、基本方法和基本开发技术,最终达到具有一定的编译系统的实际开发能力有重要意义。通过课程设计,主要达到以下目的:1.帮助学生深入理解编译原理的有关理论和巩固编译原理相关知识。2. 巩固学生学习的编译原理、程序设计语言、数据结构等课程的基础知识,训练学生分析和解决编译系统的相关问题的能力,提高学生的综合素质。3. 从软件工程的角度来看,编译原理课程设计是一个很好的实例,可以训练学生软件设计的能力以及编码调试能力。2、本课题任务的主要内容本

2、课程设计主要内容包括以下几点:1、根据选定的题目,查阅资料,熟悉相关理论、方法;(1)掌握文献检索方法,以获得编译系统开发技术等相关资料;(2)学习并熟练使用一种4GL开发平台(如VC+、Java、Dephi、PB、VB等);2、分析问题,确定系统逻辑结构;3、确定系统所需模块及模块结构,并用流程图描述各模块;4、编码及调试程序;5、撰写课程设计说明书。3、提交的成果1、一份符合课程设计说明书撰写规范的课程设计说明书。2、一套系统原型。3、所有的文档及代码存放在同一个文件夹同意提交。目录前言4摘 要4ABSTRACT4第1章 概述5第2章 设计目的6第3章 设计的内容和要求73.1 设计内容7

3、3.2 设计要求73.3 设计任务的组织与分工7第4章 需求分析94.1编写目的94.2运行环境94.3编译环境简介94.4数据流图(DFD)94.5数据字典104.6 E-R图12第5章 总体设计135.1 总体功能模块图135.2 流程简介135.3 算符优先分析思想135.4 本模块简介135.5本模块功能模块图145.6 相关概念定义145.7 相关数据结构15第6章 详细设计186.1 FirstVT集的构造,算法描述186.2LastVT集的构造,算法描述186.3 算符优先关系表算法描述196.4算符优先分析流程图216.5算法描述21计数子项数量函数21TEMP_VT_ITEM

4、_REF构造函数22将内部所有的终结符复制到Target中22计数子项数量函数23TEMP_VT_ITEM_REF构造函数24所有的终结符复制到Target中25小结26致谢26参考文献27前言随着计算机科学的飞速发展,形式语言与自动机理论和方法的研究也越来越受到人们的重视,当前已成为计算机科学的理论基础。本文主要研究自动机在编译方面的应用,并将讨论的重点放在算符优先算法分析上,并用此理论完成算术表达式的正确与否的判断。 根据算符优先分析算法,编写一个语法分析程序,程序具有通用性,即所有编制的语法分析程序能够适用于不同文法以及各种输入单词串,语法分析前首先要对输入的文法和句子进行词法分析,去除

5、多余的字符,并将产生式和终结符、非终结符填入有关数组,为语法分析做前期的准备,算符优先分析法的核心算法书本已给出,因此所要做的事就是对其进一步分析细化并将其编程实现。 本课程设计的前面几章是对题目的介绍,理解,以及对组员的具体分工,后面的详细设计及其算法描述对自己的任务做了详细的描述, 在整个设计中有很多不足的地方望老师细心指导,让我们在以后的学习中取得更大的进步。摘 要算符优先分析是自底向上优先分析(移进-归约分析)思想基础上的一种重要的算法,算符优先分析法是一种简单直观、特别方便于表达式分析,易于手式实现的方法。算符优先分析法是仿效算数四则运算而建立起来的。做四则运算时,为了保证计算结果和

6、过程的唯一性,规定了一个统一的四则运算法则,规定了运算符之间的优先关系。算符优先分析法仿效四则运算过程,它预先规定了相邻终结符之间的优先关系,然后利用这种优先关系来确定句型的“句柄”,并进行归约。关键字自底向上分析法 算符优先关系表 句子 移进-归约Priority Structure Analyzer Operator Analog DesignAbstractAnalysis of operator priority is the analysis of bottom-up priority (Moved into - Reduction Analysis)thinking on the

7、basis of an important algorithm, Operator priority analysis is a simple and intuitive, especially to facilitate analysis of the expression, easy to hand-type methods to achieve analysis of operator priority is to follow four counts and set up operations . When done four operations , in order to ensu

8、re the calculated results and the uniqueness of the process, Provides a unified algorithm 4, Operator provides the relationship between the priority. Priority analysis operator follow the course of four operations, which pre-established at the end of the neighboring relations between the priorities,

9、 and then use this relationship to determine the priority of the sentence handle, and reduction.KeywordBottom-up analysis Moved into reduction TableSentence operator precedence relations 第1章 概述算符优先分析文法是一类广为使用的自底而上分析的文法。自底而上分析也称移进-归约分析,粗略的说它的实现思想是输入符号串自左向右进行扫描,并将输入符逐个移入一个后进先出栈中,边移入边分析,一旦栈顶符号串形成某个句型的句

10、柄或可规约串时,就用该产生式的左部非终结符代替相应的右部文法符号串,这称为一步归约。重复这一过程直到归约到栈中只剩文法的开始符号时,则为分析成功。采用自底而上分析技术要解决两个基本问题:如何找出直接归约的简单短语? 把找出的简单段誉直接归约到哪一个非终结符号?算符优先文法的基本思想是只考虑算符之间的优先关系,也就是只考虑终结符之间的优先关系,由于算符优先分析不考虑非终结符之间的关系,在归约过程中可归约的串就归约,并不考虑归约到那个非终结符名,因而算符优先归约不是规范归约。算符优先分析文法虽然有不规范问题,但是他分析速度快,特别适用于表达式的分析,因此在实际应用中常常采取适当措施克服此缺点。 第

11、2章 设计目的一、通过本次课程设计,加深了我对编译原理这门课程的理解和掌握,是我明白了分析器的原理、构造及其实现方法。基本掌握了算符优先关系分析的原理和使用方法。本次课程设计主要任务是根据算符优先分析表,求句子的优先分析表过程,实现编译器的构造。此次设计需使用电子文档的格式,为加深即将迎来的毕业设计做准备,使我们提前熟悉写毕业设计的基本格式、流程和方法。二、课程设计实践的主要是为巩固我们所学基础专业课程知识、进行编译系统基本技能训练、培养实践动手能力,从而掌握编译系统的基本工作原理、基本方法和基本开发技术,最终达到具有一定的编译系统的实际开发能力有重要意义。概括来说课程设计主要为实现一下目的:

12、1.帮助我们深入理解编译原理的有关理论和巩固编译原理相关知识。全面系统的了解编译原理程序构造的一般原理和全面实现方法,尤其是对自底而上的优先分析法的认识和理解。2. 巩固我们学习的编译原理、程序设计语言、数据结构等课程的基础知识,训练学生分析和解决编译系统的相关问题的能力,提高学生的综合素质。3. 从软件工程的角度来看,编译原理课程设计是一个很好的实例,可以训练我们软件设计的能力以及编码调试能力。4提高对编译程序工作基本过程及其各阶段基本任务的分析技能。第3章 设计的内容和要求3.1 设计内容本课程设计主要内容包括以下几点:1、根据选定的题目,查阅资料,熟悉相关理论、方法;(1)掌握文献检索方

13、法,以获得编译系统开发技术等相关资料;(2)学习并熟练使用一种4GL开发平台(如VC+、Java、Dephi、PB、VB等);2、分析问题,确定系统逻辑结构;3、确定系统所需模块及模块结构,并用流程图描述各模块;4、编码及调试程序;5、撰写课程设计说明书。3.2 设计要求1、提交一份课程设计电子文档;2、通过该课程设计要学会用消除左递归的方法来使文法满足进行确定自顶向下分析的条件。3、学会用C/C+高级程序设计语言来设计一个算符优先分析分析法的语法分析器;4、通过该课程设计,加深对语法分析理论的理解,培养动手实践的能力。3.3 设计实现的功能本次课程设计主要实现算符优先分析表的构造,该分析器能

14、够分析产生式到语法树。3.3 设计任务的组织与分工本组包含十一个同学,本小组的主要任务是对算符优先关系表的判断。针对本组同学掌握的程度不同,和各自的特长,本小组的十一个同学经过在一起讨论确定分工。本组成员列表如下:刘启明琚汪慧鲍光耀褚诗运曹兴戴许文丽周学萍杨波邓晓凤尹家庆吴长梅本小组分工明细,本次我的任务模块是将用于保存当前非终结符的FIRSTVT或LASTVT对其他非终结符的FIRSTVT或LASTVT的引用,通过分析,查找资料,基本完成了模块分解的任务,在本次的课程设计中将会作详细的介绍。相关理论知识介绍确定G的VT之间的优先关系的规则设有文法G和G的非终结符P的LASTVT(P)、FIRSTVT(P),则有:若有文法规则P ab或PaQb,则有ab; 若有文法规则QPb,对所有aLASTVT(),有ab; 若有文法规则aP,对所有bFIRSTVT(P) ,有ab;第4章 需求分析4.1编写目的算符优先分析发是一种广为使用的自底而上分析的文法。自底而上分析也称移进-归约分析,粗略的说它的实现思想是输入符号串自左向右进行扫描,并将输入符逐个一个后进先出栈中,边移入边分析,一旦栈顶符号串形

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 工业自动化

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号