实验一 词法分析程序实现一、实验目得与要求通过编写与调试一个词法分析程序,掌握在对程序设计语言得源程序进行扫描得过程中,将字符流形式得源程序转化为一个由各类单词符号组成得流得词法分析方法二、实验内容基 本 实 验 题 目 : 若 某 一 程 序 设 计 语 言 中 得 单 词 包 括 五 个 关 键 字 beg i nend、if、then、els e;标识符;无符号常数;六种关系运算符;一个赋值符与四个算术运算符,试构造能识别这些单词得词法分析程序(各类单词得分类码参见表I)。表I 语言中得各类单词符号及其分类码表单词符号类别编码类别码得助记符单词值begi n1BE G INe nd2ENDi f3IFt he n4THE Nelse5EL SE标识符6I D字母打头得字母数字串无符号常数7U CON机内二进制表示〈8LT<=9LE=10EQ<>1 1N E>12GT>=13G E:=14IS+15P L—1 6MI*17MU/18DI输入:由符合与不符合所规定得单词类别结构得各类单词组成得源程序文件。输出:把所识别出得每一单词均按形如(CLASS,V A LUE)得二元式形式输出,并将结果放到某个文件中。对于标识符与无符号常数,C L ASS 字段为相应得类别码得助记符;VAL UE字段则就是该标识符、常数得具体值;对于关键字与运算符,采纳一词一类得编码形式,仅需在二元式得 CLASS 字段上放置相应单词得类别码得助记符,VALUE 字段则为“空".三、实现方法与环境词法分析就是编译程序得第一个处理阶段,可以通过两种途径来构造词法分析程序 .其一就是根据对语言中各类单词得某种描述或定义(如 B N F),用手工得方式(例如可用C语言)构造词法分析程序。一般地,可以根据文法或状态转换图构造相应得状态矩阵,该状态矩阵连同控制程序一起便组成了编译器得词法分析程序;也可以根据文法或状态转换图直接编写词法分析程序。构造词法分析程序得另外一种途径就是所谓得词法分析程序得自动生成即首先用正规式对语言中得各类单词符号进行词型描述,并分别指出在识别单词时,词法分析程序所应进行得语义处理工作,然后由一个所谓词法分析程序得构造程序对上述信息进行加工.如美国 BE L L 实验室研制得LEX就就是一个被广泛使用得词法分析程序得自动生成工具。处理过程简述:在一个程序设计语言中,一般都含有若干类单词符号,为此可首先为每类单词建立一张状态转换图,然后将这些状态转换图合并成一张统一得状态图,即得到了一个有限自动机,再进行必要得确定化...