平生不会相思,才会相思,便害相思|

Graffiti404

园龄:2年4个月粉丝:0关注:0

编译原理(清华大学版)第三章

第三章 词法分析

正规式、正规文法

G=(VN,VT,P,S),如果P中每一个产生式的形式都是AaBAa,其中A,B都是非终结符,aVT,则是3型正规文法

  • 正规文法所描述的是VT上的正规集,即通过VN,VT,P,S来表示。
  • 正规式也称正则表达式。通过符号的有序连接来表示。

正规式递归定义:

设字母表为,辅助字母表={,ϵ,|,.,,(,)}

  1. ϵ都是上的正规式,它们表示的正规集分别为{ϵ}
  2. 任何a,a都是上的一个正规式,表示的正规集为{a}
  3. 假定e1e2都是上的正规式,他们表示的正规集分别为L(e1),L(e2),那么(e1)(e1|e2)e1e2e1也都是正规式,表示的正规集为L(e1)L(e1)L(e2)L(e1)L(e2)(L(e1))
  4. 仅由有限次使用上述三个步骤而定义的表达式才是上的正规式,仅由这些正规式所表示的符号串的集合才是上的正规集。

正规式符合的代数规律

  1. r|s=s|r  

  2. r|(s|t)=(r|s)|t  

  3. (rs)t=r(st)  

  4. r(s|t)=rs|rt,(s|t)r=sr|tr  

  5. ϵr=r,rϵ=r  ϵ

  6. r|r=r  

正规式和正规文法的等价性

  1. 将正规式转换为正规文法

    重点是两个基本正规式产生式:

    • AxyAxBAyBxBBy

    • Ax|yAxAy

  2. 将正规文法转换为正规式

规则 文法产生式 正规式
规则 1 AxB  By A=xy
规则 2 AxA|y Axy
规则 3 Ax  Ay Ax|y

有穷自动机

作用:识别正规集,识别正规文法定义的语言和正规式表示的集合。

分类:

  • 确定的有穷自动机DFA
  • 不确定的有穷自动机NFA

确定的有穷自动机

定义:是一个五元组

M=(K,,f,S,Z)

  1. K是一个有穷集,每一个元素称为一个状态
  2. 是一个有穷字母表,每个元素称为一个输入符号,也称为输入符号表。
  3. f是转换函数,是K×K上的映像。
  4. SK,是唯一的一个初态。
  5. ZK,是一个终态集,也称之为接收状态或结束状态。

可接受的定义

  • 对于中的任意符号串t,若存在一条从初态节点到某一终态节点的道路,且这条路上所有的弧的标记符连接成的符号串等于t,则称t可为DFA M所接受,若M的初态节点同时又是终态节点,则空字可为M所识别(接受)。

  • t,f(S,t)=P,其中SDFA M的开始状态,PZZ是终态集。则称t可为DFA M所接受。

拓展:

​ 设QK,函数f(Q,ϵ)=Q​。(如果输入符号是空串,则停留在原来的状态上)

​ 一个输入符号串t(将它改写为t1tx的形式,其中t1tx),在DFA  M运行的定义为:

f(Q,t1tx)=f(f(Q,t1),tx)

考点:证明某某字符串是可接受的。

不确定的有穷自动机

定义:是一个五元组

M=(K,,f,S,Z)

  1. K是一个有穷集,每一个元素称为一个状态
  2. 是一个有穷字母表,每个元素称为一个输入符号,也称为输入符号表。
  3. f是转换函数,是K×K的全体子集的映像,即K×2K,其中2K表示K的幂集。
  4. SK,是非空初态集。
  5. ZK,是一个终态集,也称之为接收状态或结束状态。

NFA转换为等价的DFA

确定有穷自动机的化简

正规式和有穷自动机的等价性

正规式和有穷自动机的等价性

本文作者:Graffiti404

本文链接:https://www.cnblogs.com/graffiticode/p/18139098

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   Graffiti404  阅读(126)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起