编译原理 | 词法分析

第三章 词法分析

3.1 单词的描述

词法分析器的任务
在这里插入图片描述
词法分析器的位置
在这里插入图片描述
将词法分析器设计为单独的遍具有如下优点:

  • 简化编译器的设计:任务独立,语法分析更简易
  • 提高编译器的效率
  • 增强编译器的可移植性:只有词法分析与输入设备有关。

词法单元符号设计
语法分析器依据文法识别token串,符号的集合即是文法的终结符集合。
在这里插入图片描述
单词的描述:正则表达式

正则表达式可以由较小的正则表达式按照特定规则递归地构建。每个正则表达式 r r r定义(表示)一个语言,记为 L ( r ) L(r ) L(r)。这个语言也是根据 r r r的子表达式所表示的语言递归定义的

如果两个正则表达式 r r r s s s表示同样的语言,则称 r r r s s s等价,记作 r = s r=s r=s

运算的优先级:*、连接、|
在这里插入图片描述
在这里插入图片描述

对任何正则文法 G,存在定义同一语言的正则表达式 r
对任何正则表达式 r,存在生成同一语言的正则文法 G

正则定义
在这里插入图片描述

3.2 单词的识别(重点)

有穷自动机:系统只需要根据当前所处的状态和当前面临的输入信息就可以决定系统的后继行为。

  • 给定输入串 x x x,如果存在一个对应于串 x x x的从初始状态到某个终止状态的转换序列,则称串 x x x被该FA接收
  • 由一个有穷自动机 M M M接收的所有串构成的集合称为该FA定义(或接收)的语言,记为 L ( M ) L(M) L(M)

服从最长子串匹配原则

在这里插入图片描述

3.2.1 DFA

在这里插入图片描述

3.2.2 NFA

在这里插入图片描述
带有“ε-边”的 NFA
在这里插入图片描述

DFA和NFA可以识别相同的语言

  • 对任何NFA N N N ,存在定义同一语言的DFA D D D
  • 对任何DFA D D D ,存在定义同一语言的NFA N N N
3.2.3 从正则表达式到有穷自动机

在这里插入图片描述

3.2.4 从NFA到DFA的转换

在这里插入图片描述
在这里插入图片描述

3.3 词法分析阶段的错误处理

在这里插入图片描述

  • 21
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值