1、摘摘 要要 编译程序一般由词法分析程序、语法分析程序、语义分析程序、中间代 码生成程序、目标代码生成程序、代码优化程序、表格管理程序和出错处理 程序等成分构成。在编译原理的教学过程中,算法的讲解都需要对算法进行 详细的分析,包括算法条件的判断,文法分析表的构造过程,文法分析表的 具体生成,针对文法的句子的分析过程等,这些过程往往需要占用大量时间 来分析、制表等。本软件的主要任务就是利用程序来完成算法的上述相关过 程,以达到高效,直观的效果。本文旨在介绍语法分析方法中的一种自上而 下的分析方法LL(1)分析法。所谓 LL(1)分析法是指语法分析是按自左至 右的顺序向前查看一个输入字符串,并分析过
2、程中产生句子的最左推导。 关键词关键词:编译;语法分析;LL(1)算法;演示 、 目录 引言引言. .3 第一章、概述第一章、概述 1.11.1 设计目标设计目标. . . .4 1.21.2 设计理论基础设计理论基础. . . . .5 第二章、程序设计第二章、程序设计 2.12.1 算法设计简介算法设计简介 . . .6 2.1.1 自顶向下分析. . . .6 2.1.2 LL(K)分析方法 . .7 2.1.3 LL(1)分析方法7 2.1.4 LL(1)分析表. . . . . .8 2 2.2.2 系统流程图系统流程图 . . 9 第三章、设计的实现第三章、设计的实现. 3.3.1
3、 1 文件读取模块文件读取模块 10 3.1.1 文件读取使用的 CommonDialog 控件介绍. 10 3.1.2 文法左递归的判断 10 3.2 算法分析模块算法分析模块 3.2.1 求 select 集 . .11 3.2.2 求 first 集.12 3.2.1 求 follow 集. . .12. 3.33.3 分析表构造模块分析表构造模块. 13 3.3.1 构造文法分析表 14 3.3.2 A:=a规则. .14 3.3.3 A:=D规则 14 3.3.4A:=规则14 3.4 句子分子模块句子分子模块. 15 3.4.1 读取句子. .16 3.4.2 分析句子. .16
4、3.5 系统模块流程图系统模块流程图. . .17 第四章、结构测试第四章、结构测试. . .18 第五章、小结第五章、小结,. .19 参考文献参考文献,. . 20 引言引言 编译原理是计算机专业中最难的一门课程,在理论上它要求学生掌握有 关形势语言和自动机的抽象概念,在技术上要求学生能够熟练地利用各种数 据结构进行编程。 编译程序是现代计算机系统的基本组成部分之一。编译程序一般由词法 分析程序、语法分析程序、语义分析程序、中间代码生成程序、目标代码生 成程序、代码优化程序、表格管理程序和出错处理程序等成分构成。 在编译原理的教学过程中,语法和语义分析阶段关于算法的讲解都需要对算法进行 详细的分析,包括算法条件的判断,文法分析表的构造过程,文法分析表的具体生成, 针对文法的句子的分析过程等。这些过程往往需要占用大量时间来分析、制表等。教学 主要是对这些过程的讲解和分析,没有必要花这么多的时间来做这些工作。本软件的主 要任务就是利用程序来完成算法的上述相关过程,节约教学时间。 第一章第一章、概述概述 1,11,1 设计目标设