24/12/27莆田学院许振和1第3章词法分析(一)24/12/27莆田学院许振和2主要内容:词法分析的任务,手工实现词法分析程序,正规式与有穷自动机,词法分析程序的自动生成重点掌握:词法分析器的功能和接口,用状态转换图设计和实现词法分析程序,正规文法、正规式和有穷状态自动机的概念及相互转换本章要求24/12/27莆田学院许振和3词法分析(一)内容一、词法分析概述二、词法分析程序的设计方法24/12/27莆田学院许振和4词法分析在编译器的位置每个阶段将源程序从一种表示转换成另一种表示
词法分析器错误处理器符号管理表语法分析器语义分析器中间代码生成器代码优化器代码生成器编译的各个阶段源程序目标程序编译器是分阶段执行的
24/12/27莆田学院许振和5一、词法分析概述词法分析器可以分为两个阶段:第一阶段是扫描阶段;第二阶段是词法分析阶段
词法分析器有两种实现模式:完全独立模式、相对独立模式24/12/27莆田学院许振和61
词法分析器的功能功能:逐个读入源程序字符并按照构词规则切分成一系列单词主要任务:读入源程序,输出单词符号其他任务:滤掉空格,跳过注释、换行符追踪换行标志,指出源程序出错的行列位置宏展开,……关键:找出单词的分隔符源程序词法分析程序Token串语法分析程序24/12/27莆田学院许振和7单词:是语言中具有独立意义的最小单位,常用单词分类:保留字:具有固定意义的标识符运算符界符标识符:表示各种名字常数对于一个程序设计语言,保留字、运算符和界符都是确定的,可以给以固定的编号(种别码)
标识符是根据构词规则定义的,常数是符合定义的各种类型的常数24/12/27莆田学院许振和8种别码:是对能识别的单词的分类编码有多种编码方式:标识符一般统一为一种:一个编号常数按类型分别编码:整数、实数、布尔、字符关键字一般一字一种运算符