编译技术图式(第三章 词法分析)
编译技术图式(第三章 词法分析)
1、词法分析概述
2、词法分析器和语法分析器的关系
(1)词法分析作为单独的一遍
(2)词法分析作为子程序
3、词法分析器的输出
二元式 (单词类别<整数编码>,单词属性)
依赖于所对应的程序设计语言
关键字“一字一码”
标点符号“一字一码”
对标识符、常数、字符串等“一类一码”
丢弃其它不相关字符 (注释、空白符等)
4、词法分析器的实现
1)正则表达式:一种用来描述字符串集合的工具
2)字母表:一个有限的符号集合
集合{0, 1}是二进制字母表
3)字母表上的一个“串”或“句子” :字母表中符号的一个有穷序列
串s的长度,记作 |s|,指s中符号出现的次数
空串是长度为0的串,用ε表示
4)语言:给定字母表上一个任意的可数的串集合
5)正则表达式的递归定义
R*任意多次、R+至少一次
6)正则表达式的实现——有限自动机
有限自动机:确定的有限自动机/非确定的有限自动机
- 有限的有向图
- 初态唯一
- 有向边上标记字符,表示状态转换
- 若干终态(至少一个)