此资源包含源代码和实验报告。
一、实验目的
设计、编制、调试一个词法分析子程序-识别单词,加深对词法分析原理的理解。通过本实验的编程实践,使学生了解词法分析的任务,掌握词法分析程序设计的原理和构造方法,使学生对编译的基本概念、原理和方法有完整的和清楚的理解,并能正确地、熟练地运用。
二、实验要求
该程序要实现的是一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即关键字、标识符、数据、运算符、分界符等五大类,并依次输出各个单词的种类及单词符号自身值。若遇到错误则显示“Error”,然后跳过错误部分继续显示 。
三、实验内容
通过输入源程序从左到右对字符串进行扫描和分解,依次输出各个单词的内部编码及单词符号自身值;若遇到错误则显示“Error”,然后跳过错误部分继续显示。
以下是实现词法分析设计的主要工作:
(1)从源程序文件中读入字符。
(2)删除空格类字符,包括回车、制表符空格。
(3)按拼写单词,并用(单词,属性)二元式表示。
(4)如果发现错误则报告出错。
单词的基本分类:
关键字:由程序语言定义的具有固定意义的标识符。也称为保留字例如
i f、const; 单词种别码为1。
标识符:用以表示各种名字,如变量名、数组名、函数名;种别码为2。
数据: 任何数值常数。如 125,3.14等;种别码为3。
运算符:+、-、*、/、<、<=、= 、>、>=、<>;种别码为4。
分界符: ; 、, 、(、) 、[、];种别码为5。
Error:#、%等。
1