词法分析器(最新整理版).docVIP

  • 1
  • 0
  • 约7.65千字
  • 约 8页
  • 2024-02-23 发布于江苏
  • 举报

?词法分析器报告

课程

编译原理

实验项目

词法分析器

专业年级

计科07级

姓名

李专

学号

0705010136

指导教师

实验时间

2010-6-18

实验成绩

一、任务与目的

·任务:

1、使用C/C++程序设计语言和递归下降子程序的方法编写该函数绘图语言的词法分析器。并要求设计一个词法分析器的测试小程序来调用自己编写的词法分析器测试各种不同的输入。

2、词法分析的任务是对输入的字符串形式的源程序按顺序进行扫描,在扫描的同时,根据源语言的词法规则识别具有独立意义的单词(符号),并产生与其等价的属性字流(内部编码)作为输出。通常属性字流即是对识别的单词给出的标记符号的集合。

·目的:

通过自己动手编写词法分析器,掌握记号、模式与单词,掌握正规式与正规集,掌握有限自动机,掌握如何从正规式到词法分析器的各种算法。理解如何理论联系实际以及明白理论与实际的差别。

二、分析与设计

???词法分析器的本质:基本任务是进行模式匹配,其关键在于分析过程中的模式说明和模式识别方法,在编译分析中即正规表达式和有限自动机。

构造词法分析器方法:1、手工构造;2、利用自动生成工具LEX。但是无论用那种方法,其内在工作原理都是相同的,都要经过正规式到最小状态DFA的转换。

词法分析器可有两种:一种是把词法分析器作为语法分析的一个子程序,一种是把词法分析器作为编译程序的独立一遍.在前一种情况下,词法分析器不断地被语法分析器调用,每调用一次词法分析器将从源程序的字符序列拼出一个单词,并将其Token值返回给语法分析器.后一种情况则不同,词法分析器不是被语法分析器不断地调用,而是一次扫描全部单词完成编译器的独立一遍任务。

词法分析程序一般具有如下功能:读入字符串形式的源程序;识别出具有独立意义的最小语法单位:单词。

???事实上,由正规表达式到最小化DFA的转换源程序中的测试生成串部分就是对所输入的单词进行判断,看其是否能被生成的DFA接受(也就是这个单词是否符合正规式定义的要求)。这本质上就是一个简单的词法分析。

定义某种语言的单词,并给出编号。该语言单词包括:保留字、运算符、标识符、常量、格式符等。根据给定的语言子集构造词法分析器。输出为中间文件。

在设计时为了便于理解,不使用内部编码而用枚举对同类型的单词进行标识。例如所有的常量统一用“CONST_ID”对其进行标识,当扫描时遇到常量就输出该常量的值和“CONST_ID”标识。

这里给出词法分析程序大概的设计方法:

???????????1、根据要求写出词法分析的正规文法G;

???????????2、根据正规文法G,写出正则式RE;

???????????3、根据正则式RE,画出NFA;

???????????4、将NFA转化为DFA;

???????????5、将DFA转化为mininumstateDFA;

???????????6、mininumstateDFA就是词法分析程序的流程图,根据此流程图编写相应的词????法分析程序。

以下是较为详细的设计:

①总体结构与模块划分

测试模块(scannermain.cpp)

词法分析器模块(scanner.hscanner.cpp)

②重要数据结构

·枚举记号种类

enumToken_Type{

????ORIGIN,SCALE,ROT,IS,TO,STEP,DRAW,FOR,FROM,??????????????????//保留字

????T,?????????????????????????????????????????????????????????????????//参数

????SEMICO,L_BRACKET,R_BRACKET,COMMA,????????????????????????????????//分隔符号

????PLUS,MINUS,MUL,DIV,POWER,??????????????????????????????????????//运算符

????FUNC,??????????????????????????????????????????????????????????????//函数

????CONST_ID,??????????????????????????????????????????????????????????//常数

????NONTOKEN,??????????????????????????????????????????????????????????//空记号

????ERRTOKEN???????????????????????

文档评论(0)

1亿VIP精品文档

相关文档