文档库 最新最全的文档下载
当前位置:文档库 › 词法分析器实验报告及源代码

词法分析器实验报告及源代码

数学与软件科学学院实验报告

学期:13至14__ 第_2 学期 2014年3月17 日

课程名称:编译原理专业:2011级5_班

实验编号:01 实验项目:词法分析器指导教师_王开端

姓名:张世镪学号: 2011060566实验成绩:

一、目的

学习编译原理,词法分析就是编译的第一个阶段,其任务就是从左至右挨个字符地对源程序进行扫描,产生一个个单词符号,把字符串形式的源程序改造成单词符号串形式的中间程序。执行词法分析的程序称为词法分析程序,也称为词法分析器或扫描器。词法分析器的功能就是输入源程序,输出单词符号

做一个关于C的词法分析器,C++实现

二、任务及要求

1.词法分析器产生下述C的单词序列

这个C的所有的单词符号,以及它们的种别编码与内部值如下表:

= + - * / & <<=>>===!= && || , : ; { } [ ] ( ) ID与NUM的正规定义式为:

ID→letter(letter | didit)*

NUM→digit digit*

letter→a | … | z | A | … | Z

digit→ 0 | … | 9

如果关键字、标识符与常数之间没有确定的算符或界符作间隔,则至少用一个空格作间隔。空格由空白、制表符与换行符组成。

三、大概设计

1、设计原理

词法分析的任务:从左至右逐个字符地对源程序进行扫描,产生一个个单词符号。

理论基础:有限自动机、正规文法、正规式

词法分析器又称扫描器:执行词法分析的程序

2、词法分析器的功能与输出形式

功能:输入源程序、输出单词符号

程序语言的单词符号一般分为以下五种:关键字、标识符、常数、运算符、界符。

3、输出的单词符号的表示形式:

(单词种别,单词符号的属性值) 单词种别用整数编码,关键字一字一种,标识符统归为一种,常数一种,各种符号各一种。

4、状态转换图实现

三、程序设计

1、词法分析器的流程图

2、总体模块设计

/*用来存储目标文件名*/

string file_name;

/*提取文本文件中的信息。*/

string GetText();

/*获得一个单词符号,从位置i开始查找。

//并且有一个引用参数j,用来返回这个单词最后一个字符在str的位置。*/

相关文档
相关文档 最新文档