part3 词法分析

43
Part3 词词词词 词词 词词

Upload: charity-trevino

Post on 02-Jan-2016

74 views

Category:

Documents


6 download

DESCRIPTION

Part3 词法分析. 授课:胡静. 内容提要. 词法分析器的作用 词法分析程序的设计与实现 —— 状态图 词法分析程序的自动生成 —— 有穷自动机. 词法分析器的自动产生. LEX 工作过程. 首先,使用 LEX 语言写一个定义词法分析器的源程序 lex.l 。 然后利用 LEX 编译器将 lex.l 转换成 C 语言程序 lex.yy.c 。它包括从 lex.l 的正规表达式构造的状态转换图的表格形式以及使用该表格识别词素的标准子程序。 与 lex.l 中正规表达式相关联的动作是 C 代码段,这些动作可以直接加入到 lex.yy.c 中。 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Part3 词法分析

Part3 词法分析

授课:胡静

Page 2: Part3 词法分析

内容提要

词法分析器的作用

词法分析程序的设计与实现——状态图

词法分析程序的自动生成——有穷自动机

Page 3: Part3 词法分析

词法分析器的自动产生

Page 4: Part3 词法分析

LEX 工作过程

首先,使用 LEX 语言写一个定义词法分析器的源程序 lex.l 。然后利用 LEX 编译器将 lex.l 转换成 C 语言程序lex.yy.c 。它包括从 lex.l 的正规表达式构造的状态转换图的表格形式以及使用该表格识别词素的标准子程序。与 lex.l 中正规表达式相关联的动作是 C 代码段,这些动作可以直接加入到 lex.yy.c 中。最后, lex.yy.c 通过 C 编译器生成目标程序,这个目标程序就是把输入流转换成记号序列的词法分析器。

Page 5: Part3 词法分析
Page 6: Part3 词法分析

LEX 工作过程Lex编译程序Lex源程序 词法分析器L

词素

FA模拟器

转换表词法分析器

输入缓冲区

Page 7: Part3 词法分析

LEX 的实现

Page 8: Part3 词法分析

单个正则表达式

Page 9: Part3 词法分析

词法分析器

Page 10: Part3 词法分析

处理多样的 REs

将所有的正则表达式的 NFA 联合在一起,变成一个单一的有限自动机

Page 11: Part3 词法分析

LEX 二义性的处理方法

RE’s + RE’s + 优先匹配原则 优先匹配原则 + + 最长匹配规则 最长匹配规则 = = 词法分析器的定义词法分析器的定义

Page 12: Part3 词法分析

词法分析器输出端是 Token 流

将 tokens 和终态联系在一起。当到达一个终态时,就将相应的 token 输出。

最长匹配当到达一个终态时,要查看是否存在更进一步的转换。如果不存在,则返回当前终态对应的 token

优先级规则当终态对应多个 token 的时候,有可能会有相同的最长匹配的 token将这个终结状态和最高优先级的 token 联系起来。

Page 13: Part3 词法分析

LEX 举例

Page 14: Part3 词法分析

LEX 举例

NFA 确定化给出状态转换表

Page 15: Part3 词法分析

LEX 程序举例

Page 16: Part3 词法分析

词法分析总结

Page 17: Part3 词法分析
Page 18: Part3 词法分析
Page 19: Part3 词法分析
Page 20: Part3 词法分析
Page 21: Part3 词法分析
Page 22: Part3 词法分析
Page 23: Part3 词法分析
Page 24: Part3 词法分析
Page 25: Part3 词法分析
Page 26: Part3 词法分析
Page 27: Part3 词法分析
Page 28: Part3 词法分析
Page 29: Part3 词法分析
Page 30: Part3 词法分析
Page 31: Part3 词法分析
Page 32: Part3 词法分析
Page 33: Part3 词法分析
Page 34: Part3 词法分析
Page 35: Part3 词法分析

DFA 最小化

Page 36: Part3 词法分析
Page 37: Part3 词法分析
Page 38: Part3 词法分析
Page 39: Part3 词法分析
Page 40: Part3 词法分析
Page 41: Part3 词法分析
Page 42: Part3 词法分析
Page 43: Part3 词法分析

Thanks for your time!Thanks for your time!

Questions & AnswersQuestions & Answers