形式语言与编译-正则表达式和正则语言

文章介绍了正则表达式的概念,包括原子语言、语言运算以及如何构建正则表达式。接着讨论了正则语言的例子,如不同类型的0-1串。此外,文章提到了通用NFA(GNFA)的特性,即只有一个接受状态且弧上标记为正则表达式。最后,文章指出正则语言在特定运算下是封闭的,比如连接、并和闭包。
摘要由CSDN通过智能技术生成

正则表达式

概念

原子语言:Σ上最基本的语言φ、{ε}、{a}, a∈Σ。
语言上运算:连接、闭包、并
构造方法:从原子语言开始,利用语言上的运算逐步组合而
成,其中可使用括号。

正则语言举例

表达式含义
0+1长度为1的01串
(0+1)*任意0-1串{ε, 0, 1, 00, 01, 10, 11, …}
(0+1)*010以010结尾的0-1串
(0+1)*11(0+1)*包含子串11的0-1串
(1+01+001)*(ε+0+00)不会有连续三个0的串

正则语言和NFA

在这里插入图片描述
举例:
在这里插入图片描述

通用NFA(GNFA)

  1. 只有一个接受状态
  2. 没有射入到初始状态的弧
  3. 没有从接受状态射出的弧
  4. 弧上标记采用正则表达式作标记

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

GNFA状态约简

在这里插入图片描述

正则语言

一般来说,语言集合(语言簇)对于某个运算是封闭的,如
果运算结果仍然属于这个簇。
正则语言在连接、并、闭包运算下都是封闭的。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值