news 2026/5/1 8:33:14

正规式(正则表达式)与正规集是形式语言理论中的核心概念,广泛应用于编译原理中的词法分析阶段

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
正规式(正则表达式)与正规集是形式语言理论中的核心概念,广泛应用于编译原理中的词法分析阶段

正规式(正则表达式)与正规集是形式语言理论中的核心概念,广泛应用于编译原理中的词法分析阶段。它们通过三种基本运算——或(|)、连接(・)、闭包(*)——递归地构造出能够描述特定字符串模式的表达式。

1. 核心概念:正规式与正规集

  • 定义逻辑

    • 正规式是一个由字母表 Σ 上的符号经过有限次应用“或”、“连接”、“闭包”运算生成的表达式。
    • 对应的正规集是该正规式所能匹配的所有字符串组成的集合。
  • 运算规则补充说明

    • 连接A·B表示先出现 A 的串,紧接着出现 B 的串;
    • A|B表示可以是 A 的串或 B 的串;
    • 闭包A*表示 A 出现任意多次(包括0次),即 ε(空串)、A、AA、AAA… 都属于该集合。
  • 优先级与省略规则

    • 闭包*优先级最高 → 然后是连接→ 最后是或|
    • ab*|c实际上等价于(a(b*)) | c
示例解析(Σ = {a, b}):
正规式正规集含义
ab只含字符串 “ab” 的集合:{“ab”}
`ab`
a*所有由 a 组成的任意长度字符串(含空串):{ε, a, aa, aaa, …}
(ab)*由若干个 “ab” 拼接而成的串:{ε, ab, abab, ababab, …}
`a(ab)*`
(ab)*abb形如 (ab)重复任意次后接 “abb”,如:abb, ababb, abababb…

2. 正规式的代数性质

这些性质用于正规式的化简和等价变换,在自动机最小化和优化中非常有用:

  • 交换律(仅对|成立)
    $ U|V = V|U $

  • 结合律
    $ (U|V)|W = U|(V|W) $
    $ (UV)W = U(VW) $

  • 分配律
    $ U(V|W) = UV|UW $
    $ (U|V)W = UW|VW $

  • 闭包恒等式
    $ \varepsilon* = \varepsilon $ (空串的闭包仍是空串)
    $ V** = V* $ (闭包的闭包等于自身)

  • 其他常见恒等式

    • $ \varnothing* = \varepsilon $
    • $ U|\varnothing = U $
    • $ U\varnothing = \varnothing $

3. 有限自动机(FA)

有限自动机是用来识别正规集的数学模型,分为两类:

(1)确定有限自动机(DFA)
  • 定义为五元组:(S, Σ, f, s₀, Z)

    • S:有限状态集合
    • Σ:输入字母表
    • f:S × Σ → S,确定性转移函数(每种输入唯一决定下一个状态)
    • s₀ ∈ S:唯一初始状态
    • Z ⊆ S:终止状态集合
  • 特点:

    • 无歧义:对于每个状态和输入字符,只有一个下一状态;
    • 易于实现为程序。
(2)非确定有限自动机(NFA)
  • 转移函数为:f: S × (Σ ∪ {ε}) → 2^S(可映射到状态子集)

  • 允许:

    • 多个转移路径(相同输入从同一状态出发到不同状态)
    • ε-转移(不读入字符也能改变状态)
  • 优势:

    • 更容易从正规式构造(如 Thompson 构造法)
  • 但最终可通过子集构造法转换为等价 DFA。

🔄关键定理:一个语言是某个正规式所表示的语言 ⇔ 它能被某个 FA 识别 ⇒ 即:正规式 ≡ NFA ≡ DFA 在语言能力上等价


补充背景:在词法分析中的作用

在编译器设计中:

  • 使用正规式来精确描述词法单元(token),例如:
    • 标识符:letter(letter|digit)*
    • 整数常量:digit+
  • 将这些正规式转化为NFA → DFA → 最小化DFA,进而生成高效的词法分析器(如 Lex 工具的工作流程)。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 10:17:25

Java毕设项目推荐-基于SpringBoot的高校学习讲座预约系统的设计与实现讲座预约:选择线下讲座、在线视频讲座,完成预约【附源码+文档,调试定制服务】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/4/23 20:08:44

PyTorch安装教程GPU版:从零配置CUDA加速的深度学习环境

PyTorch-CUDA 环境部署实战:如何快速构建高效能深度学习开发平台 在深度学习项目中,最令人沮丧的不是模型不收敛,而是环境配置失败——当你满心期待地运行训练脚本时,却收到一行冰冷的报错:“CUDA not available”。这…

作者头像 李华
网站建设 2026/4/18 23:13:09

Java毕设选题推荐:基于SpringBoot的河南特色美食分享系统的设计与实现信息展示、分享交流、在线预订、美食文化推广【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/5/1 8:12:31

Word2Vec 学习动力学:从特征提取到矩阵分解的洞见

Word2Vec 学习动力学:从特征提取到矩阵分解的洞见 在表征学习领域,一个核心问题是:模型在训练中究竟学到了什么,以及它是如何逐步习得这些知识的?Word2Vec 作为当代大型语言模型(LLM)的先驱,尽管已广为应用,但长期以来缺乏精确预测其学习轨迹的理论框架。最近的研究揭…

作者头像 李华
网站建设 2026/4/19 17:12:22

太原卤肉哪家最地道?探寻龙城卤味江湖的匠心与传承

在太原这座历史悠久的古城,卤肉不仅是餐桌上的一道佳肴,更是一种深入市井肌理的文化符号。每当华灯初上,街头巷尾飘散的浓郁卤香,便构成了这座城市最温暖的人间烟火气。然而,面对众多打着“老字号”、“祖传秘方”招牌…

作者头像 李华
网站建设 2026/4/18 8:50:02

6.4 成本优化!AI原生开发成本降低90%的7个策略(附成本分析表)

6.4 成本控制:AI原生开发的成本优化策略(降低90%成本的秘诀) 引言 AI原生开发的成本主要来自API调用。本文介绍如何优化成本。 成本优化策略 1. 使用本地模型 # 使用本地模型降低成本 client = ClaudeCodeClient(model="local-model", # 本地模型,无API成本…

作者头像 李华