【编译原理】第3章 词法分析

3 词法分析


一、词法分析程序

词法分析----逐个读入源程序字符并按照构词规则切分成一系列单词
主要任务:读源程序,产生单词符号
其他任务:滤掉空格,跳过注释、换行符|追踪换行标志,复制出错源程序|宏展开,……

单词符号一般可分为下列5种:
①基本字,关键字(保留字):BEGIN、 END、 IF、 THEN等
②标识符(用户自定义标识符 + 关键字): 用户定义的变量名、常数名、过程名
③常数(量):如10、25、100等整数
④运算符: 如+、-、*、/、:=、#、>=、<=等
⑤界符:如‘,’、‘.’ 、‘;’ 、‘(’ 、‘)’等

二、正规表达式与正规集(正规语言)

正规表达式----说明单词的pattern的一种重要的表示法(记号),是定义正规集的工具

定义(正规式和它所表示的正规集
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

若两个正规式e1和e2所表示的正规集相同,则说e1和e2等价,写作e1=e2。

设r,s,t为正规式,正规式服从的代数规律有:
在这里插入图片描述

正规文法和正规式
在这里插入图片描述
∑ \sum 上的正规式r ,存在一个RG=( V N V_N VN, V T V_T VT,P,S): L(G)= L(r)
对G=( V N V_N VN, V T V_T VT,P,S),存在一个 ∑ = V T \sum=V_T =VT上的正规式r : L(r)= L(G)

正规式与正规文法间的转换
在这里插入图片描述
在这里插入图片描述

三、有穷自动机

确定有穷自动机(DFA) 不确定有穷自动机(NFA)

D F A \displaystyle\color{red}DFA DFA
在这里插入图片描述
DFA与文法对应关系:
状态集K — V N V_N VN    字母表— V T V_T VT    转换函数f— P    初态S—S

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
N F A \displaystyle\color{red}NFA NFA
在这里插入图片描述
与DFA区别:①S为初态集 ②f函数值不唯一,即后继状态为集合
在这里插入图片描述
在这里插入图片描述

NFA的确定化    子集法
DFA是NFA的特例.对每个NFA  N一定存在一个DFA M ,使得 L(M)=L(N)。
对每个NFA N存在着与之等价的DFA M ,与某一NFA等价的DFA不唯一。
对NFA确定化要解决的两个问题→确定初态唯一性、确定后继状态唯一性

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
DFA的最小化    分割法
最小化操作:去除多余状态、合并等价状态
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、有穷自动机和正规表达式

有穷自动机和正规表达式的等价性:
1)对于∑上的一个NFA M,可以构造一个∑上的正规式R,使得L( R)=L(M)。
2)对于∑上的一个正规式R,可以构造一个∑上的NFA M,似的L(M)=L( R)。

有穷自动机与正规表达式间的相互转换
在这里插入图片描述
在这里插入图片描述

五、有穷自动机和正规文法

有穷自动机和正规文法的等价性:
1)对于一个NFA M,都存在 一个正规文法G,使得L(G)=L(M).
2)对于一个正规文法G, 都存在一个NFA M, ,使得L(M)=L(G).

NFA与文法G[S]对应关系:
状态集K — V N V_N VN 字母表— V T V_T VT 转换函数f— P(产生式) 初态S—S(开始符号) 终态Z — 新增终态Z

有穷自动机与正规文法间的相互转换
在这里插入图片描述
在这里插入图片描述

bingo~   ✨ 成功的唯一秘诀———坚持到最后一分钟

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值