编译原理中的词法分析(lexical analysis)/扫描环节

此笔记包括词法分析的一些基础知识。

词法分析是编译六个步骤中的第一个步骤。其中,两个重要的知识点分别是正则表达式(regular expression)和
有限自动机(finite automata)。使用正则表达式可以标准地表示词法结构的串格式,而有限自动机应用于串格式的识别。

一个程序中的记号可以被分成几个种类:保留字/关键字、标志符、数字、文本或特殊符号。

正则表达式分为三个部分:基础、扩展及程序语言中的正则表达式。
第一部分,基础的正则表达式包括四个知识点:
	1. 基本定义
	2. 运算:重复、联结和选择(优先级由左至右)
	3. 括号:用于改变优先级
	4. 给正则表达式命名,便于使用
第二部分,扩展的正则表达式中包括五个知识点:
	1. +号:1个或多个;是重复的另一个版本
	2. .号:任意字符
	3. […]:选择字符,常见的有[0-9]、[a-z]、[a-zA-Z]
	4. ?号:可选
	5. ~号:不在给定集合中的任意字符
第三部分,程序语言中的正则表达式主要讨论程序语言中的各个部分该如何表示:
	1. 数
	2. 保留字和标识符
	3. 注释
	4. 语言定义要给出无二义规则
	5. 遵循最长子串原理,有时会遇到记号分隔符
	6. 处理先行
上一篇:基于visual Studio2013解决C语言竞赛题之0417四倍数


下一篇:JavaScript 初识闭包closure及总结