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