thunder_sword's blog thunder_sword's blog
来看漫画丫~
首页
分类
标签
归档
GitHub

thunder-sword

网安界的小菜鸡
来看漫画丫~
首页
分类
标签
归档
GitHub
  • 引论
  • 语言及其文法
  • 词法分析
    • 1.正规文法
    • 2.正规式
    • 4.有穷自动机
      • 4.1.确定的有穷自动机DFA
      • 4.2.不确定有穷自动机NFA
      • 4.3.相互转换
      • 4.4.DFA的化简
  • 自顶向下语法分析方法
  • 自底向上优先分析
  • LR分析方法
  • 编译原理
thunder-sword
2021-10-12

词法分析

# 词法分析(lexical analysis)程序设计

逐个读入源程序字符并按照构词规则切分成一系列单词(Token)。 单词是语言中具有独立意义的最小单位,包括保留关键字、标识符、常量、运算符、标点符号、分界符等。
词法分析是编译过程中的一个阶段,在语法分析前进行 。也可和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。

词法分析程序和语法分析程序的关系:

image-20211001104513243

词类编码原则:

界符和运算符:一字一码
常数可统归一类,也可按类型(整型、实型、布尔型等),每个类型的常数划分成一类。一类一码。
所有的标识符分为一类。一类一码。
1
2
3

image-20211001104756967

词法分析中如何识别单词

识别单词:逐个从源程序中读取字符,根据构成单词的词法规则拼成一个有意义的单词; 词法规则描述工具: (1)状态转换图 (2)巴克斯范式BNF (3)自动机DFA (4)正则(规)表达式(5)正则文法(3型文法); 本章节3.3-3.6将介绍以上5种描述工具及它们之间的等价性,如何互相转换,如何实现(lex);

# 单词的形式化描述工具

# 1.正规文法

image-20211001104938482

# 2.正规式

正规式也称正则表达式,是描述单词的构成语法的有效工具,是定义正规集的数学工具。 正规表达式(regular expression)是说明单词的模式(pattern)的一种重要的表示法(记号),用以描述单词符号。

# 4.有穷自动机

有穷自动机作为一种单词识别器,能准确地识别正规集,即识别正规式所表示的集合。应用有穷自动机理论,为词法分析程序的自动构造寻找有效的方法和工具。

有穷自动机分为两类:确定的有穷自动机(Deterministic Finite Automata, DFA)和不确定的有穷自动机(Nondeterministic Finite Automata, NFA) 。

# 4.1.确定的有穷自动机DFA

image-20211001105225869image-20211001105238997

image-20211001105252221

状态图:

image-20211001105358295

DFA在计算机内部表示为一个矩阵数据结构:

image-20211001105420475

例子:

image-20211001105440244

DFA M所能接受的符号串的全体记为L(M).

image-20211001105502790

# 4.2.不确定有穷自动机NFA

image-20211001105549649

例子: image-20211001105606523

image-20211001105632922

image-20211001105744631

image-20211001105845209

NFA状态集合I:

image-20211001110104988

# 4.3.相互转换

image-20211001105818511

image-20211001105943860

# 子集法:

image-20211001110203831image-20211001110219439

例子:

image-20211001110244742image-20211001110257145

# 4.4.DFA的化简

image-20211001110417381

image-20211001110427667

例子:

image-20211001110443333

# 最小状态DFA:

image-20211001110512260

# 分割法:

把一个DFA的状态分成一些不相交的子集,不同子集的状态都是可区别的,同一子集中的任何两个状态都是等价的.

image-20211001110704950image-20211001110715898

例子:

image-20211001110837988

image-20211001110859748

语言及其文法
自顶向下语法分析方法

← 语言及其文法 自顶向下语法分析方法→

最近更新
01
计算机系统的硬件结构
10-12
02
计算机系统概论
10-12
03
进程
10-12
更多文章>
Theme by Vdoing | Copyright © 2019-2021 Evan Xu | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×