毕业设计(论文)-C Minus 语言分析程序

上传人:aa****6 文档编号:29256996 上传时间:2018-01-23 格式:DOC 页数:35 大小:314.50KB
返回 下载 相关 举报
毕业设计(论文)-C Minus 语言分析程序_第1页
第1页 / 共35页
毕业设计(论文)-C Minus 语言分析程序_第2页
第2页 / 共35页
毕业设计(论文)-C Minus 语言分析程序_第3页
第3页 / 共35页
毕业设计(论文)-C Minus 语言分析程序_第4页
第4页 / 共35页
毕业设计(论文)-C Minus 语言分析程序_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《毕业设计(论文)-C Minus 语言分析程序》由会员分享,可在线阅读,更多相关《毕业设计(论文)-C Minus 语言分析程序(35页珍藏版)》请在金锄头文库上搜索。

1、郑州航空工业管理学院毕 业 论 文(设 计)2012 届 网络工程 专业 班级题 目 C Minus 语言分析程序 姓 名 学号 指导教师 职称 讲 师 2012 年 5 月 18 日IC Minus 语言分析程序指导教师 内 容 提 要程序设计语言及其编译技术是普及计算机的关键,编译器也是程序员每天使用的工具。尽管编译器相关的各项技术经过近几十年的发展已日臻成熟,然而编译器的构造原理和技术依然是计算机专业人员的必备理论知识之一。本文实现一个编译器项目,即构造一个轻量级的类 C 语言(即C Minus 语 言)的分析器。尽管 C Minus 语言是一个试验项目,但是通过该项目可以掌握基本的程序

2、设计语言分析技术。本项中的 C Minus 语言分析程序分两部分,即词法分析和语法分析。作为编译的第一阶段,词法分析器 负责将字符流转化为记号流并提交给语法分析使用。语法分析负责分析记号流中的语法结构,为代码生成做好准备。关键字语法分析;BNF 范式;词法分析; 递归下降分析;创新点本文的创新点在于通过编写词法分析与语法分析程序来实现 C Minus 语言分析程序IIC Minus Language Analysis ProgramHuang Meng Wang Chu-YangAbstractProgramming design language and compiling theories

3、 are critical to the wide application of computers and compilers are also programmers use everyday tools. Although the compiler related all technology and the development of the last several decades has mature gradually, but the compilers structure principle and technology is still computer professi

4、onals for one of the theoretical knowledge. This paper realize a compiler projects, namely constructing a lightweight class C language (namely C Minus language) analyzer. Although C Minus language is a pilot project, but through this project can grasp the basic programming language analysis techniqu

5、e. This project C Minus language analysis program is divided into two parts, namely the lexical analysis and grammatical parser. As the first phase of the compiling phase, lexical analyzer is responsible for changing characters into token flow then and forward tokens to the parser. Grammar parser re

6、sponsible for recognizing the grammar structure condtructs, for code generation . Key wordsIIIGrammar analysis; BNF paradigm; Lexical analysis; Recursive descent analysis InnovationThis paper is the innovation points by writing and grammatical analysis program lexical analysis to achieve C Minus lan

7、guage analysis program IV目 录第 1 章 开发背景 .- 1 -第 2 章 词法分析 .- 1 -2.1 目的及意义 .- 1 -2.2 词法分析器的作用 .- 1 -2.3 设计分析 .- 2 -2.4 设计要求 .- 3 -2.4.1 待分析的简单的词法 .- 3 -2.4.2 各种单词符号对应的种别码: .- 3 -2.4.3 词法分析程序的功能: .- 4 -2.5 词法分析程序的算法思想 .- 5 -2.5.1 主程序示意图 .- 5 -2.5.2 扫描子程序的算法思想: .- 6 -2.5.3 词法分析程序的 C 语言代码 .- 7 -2.6 结果分析 .

8、- 12 -2.7 总结 .- 13 -第 3 章 语法分析 .- 14 -3.1 语法分析器的作用 .- 14 -3.2 设计分析 .- 15 -3.3 设计要求 .- 15 -3.3.1 待分析的简单语言的语法 .- 15 -3.3.2 实验要求说明 .- 16 -3.3.3 语法分析程序的酸法思想 .- 16 -3.4 语法分析程序的 C 语言代码 .- 19 -3.5 结果分析 .- 25 -3.6 总结 .- 26 -第 4 章 结束语 .- 27 -致 谢 .- 28 -参考文献 .- 29 - 1 -C minus 语言分析程序黄盟 指导教师 王初阳 第 1 章 开发背景C 语

9、言是在 70 年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式 发表了 C 语言。C 语言的表现能力和处理能力极强。它不 仅具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。C Minus 是一种适合编译器设计方案的语言,它比 T I N Y 语言更复杂,包括函数和数组。本质上它是 C 的一个子集,但省去了一些重要的部分,因此得名。编译器是一种相当复杂的程序,其代码的长度可从 10000 行到1000 000 行不等。 编写甚至 读懂这样的一个程序都非易事,大多数的计算机科学家和专业人员也从来没有编写过一个完整的编译器。但是,几乎所有形式的计算均要用到编译器,而且任何

10、一个与计算机打交道的专业人员都应掌握编译器的基本结构和操作。除此之外,计算机应用程序中经常遇到的一个任务就是命令解释程序和界面程序的开发,这比编译器要小,但使用的却是相同的技术。因此,掌握这一技术具有非常大的实际意义。纵观国外的大型编译器生产商,在不断的完善自己的产品。在自己领先的领域内不断地巩固自己的地位。以VS2010为例,Visual Studio是微 软公司推出的开发环境。是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010版本于 2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。- 2 -Visual Stu

11、dio 2010同时带来了 NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview-CTP),并且支持开发面向Windows 7的应用程序。除了 Microsoft SQL Server,它还支持 IBM DB2和Oracle数据 库。在 Windows平台程序开发环境中,VS目前已经奠定下了强大的基础。本次毕业设计通过编写词法分析与语法分析程序来实现 C Minus 语言分析程序第 2 章 词法分析2.1 目的及意义词法分析代表了一类问题的集合,即如何对输入字符串中的特定- 3 -模式进

12、行具备特定动作的匹配。解决此类问题,不仅对于编译器开发中的阶段抽象具有重要意义,更对应用领域中有关字符处理的需求具有深刻价值。设计和实现词法分析器,要用到词素、记号、正则表达式、输入字符双缓冲区、符号表、状 态转换图设计等概念。抽象地阐述这些概念往往晦涩难懂,而结合某一具体编译器的前端实现来分析探讨,则容易使概念条理清晰,目的明确。因此,从设计 一个轻量级语言开始,根据语言编译的要求设计和实现词法分析器,将原理与实践结合,将是研究此类问题的最佳途径。2.2 词法分析器的作用词法分析器的主要任务是读入输入字符,产生记号序列,提交给语法分析使用。这种交互通常可以通过使词法分析器作为语法分析器的子程

13、序或协作程序来实现。如下图所示:词法分析器 语法分析器记 号取下一个记号符 号 表源程序图 2-1 词法分析器与语法分析器的交互- 4 -在 C 的实践中,将词法分析器的主体定义为一个函数,函数声明为 token nexttoken()。函数可以又 语法分析器调用,返回给语法分析器一个记号。记号类由两个整型值组成,int tokentype 表示记号的类型(如 ID、NUM、分号、左括号等等),int lexeme 表示记号的属性(用来区分一类记号不同的个体差异。如 ID 表示标识符,但某一具体标识符的名字,即词素信息,则包含在 lexeme 中)。语法分析器可以根据返回的记号类型及记号属性,根据语法定义选择合适的产生式进行语法分析。另外,词法分析器还可以发现词法分析阶段源程序词法级错误,并做出相应的错误处理和提示。2.3 设计分析设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。2.4 设计要求2.4.1 待分析的简单的词法

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

当前位置:首页 > 学术论文 > 毕业论文

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