1、 1 目目 录录 第 1 章 概述 . 2 1.1 编译原理概述 . 2 1.1.1 词法分析器概述 . 2 第 2 章 词法分析器课程设计 2 2.1 课程设计目的 2 2.2 课程设计要求及内容 2 第 3 章 问题分析及相关原理介绍 . 3 3.1 设计思想及算法. 3 3.2 算法实现及模拟. 4 第 4 章 设计思路及关键问题的解决方法 . 5 4.1 设计流程图 5 第 5 章 运行结果及测试分析 6 5.1 运行结果及功能说明 . 6 心得体会 7 附 录 源程序. 8 2 第 1 章 概述 1.1 编译原理概述 编译原理是介绍编译器构造的一般原理和实现方法的课程, 其中包括词
2、法分析、语法分析、语义分析、中间代码生成、目标代码生成优化、独立于 机器的优化和依赖于机器的优化等。编译器技术的发展,特别是计算机体系 结构的发展对编译技术的推动, 使其成为计算机专业人士所必需具备的基础 知识之一。 1.1.1 词法分析器概述 词法分析器是通过词法分析程序对构成源程序的字符串从左到右的扫 描,逐个字符地读入源程序字符并按照构词规则切分成一个一个具有独立 意义的单词。并确定其属性(如保留字、标识符、运算符、界限符和常量 等)。再把它们转换称长度统一的标准形式属性字(TOKEN)。而词 法分析器的功能是输入源程序,输出单词符号,并且词法分析器有两种处 理结构:一种是把词法分析器作
3、为主程序;另一种是把词法分析器作为语法 分析程序调用的子程序。下面我所要介绍的词法分析器是第一种把它作为 主程序。 第 2 章 词法分析器课程设计 2.1 课程设计目的 通过课程设计进一步理解高级语言在计算机中的执行过程, 加深对编译 原理中重点算法和编译技术的理解,提高自己的编程能力,培养好的程序设 计风格。同时通过某种可视化编程语言的应用,具备初步的 Windows 环境 下的编程思想 2.2 课程设计要求及内容 2.2.1 词法分析器设计内容及要求 3 (1)设计内容: 运用所学习的编程工具编写词法分析器, 本次设计我采用 C+编写实现 其输入输出功能。 (2)设计要求及说明: 完成下述
4、文法所描述的单词符号的词法分析程序。 | | +|-|*|/|;|(|)|=| a|z|A|Z 0|9 说明: 1 假定该语言对字母的大小写不敏感,由指定文件读入预分析的源程 序,分析结果再写入指定文件; 2 语言关键字为:“if“,“else“,“then“,“for“,“while“,“do“; 第 3 章 问题分析及相关原理介绍 3.1 设计思想及算法 (1)主要算法的设计:该词法分析器首先扫描文件,识别出一系列具 有独立意义的基本语法单位单词,包括关键字、保留字、标识符、各种 常数、各种运算符及界符等。由于我们规定的 c+语言程序语句中涉及单词 较少,所以在词法分析阶段忽略了单词输入错误的检查,并在扫描后输出单词 符号。规定输出的单词符号格式为如下的二元式:(单词种别,单词自身的值)。 c+ 语言中定义了属于这五种类型的大量的单词, 但是由于预编译器只识别 我们自定义的注释,因此预编译器处理的单词集只是 c+