电子科技大学计算机学院实验中心 计 算 机 专 业 类 课 程 实验报告 课 程 名 称 : 编 译 原 理 学 院 : 计 算 机 科 学 与工程 专 业 : 计 算 机 科 学 与技术 学 生姓名 : *** 学 号: ************* 指导教师: *** 日 期: 2015 年 6 月 5 日 电 子 科 技 大 学 实 验 报 告 实验一 一、实验名称:词法分析器的设计与实现 二、实验学时:4 三、实验内容和目的: 实验内容: 求 n!的极小语言的源程序作为词法分析的输入程序,根据给定的文法对其进行词法分析并将单词符号与种别组成的二元式按指定格式输出到 ou t.dy d 文件中,同时将词法错误输出到 error.err 文件中。 其中二元式文件 ou t.dy d 有如下要求: (1)二元式形式: 单词符号 种别 (2)每行后加上 “...EOLN24” (3)文件结尾加上 “...EOF25” 出错文件 error.err 中错误信息格式如下: ***LINE:行号 错误性质 电子科技大学计算机学院实验中心 实验目的: 通过设计并实现一个词法分析器,了解和掌握词法分析程序设计的原理及相应的程序设计方法,同时提高编程能力。 四、实验原理: 1 、编译程序要求对高级语言编写的源程序进行分析和合成,生成目标程序。词法分析是对源程序进行的首次分析,实现词法分析的程序为词法分析程序。像用自然语言书写的文章一样,源程序是由一系列的句子组成的,句子是由单词符号按一定的规则构成的,而单词符号又是由字符按一定规则构成,因此,源程序实际上是由满足程序语言规范的字符按照一定的规则组合起来构成的一个字符串。 2 、词法分析的功能是从左到右逐个地扫描源程序字符串,按照词法规则识别出 单词符号作为输出,对识别过程中发现的词法错误,输出相关信息。 3 、单词符号是程序语言最基本的语法符号,为便于语法分析,通常将单词符号分为五类(标识符,基本字,常数,运算符,界符),而本次实验中单词符号与其对应的种别如下图所示: 4 、状态转换图是有限有向图,是设计词法分析器的有效工具。图中的节点代表状态,节点间的有向边代表状态之间的转换关系,有向边上标记的字符表示状态转换的条件。本实验中的状态转换图如下图所示: 5、本程序所设计主要方法及作用如下: ① int isletter(char c) 判别字符 c 是否为字母 ② int isdigital(char c) 判别字符 c 是否为数字...