VB编译原理分析器

摘 要编译程序一般由词法分析程序、语法分析程序、语义分析程序、
中间代码生成程序、目标代码生成程序、代码优化程序、表格管理程序和出错处理程序等成分构成。
在编译原理的教学过程中,算法的讲解都需要对算法进行详细的分析,包括算法条件的判断,
文法分析表的构造过程,文法分析表的具体生成,针对文法的句子的分析过程等,
这些过程往往需要占用大量时间来分析、制表等。本软件的主要任务就是利用程序来完成算法的
上述相关过程,以达到高效,直观的效果。本文旨在介绍语法分析方法中的一种自上而下的分析
方法——LL(1)分析法。所谓LL(1)分析法是指语法分析是按自左至右的顺序向前查看一个输入字符
串,并分析过程中产生句子的最左推导。 关键词:编译;语法分析;LL(1)算法;演示1引言1.1项
目背景编译原理是计算机专业中最难的一门课程,在理论上它要求学生掌握有关形势语言和自动机的
抽象概念,在技术上要求学生能够熟练地利用各种数据结构进行编程。编译程序是现代计算机系统的
基本组成部分之一。编译程序一般由词法分析程序、语法分析程序、语义分析程序、中间代码生成
程序、目标代码生成程序、代码优化程序、表格管理程序和出错处理程序等成分构成。在编译原理的
教学过程中,语法和语义分析阶段关于算法的讲解都需要对算法进行详细的分析,包括算法条件
的判断,文法分析表的构造过程,文法分析表的具体生成,针对文法的句子的分析过程等。这些过
程往往需要占用大量时间来分析、制表等。教学主要是对这些过程的讲解和分析,没有必要花这么
多的时间来做这些工作。本软件的主要任务就是利用程序来完成算法的上述相关过程,节约教学时
间。1.2目标《一个编译原理语法分析器的设计与实现》1.主要通过文本方式获取相关文法,并实现
以下相关操作:2.判断文法是否符合LL(1)的要求3.获取文法的终结符和非终结符4.求文法
的select集(其中包括first集和follow集的求解)并判断select集是否符合LL(1)算法的要求
5.根据文法和select集构造文法分析表6.根据文法分析表判断输入的句子是否符合文法1.4.2递归子
程序递归子程序方法:这里讲的递归子程序方法是一种自顶向下的编译方法,其思想是通过对源程
序的每个语法成分编制一个处理子程序,通过子程序调用来对源程序进行语法和语义分析。
递归子程序及其调用:常用的子程序的种类有3种:1、简单子程序,2、嵌套子程序,
3、递归子程序。三种子程序的返回地址保护方法:1.所有简单子程序可以公用一个

返回地址保护
单元。2.嵌套子程序各自有各自的返回地址保护单元,不得随意公用。3.对于递归子程序,
由于返回地址保护单元数目不明确,一般采用堆栈形式。方法是在内存中开辟一个保护栈,
每次进入递归子程序时,就把当前返回地址送入保护栈,相应地,每次退出递归子程序时,
就取栈顶的返回地址作为其返回地址。同时入栈和出栈的还有相应的递归子程序中需要保护的
工作单元。递归子程序调用时,入口与出口的工作:(1)递归入口工作:①当前返回地址送保护栈;
②递归子程序中(调用程序)不允许被破坏的工作单元内容送保护栈。(2)递归出口工作:
①恢复保护在栈顶中的工作单元的原来内容,并上退保护栈;②取保护在栈顶中的返回地址进
行返回,并退保护栈。3系统实施《一个编译原理语法分析器的设计与实现》主要分为四个模块:
1.文件读取模块文件读取模块主要完成将记事本中的待分析文法读入到内存中的功能。
其中包括了对可能出现的文法BNF表示法的判断以及对文法中是否存在直接左递归规则的判断。
2.算法分析模块算法分析模块是《一个编译原理语法分析器的设计与实现》中的关键模块。
本模块包含了LL(1)算法中的大部分重要数据和信息,其中包括获取输入文法的终结符集和非
终结符集,对文法中每一条规则求select集(select集的求解又包括求first集或者follow集)
,以及对select集合法性的判断,即同一非终结符所对应的不同规则的select集中不能有相同的
终结符。3.分析表构造模块分析表构造模块的主要功能是将算法分析模块所求解出的符合LL(1)
算法规则的文法的select集转化成文法分析表,以便下一模块的调用。4.句子分析模块句子分
析模块是整个《一个编译原理语法分析器的设计与实现》的主体演示模块,包括句子读取、句子
合法性判断、句子分析等部分。其中句子合法性的判断又分为句子中是否有文法终结符以外的符
号和句子是否符合文法规则的判断。下面将对以上四个模块的具体实现技术、数据结构及关键程
序片段进行详细的说明。3.1文件读取模块本模块通过调用VB中CommonDialog控件的ShowOpen方法
启动打开文件对话框,获取需要读取的文件的路径,再调用Open命令打开文件,将文件中保存的
文法读入内存,用二维数组进行保存。 VB编译原理分析器

相关文档
最新文档