第三章词法分析 许畅 南京大学计算机系 2023年春季 版权所有南京大学计算机科学与技术系许畅2023春季版
许畅 南京大学计算机系 2023年春季 第三章 词法分析 版权所有 南京大学计算机科学与技术系 许畅 2023春季版
内容 。词法分析器的作用 ·词法单元的规约(正则表达式) 词法单元的识别(状态转换图) 词法分析器生成工具及设计 ·有穷自动机 2
内容 • 词法分析器的作用 • 词法单元的规约 (正则表达式) • 词法单元的识别 (状态转换图) • 词法分析器生成工具及设计 • 有穷自动机 2
词法分析器的作用 读入字符流,组成词素,输出词法单元序列 过滤空白、换行、制表符、注释等 将词素添加到符号表中 在逻辑上独立于语法分析,但是通常和语法分析 器处于同一趟中 词法单元 源程序 词法分 语法分 输出至语 析器 析器 义分析 getNextToken 符号表 图3-1词法分析器与语法分析器之间的交互 3
词法分析器的作用 • 读入字符流,组成词素,输出词法单元序列 • 过滤空白、换行、制表符、注释等 • 将词素添加到符号表中 • 在逻辑上独立于语法分析,但是通常和语法分析 器处于同一趟中 3
为什么要设立独立的词法分析器? 简化编译器的设计 词法分析器可以首先完成一些简单的处理工作 。 提高编译器效率 相对于语法分析,词法分析过程简单,可高效实现(下 推自动机Vs.有穷自动机) ·增强编译器的可移植性 4
为什么要设立独立的词法分析器? • 简化编译器的设计 – 词法分析器可以首先完成一些简单的处理工作 • 提高编译器效率 – 相对于语法分析,词法分析过程简单,可高效实现 (下 推自动机 vs. 有穷自动机) • 增强编译器的可移植性 4
词法单元、模式、词素 词法单元(token) <词法单元名、属性值(可选)> 单元名是表示词法单位种类的抽象符号,语法分析器 通过单元名即可确定词法单元序列的结构 属性值通常用于语义分析之后的阶段 模式(pattern) 描述了一类词法单元的词素可能具有的形式 词素(lexeme) 源程序中的字符序列 它和某个词法单元的模式匹配,被词法分析器识别为 该词法单元的实例 5
词法单元、模式、词素 • 词法单元 (token) – <词法单元名、属性值 (可选) > – 单元名是表示词法单位种类的抽象符号,语法分析器 通过单元名即可确定词法单元序列的结构 – 属性值通常用于语义分析之后的阶段 • 模式 (pattern) – 描述了一类词法单元的词素可能具有的形式 • 词素 (lexeme) – 源程序中的字符序列 – 它和某个词法单元的模式匹配,被词法分析器识别为 该词法单元的实例 5