计算机毕业论文|计算机论文|计算机毕业设计|计算机网络论文  
设为首页 加入收藏 联系站长
论文无忧网|专业的计算机论文、计算机毕业论文服务网站
计算机毕业设计 计算机毕业论文 计算机论文 管理系统 工资 在线选课 图书
当前位置:计算机毕业论文网 >> VC论文设计 >> 浏览文章
一个编译原理语法分析器的实现与设计

【说明】本站所列作品的内容只是论文的部分介绍,如果想了解此作品的详细资料,请联系在线客服。
全套设计作品包括系统+源程序+论文+开题报告+使用手册,可以直接作为毕业设计/论文使用.
本站作品全部经过技术员测试,完整无错,大家可以放心参考使用。包调试,包指导,售后全部免费,直到您通过答辩为止。
现成作品的购买流程请参照:购买现成作品流程 网站介绍 常见问题解答

一个编译原理语法分析器的实现与设计

 

编译程序一般由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、目标代码生成程序、代码优化程序、表格管理程序和出错处理程序等成分构成。在编译原理的教学过程中,算法的讲解都需要对算法进行详细的分析,包括算法条件的判断,文法分析表的构造过程,文法分析表的具体生成,针对文法的句子的分析过程等,这些过程往往需要占用大量时间来分析、制表等。本软件的主要任务就是利用程序来完成算法的上述相关过程,以达到高效,直观的效果。本文旨在介绍语法分析方法中的一种自上而下的分析方法——LL(1)分析法。所谓LL(1)分析法是指语法分析是按自左至右的顺序向前查看一个输入字符串,并分析过程中产生句子的最左推导

 

关键词:编译;语法分析;LL(1)算法;演示目  录
1引言 1
1.1项目背景 1
1.2目标 1
1.3名词解释 1
1.4算法简介 2
1.4.1自顶向下分析 2
1.4.2 递归子程序 3
1.4.3 LL(K)分析方法 4
1.4.4 LL(1)分析方法 4
1.4.5LL(1)分析表 5
2 系统流程图 6
2.1程序流程图 6
2.2 系统模块流程图 7
3 系统实施 7
3.1文件读取模块 8
3.1.1文件读取使用的CommonDialog控件介绍 8
3.1.2文法左递归的判断 9
3.2算法分析模块 9
3.2.1求select集 9
3.2.2求first集 10
3.2.3求follow集 10
3.3分析表构造模块 12
3.3.1构造文法分析表 12
3.3.2A::=aβ规则 13
3.3.3A::=Dβ规则 13
3.3.4A::=ε规则 13
3.4句子分析模块 13
3.4.1读取句子 14
3.4.2分析句子 14
4 特殊问题及解决方法 14
4.1 Select集的求解 15
4.1.1 问题描述 15
4.1.2 解决方案 15
4.1.3 解决结果 15
4.2为ListBox添加水平滚动条 15
4.2.1 问题描述 15
4.2.2 解决方案 15
4.2.3 解决结果 16
5 结果测试 16
5.1测试正确文法 16
5.2测试错误文法 19
结  论 20
参考文献 20
致  谢 21
声  明 22
 

1.1项目背景

编译原理是计算机专业中最难的一门课程,在理论上它要求学生掌握有关形势语言和自动机的抽象概念,在技术上要求学生能够熟练地利用各种数据结构进行编程。

编译程序是现代计算机系统的基本组成部分之一。编译程序一般由词法分析程序、语法分析程序、语义分析程序、中间代码生成程序、目标代码生成程序、代码优化程序、表格管理程序和出错处理程序等成分构成。

在编译原理的教学过程中,语法和语义分析阶段关于算法的讲解都需要对算法进行详细的分析,包括算法条件的判断,文法分析表的构造过程,文法分析表的具体生成,针对文法的句子的分析过程等。这些过程往往需要占用大量时间来分析、制表等。教学主要是对这些过程的讲解和分析,没有必要花这么多的时间来做这些工作。本软件的主要任务就是利用程序来完成算法的上述相关过程,节约教学时间。

1.2目标

一个编译原理语法分析器的设计与实现》

1.主要通过文本方式获取相关文法,并实现以下相关操作:

2.判断文法是否符合LL1)的要求

3.获取文法的终结符和非终结符

4.求文法的select集(其中包括first集和follow集的求解)并判断select集是否符合LL1)算法的要求

5.根据文法和select集构造文法分析表

6.根据文法分析表判断输入的句子是否符合文法

1.3名词解释

 语法分析逐一分析词法分析所得的属性字,检查其中的语法错误,如果没有发现语法错误, 则给出正确的语法结构。

句子的分析:句子的分析实际就是分析源程序中的语句是否符合给定的文法。

文法:对语言结构的定义和描述,即在形式上用于描述和规定语言结构。由若干条规则组成。

规则:为一个二元组,通常格式为U::=xUx;其中U为规则的左部,是一个符号;x是规则的右部,是一贯有穷字符串。规则又称为产生式。

BNF表示法:即巴科斯范式表示法,它引进了符号“|”,符号“|”表示“或”。运用符号“|”把相同左部的规则缩写在一起,这样显得文法更为紧凑。

文法G[Z]:规则的非空有穷集合,其中Z为文法的识别符号开始符号,它至少要在一条规则的左部出现。

字汇表:在文法中,由全部规则的左部和右部中的所有符号组成的符号集。

非终结符:文法中出现在规则左部的符号,它们组成的集合称为非终结符集。

终结符:文法中凡不属于非终结符集的符号,它们组成的集合称为终结符集。

递归:同一操作或一组操作的连续重复,其实质上是处理过程的性质,在这种过程的每一步都要用到它自身的上一步或上几步的结果。

递归定义:在定义某种事物时又用到其本身。

直接左递归规则:型如U::=Uy的规则称为直接左递归规则。

First:首符号集。

Follow:向前看集。

Select:可选集。

LL1)文法:对于文法GS),其每个非终结符的不同规则具有不相交的Select集,则称该文法为LL1)文法。



上一篇: 一种矢量图形工具的设计与实现
下一篇: 一个Windows下基于电话线路的数据通信程序的设计与实现
在线客服  
点击这里给我发消息 点击这里给我发消息
点击这里给我发消息 点击这里给我发消息
QQ:528311109 QQ:528311109
  服务邮箱:Service@paper51.com
热门浏览
论文降价了,2010年毕业的同学你
计算机毕业论文无忧网-公告
计算机毕业论文-论文无忧网至同学
5年信誉服务保证-计算机毕业论文
购买现成作品流程
计算机毕业论文答辩过程中需要注
付款方式
网站介绍
计算机毕业论文答辩前的准备
常见问题
最近更新  
论文降价了,2010年毕业的同学你
计算机毕业论文无忧网-公告
计算机毕业论文-论文无忧网至同学
5年信誉服务保证-计算机毕业论文
购买现成作品流程
计算机毕业论文答辩过程中需要注
付款方式
网站介绍
计算机毕业论文答辩前的准备
常见问题
设为首页 | 加入收藏 | 关于本站 | 联系站长 | 友情链接 | 版权申明 | 在线留言 | 网站地图
Copyright 2006-2008 Powered by Paper51.com,论文无忧网 All Rights Reserved.
声明:《论文无忧网》,根据《信息网络传播权保护条例》,如果我们网站上的的作品侵犯了您的权利,请及时通知我们,我们会及时删除。
《论文无忧网》为您提供优秀的计算机毕业设计|计算机毕业论文|计算机论文|毕业论文等资料,仅供学习参考使用。