形式语言与自动机理论基础 2025/3/3

发布时间:2026/9/22 8:23:39

形式语言与自动机理论基础 2025/3/3 文法的定义一个文法G是一个四元组G(,,S,P)一个非空有限的终极符号集合。它的每个元素称为终极符号或终极符一般用小写字母表示。终极符号是一个语言不可再分的基本符号。一个非空有限的非终极符号集合。它的每个元素称为非终极符号或非终极符一般用大写字母表示。V是文法G的符号集则V∪∩S一个特殊的非终极符号称为文法的开始符号或识别符号。开始符号S必须至少在某个产生式的左部出现一次。P产生式的有限集合。产生式也成为产生规则或简称为规则产生式形式α-β等其中α称为产生式的左部α并且至少含有一个非终极符β称为产生式的右部β-或::读作定义为或由...组成。α是由β组成的文法分类0型文法短语型文法设文法G(,,S,P)如果对P中每一条产生式α-β不加限制即并且至少有一个非终极符则称G为0型文法或短语型文法。1型文法上下文相关文法设文法G(,,S,P)除且S不出现在任何产生式的右侧外如果对P中的每条产生式均限制为形如其中则称文法G为1型文法或上下文相关文法。这种文法意味着终极符A只有在α和β这样的一个上下文环境中才可以被替换为γ显示了上下文相关的特点。2型文法上下文无关文法设文法G(,,S,P)如果对P中的每条产生式均限制为形如其中则称G为2型文法或上下文无关文法。在2型文法中用α取代非终极符A与A所在上下文无关所以称之为上下文无关文法。3型文法线性文法、正则文法或正规文法设文法G(,,S,P)如果对P中的每条产生式均限制为形如或其中则称G为3型文法。上述形式的3型文法也称为右线性文法3型文法还有另一种形式称为左线性文法。如果对文法G的每条产生式形如或其中称该3型文法为左线性文法。上述四类文法从0型文法到3型文法对产生式的限制是逐步增强的而描述语言的能力是逐步减弱其后一类都是前一类的子集。四类文法之间的关系可以表示为0型文法1型文法2型文法3型文法对于每一型文法都有一类自动机和它的描述能力等价对应关系如下0型文法对应图灵机TM1型文法对应线性有界自动机LBA2型文法对应下推自动机PDA3型文法对应有限自动机FA在编译技术中通常用3型文法来描述高级程序设计语言的词法部分然后用有限自动机FA来识别高级语言的单词。今后对“文法”一词如无特殊说明则均指上下文无关文法。总结直接看长得像不像0型文法α-β1型文法2型文法左部只有一个非终极符右部终极符和非终极符3型文法或、或产生式的右部至多有两个符号且满足下面的形式之一、其中推导和归纳1.直接推导2.直接推导序列3.最左推导在推导过程中总是对当前符号串中最左的非终极符进行替换称为最左推导。4.最右推导在推导过程中总是对当前符号串中最右的非终极符进行替换称为最右推导。5.句型6.句子显然。句子是句型的特例只含有终极符的句型就是句子。文法G的句子的全体称为它所产生的语言记作L(G)。最右推导也称为规范推导。仅用规范推导得到的句型称为规范句型。规范推导的逆过程称为规范规约。7.短语一棵树及其子树包含的所有叶节点组成的符号串。8.直接短语简单短语只包含叶节点的子树其叶节点组成的符号串。9.句柄最左端的简单短语。题目语法树与文法二义性前面介绍了句型、推导等概念。下面介绍一种上下文无关文法的句型推导过程的直观描述方法即语法树也称推导树、生成树、分析树。语法树例最左推导最右推导树和e一样既非最左也非最右推导树和e一样另一种不同的最左推导总结生成的树可能一样也可能不一样。文法二义性对一个文法G如果至少存在一个句子有两棵或两棵以上不同的语法树则称该句子是二义性的。包含有二义性句子的文法称为二义性文法。若一个文法中存在某个句子它有两个不同的最左或最右推导则这个文法是二义性的。等价性定义可以有两个文法和一个有二义性另一个没有二义性但却有即这两个文法是等价的它们所产生的语言相同。文法的二义性是不可判断的即不存在一个算法它能在有限步骤内确切地判定一个文法是否是二义的。文法等价变换在LR类语法分析中为了便于控制分析过程的结束通常要求文法具有唯一的开始符并且开始符不出现于任何产生式的右部。如果不满足需要对原文法进行等价变换为此引入以下定理定理1对任一文法都可以构造文法使得且有这样的特点文法的开始符唯一并且不出现于任何产生式的右部。证明假设S是的开始符则只要在中扩充一条新产生式即可其中Z是新的开始符。令这样扩充后的文法为它显然满足定理的要求。定理2消除空产生式对于任一文法()则可构造文法使得并且中并无空产生式。定理3消除不可达产生式对任一文法都可以构造文法使得并且的每个非终极符必出现在某个句型中。定理4对任一文法都可以构造文法使得并且中没有特型产生式(左右都是非终结符)。例设有如下文法P19 还有几道例题有限自动机FA有限自动机分为确定有限自动机DFA和非确定有限自动机NFA。确定有限自动机只有进入Z终止状态时有限自动机识别/接受当前处理字符串并不是进了这个状态就要终止了终止状态也叫接受状态。确定有限自动机还可以用关系矩阵来表示也叫(状态)转换矩阵。第一列元素与确定有限自动机的状态集S相对应第一行的元素与确定有限自动机的有穷字母表相对应矩阵中的其他元素表示确定有限自动机的状态转换函数。开始终止*或-为什么只能是aba?因为别的就跑进“死胡同”了又不能终止又走不出来。总结DFA确定有限自动机为啥确定初始状态唯一映射是单值函数没有输入为的边即不接受没有任何输入就转换的情况非确定有限自动机接收一个字符允许跳转到多个后继状态。例总结非确定有限自动机NFA状态转换函数可为多值函数一个状态接受同一个输入字符可以转向多个不同后继状态。允许有多个开始状态。允许有空边即在没有任何输入的情况下允许进行状态转换。DFA与NFA的等价对于给定的有限自动机和如果则称有限自动机和等价。定理对于任何一个NFA M都存在一个DFA M使得。例NFA状态转换矩阵和等价的DFAPS{24567}怎么来的{12}经过a得到的{245}以及{245}的闭包经过{24567}合起来就是{24567}DFA I列的12345怎么来的分别用12345代表{12}{24567}{38}{389}{9}这5个状态子集。如下图红色部分正规式转化为NFANFA转化为DFA_哔哩哔哩_bilibiliDFA的化简对一个NFA把它等价变化为DFA后得到的DFA所具有的状态数可能并不是最小的。那么有没有一个最小的DFA呢这就是有限自动机的最简或最小化问题。一个确定有限自动机M的化简是指寻找一个状态数最少的DFA M使得L(M)L(M)定义1设DFA M的两个不同状态和如果对任意输入的符号串x从和出发总是同时到达接受或拒绝状态中则称和是等价的。如果和不等价则称和是可区分的。所接受的符号相同。显然DFA的终止状态和非终止状态是不等价的。定义2从有限自动机的初始状态开始任何输入序列都不能到达的那些状态称为无关状态。定义3如果DFA M没有无关状态也没有彼此等价的状态则称DFA M是最小的或规约的。
延伸阅读

更多相关文章

2026/9/21 13:56:40

Swift Extension Empty(空白页)(膳品)

一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹。靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络&#xff0…

2026/9/22 8:20:13

微服务避坑指南:从报错崩溃到稳定落地的实战手记

微服务避坑指南:从报错崩溃到稳定落地的实战手记 屏幕一片红,StackTrace 长得像天书,你盯着 IDE 里的报错信息,脑子嗡的一声。是不是觉得服务明明本地跑得好好的,一上测试环境就各种连接超时、数据不一致?别慌,这就是微服务转型期的典…

2026/9/22 8:20:13

CAD焊接符号标注完整示例:3步搞定国标,避开90%新手坑

CAD焊接符号标注完整示例:3步搞定国标,避开90%新手坑 看着屏幕上一堆密密麻麻的焊接符号,是不是头都大了?很多人刚接触AutoCAD或中望CAD时,最崩溃的瞬间就是:明明照着图画了线,为什么生成的焊接符号乱七八糟,甚至直接报错一堆看不懂…

2026/9/22 8:20:13

拒绝背八股,手写实现随机聊天算法,3天搞定面试高频题

拒绝背八股,手写实现随机聊天算法,3天搞定面试高频题 很多开发者卡在“学了语法,却不会搭项目”的瓶颈上。尤其是面对即时通讯中的“随机聊天”功能,看似简单,实则涉及复杂的并发控制与状态管理。在 CSDN…

2026/9/22 8:20:13

备战2026实战项目:3个技巧搞定StackTrace报错

备战2026实战项目:3个技巧搞定StackTrace报错 盯着满屏红色的 StackTrace,你是不是脑子也炸了? 在真实的 实战项目 里,这种“报错一堆看不懂”的情况太常见了。…

2026/9/22 8:20:13

2026最新网易dns配置避坑指南:从入门到实战的5个核心考点

2026最新网易dns配置避坑指南:从入门到实战的5个核心考点 刚写完业务代码,准备部署上线,结果域名解析死活不生效?别慌,这不是你代码写得烂,而是对底层 DNS 机制理解不够深。很多开发者在面试中被问“网易…

2026/9/22 8:15:13

5步搞定微信认证申请公函,避开高频面试题坑

5步搞定微信认证申请公函,避开高频面试题坑 版本升级后 API 全变了,导致很多老代码直接报错,这成了最近 高频面试题 里的重灾区。 很多开发者在准备后端岗位面试时,常被问到微信生态的对接细节。 尤其是 微信认证申请公函…

2026/9/21 3:28:31

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/21 3:33:19

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/22 0:04:49

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点

输电线路在线监测高频面试题拆解 3秒抓住官方文档重点 官方文档几百页翻到头还是懵?面试问到 输电线路在线监测 的数据链路时,脑子一片空白?别慌,这种 高频面试题 我整理了10年,专门治各种“文档太长抓不住重点”的毛病。…

2026/9/22 0:04:49

中介房源管理系统重构避坑:3个关键步骤搞定API变更

中介房源管理系统重构避坑:3个关键步骤搞定API变更 版本升级后 API 全变了,这种痛只有真做过的人懂。 很多团队在接手老旧房产项目时,最崩溃的不是代码烂,而是底层框架升级后,原本熟悉的接口调用方式彻底失效。 这份 保姆级教程…

2026/9/22 0:04:49

3个坑点带你一文搞懂55gg小游戏源码

3个坑点带你一文搞懂55gg小游戏源码 盯着控制台满屏的红色报错,看着那一长串 StackTrace ,是不是脑子瞬间宕机?别急,这种时候最忌讳的就是盲目改代码。很多刚入行的前端同学,面对 55gg 小游戏这类轻量级 H5…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/21 18:32:12

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/21 10:29:02

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码