当前位置: 网学 > 网学资源大全 > 计算机 > 正文

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

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: admin 发布时间: 13/09/05
【网学提醒】:本文主要为网上学习者提供一个编译原理语法分析器的实现与设计,希望对需要一个编译原理语法分析器的实现与设计网友有所帮助,学习一下吧!

资料包括: 论文(27页8606字) 
说明:

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

关键词:编译;语法分析;LL(1)算法;演示

The Design and Implementation of A Syntax Analyzer based on Compilation Theory
Abstract :The compiler generally is made up of the lexical analyzer program, the syntax analysis program, the semantics analysis program, the inter-language production procedure, the goal code production procedure, the code optimization procedure, the form executive program and the procedure of disposing mistakes. In the teaching process of compiler principle, all algorithm explanation needs to be explain clearly, including algorithm condition judgment, grammar analytical table structure process, grammar analytical table concrete production, in view of grammar sentence analysis process and so on. These processes often take much time to analyze, the scheduling and so on. This program mainly work is to complete the algorithm which take advantage of the procedure to deal with those above mentioned processes , in order to save time. The paper aims at introducing a syntax analytical method named LL(1) algorithm which from the up to down. The syntax analyzer analyzes the character string beginning from the left to right one word each time and educes the most left deduction of the sentence in the analyze course..

Key words: compiler; grammar analysis; LL(1) algorithm; demonstrate


1引言
1.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
参考文献:
钱焕延.编译技术第2版[M].南京:东南大学出版社出版,2002。
康慕宁.编译原理[M].西安:西北工业大学出版社出版,2003。
贺世娟,陈冀川.Visual Basic 6.0 程序设计[M].北京:中国水利水电出版社出版,2002.8。
杨克玉.VB6.0程序设计实训教程[M].北京:机械工业出版社出版,2005.2。
陈明.Visual Basic教程[M].北京:人民邮电出版社,2002.8。
徐谡.Visual Basic应用与开发案例教程[M].北京:清华大学出版社,2005.4。
周峰.Visual Basic案例开发集锦[M].北京:电子工业出版社,2005。

作者点评:
编译原理是计算机专业中最难的一门课程,在理论上它要求学生掌握有关形势语言和自动机的抽象概念,在技术上要求学生能够熟练地利用各种数据结构进行编程。尤其对于向前看集的算法实现,我觉得是最难的一部分,因为涉及到的情况太多,循环和选择句型的嵌套使用如果不仔细分析就容易出现错误。在数据的处理上我采用各模块全数组操作,并且将最终结果通过字符串方式保存,通过字符串来向其他模块传送数据,这种新的尝试也让我的程序带有个人的风格,让我对编程的多样化有了更深的了解和认识。
通过《一个编译原理语法分析器的设计与实现》的使用,希望在提高教学质量的同时,也能对同学们在编译原理的学习中起到帮助,让大家更好的了解LL(1)算法的整个过程。
  • 上一篇资讯: 实验室计算机IP地址自动设置程序—--服务器端的设计与实现
  • 下一篇资讯: 基于VC的飞行模拟游戏的设计及实现
  • 相关资讯

    网学推荐

    免费论文

    原创论文

    文章排行榜

    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号