news 2026/6/11 11:46:53

【程序语言与编译】文法的分类(0-3型,乔姆斯基体系)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【程序语言与编译】文法的分类(0-3型,乔姆斯基体系)

适合读者:软考中级备考同学
阅读时间:3分钟
内容:0-3型文法的定义、产生式形式、对应自动机、对比表、例题


1. 为什么需要文法分类?

形式语言理论中,乔姆斯基(Chomsky)根据产生式的限制条件将文法分为四个层次:0型、1型、2型、3型。不同类型的文法描述不同复杂程度的语言,对应不同的自动机识别能力。软考中常考查各类文法的定义、产生式形式及其对应的自动机。


2. 乔姆斯基文法体系

所有文法用四元组G=(VT,VN,P,S)G = (V_T, V_N, P, S)G=(VT,VN,P,S)表示,其中VTV_TVT为终结符集,VNV_NVN为非终结符集,PPP为产生式集,SSS为开始符号。不同类型文法的区别在于对产生式α→β\alpha \rightarrow \betaαβ的形式限制不同。

2.1 0型文法(短语结构文法,PSG)

  • 产生式形式α→β\alpha \rightarrow \betaαβ,其中α\alphaα至少包含一个非终结符,α,β∈(VT∪VN)∗\alpha, \beta \in (V_T \cup V_N)^*α,β(VTVN),无其他限制。
  • 特点:最强大的文法,可以生成任何可枚举语言。
  • 对应自动机:图灵机(Turing Machine)。
  • 软考提示:0型文法理论意义大于实用,几乎不直接考查。

2.2 1型文法(上下文有关文法,CSG)

  • 产生式形式αAβ→αγβ\alpha A \beta \rightarrow \alpha \gamma \betaαAβαγβ,其中A∈VNA \in V_NAVNα,β,γ∈(VT∪VN)∗\alpha, \beta, \gamma \in (V_T \cup V_N)^*α,β,γ(VTVN)γ≠ε\gamma \neq \varepsilonγ=ε(非空)。即AAA必须在特定上下文(α\alphaαβ\betaβ)中才能替换为γ\gammaγ
  • 特点:产生式左部长度 ≤ 右部长度(非收缩)。
  • 对应自动机:线性有界自动机(Linear Bounded Automaton)。
  • 软考考点:知道“上下文有关”意味着替换受周围符号限制,通常不要求深入。

2.3 2型文法(上下文无关文法,CFG)

  • 产生式形式A→γA \rightarrow \gammaAγ,其中A∈VNA \in V_NAVN(单个非终结符),γ∈(VT∪VN)∗\gamma \in (V_T \cup V_N)^*γ(VTVN)(可为空串ε\varepsilonε)。
  • 特点:左部只有一个非终结符,与上下文无关。这是程序设计语言语法描述的核心工具。
  • 对应自动机:下推自动机(Pushdown Automaton, PDA)。
  • 软考重点:大部分语法分析(如算术表达式、语句结构)用上下文无关文法描述。

2.4 3型文法(正则文法,RG)

  • 产生式形式(右线性):A→aBA \rightarrow aBAaBA→aA \rightarrow aAa,其中A,B∈VNA, B \in V_NA,BVNa∈VTa \in V_TaVT(也可有ε\varepsilonε产生式)。
  • 特点:产生式右部最多一个非终结符且必须在最右端(右线性);左线性形式为A→BaA \rightarrow BaABaA→aA \rightarrow aAa。两种形式等价。
  • 对应自动机:有限自动机(Finite Automaton, FA)。
  • 软考重点:正则文法与正则表达式、有限自动机等价,常用于词法分析。

3. 四种文法的对比表

类型名称产生式形式对应自动机能力典型应用
0型短语结构文法α→β\alpha \rightarrow \betaαβ(无限制)图灵机最强理论计算机
1型上下文有关文法αAβ→αγβ\alpha A \beta \rightarrow \alpha \gamma \betaαAβαγβγ≠ε\gamma \neq \varepsilonγ=ε线性有界自动机自然语言处理
2型上下文无关文法A→γA \rightarrow \gammaAγ下推自动机中等程序设计语言语法
3型正则文法A→aBA \rightarrow aBAaBA→aA \rightarrow aAa有限自动机最弱词法规则、模式匹配

包含关系:3型⊂\subset2型⊂\subset1型⊂\subset0型(越往上描述能力越强)。


4. 软考常见考点

  1. 判断文法类型:给定一组产生式,判断属于0/1/2/3型。
    • 若产生式全部形如A→aBA \rightarrow aBAaBA→aA \rightarrow aAa→ 3型(正则)。
    • 若产生式全部左部为单个非终结符,但右部有多个非终结符嵌套(如E→E+TE \rightarrow E+TEE+T) → 2型(上下文无关)。
    • 若产生式左部包含多个符号(如aA→BcaA \rightarrow BcaABc) → 1型或0型(通常考0型/1型区别)。
  2. 对应自动机:知道正则文法 ↔ 有限自动机,上下文无关文法 ↔ 下推自动机。
  3. 实际意义:词法分析用3型(正则表达式),语法分析用2型(上下文无关文法)。

5. 经典例题

题目1:给定文法GGG的产生式如下:

S → aB | bA A → aS | bAA | a B → bS | aBB | b

该文法属于乔姆斯基体系中的哪一型?

解析:所有产生式左部都是单个非终结符(S,A,BS, A, BS,A,B),右部由终结符和非终结符组成,没有上下文限制。符合2型(上下文无关文法)的定义。
答案:2型(上下文无关文法)


题目2:下列文法中,属于正则文法的是( )。
A.S→aSb ∣ εS \rightarrow aSb \,|\, \varepsilonSaSbε
B.S→Aa,A→Bb,B→cS \rightarrow Aa, A \rightarrow Bb, B \rightarrow cSAa,ABb,Bc
C.S→aA,A→Sb,S→εS \rightarrow aA, A \rightarrow Sb, S \rightarrow \varepsilonSaA,ASb,Sε
D.S→aA,A→bS \rightarrow aA, A \rightarrow bSaA,Ab

解析

  • A 产生anbna^n b^nanbn,不是正则文法(需记忆计数) → 2型。
  • B 产生式有S→AaS \rightarrow AaSAa(左线性),但A→BbA \rightarrow BbABb也是左线性,整体可转为右线性吗?不是标准右线性,但左线性等价于正则,可接受。需要判断:若所有产生式形如A→aA \rightarrow aAaA→aBA \rightarrow aBAaBA→BaA \rightarrow BaABa(左线性),仍属3型。但B中S→AaS \rightarrow AaSAa(左线性),A→BbA \rightarrow BbABb(左线性),B→cB \rightarrow cBc(终结),是左线性正则文法。
  • C 有A→SbA \rightarrow SbASb(左线性),但S→aAS \rightarrow aASaA(右线性),混合形式仍然等价正则,不过通常要求统一方向,但理论上正则文法允许左线性和右线性混合?严格说混合可能产生非正则语言?软考中一般要求统一。C有S→εS \rightarrow \varepsilonSε也是允许的。但C中A→SbA \rightarrow SbASbS→aAS \rightarrow aASaA导致S⇒aA⇒aSbS \Rightarrow aA \Rightarrow aSbSaAaSb,产生类似anSbna^n S b^nanSbn,不是正则。
  • D 所有产生式S→aAS \rightarrow aASaA(右线性),A→bA \rightarrow bAb(右线性),符合3型。
    答案:D

题目3:与上下文无关文法对应的自动机是( )。
A. 有限自动机
B. 下推自动机
C. 图灵机
D. 线性有界自动机

答案:B


6. 记忆口诀

0型无限制,图灵机最强;
1型上下文,线性有界忙;
2型无关文,下推自动掌;
3型正则规,有限自动行。


7. 给备考同学的一句话

软考中文法的分类主要考查2型和3型:

  • 看到产生式只有A→aBA \rightarrow aBAaBA→aA \rightarrow aAa形式 → 3型(正则)。
  • 看到产生式左部是单个非终结符,但右部有像A→BCA \rightarrow BCABCA→aBcA \rightarrow aBcAaBc等嵌套形式 → 2型(上下文无关)。
  • 如果产生式左部有多个符号(如aA→BbaA \rightarrow BbaABb),通常属于1型或0型(软考一般不会考这么深)。

记住对应的自动机:正则→有限,上下文无关→下推,考试中常以匹配题形式出现。


🔔本专栏日更2篇,点击头像 → 专栏《软考中级高频考点》订阅

#软考中级 #软件设计师 #文法分类 #乔姆斯基体系 #上下文无关文法 #正则文法

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

Android串口通信实战工程:USB转串口收发测试,含即装即用APK

本文还有配套的精品资源,点击获取 简介:一个开箱即用的Android串口通信Demo项目,基于SerialPort开源库实现,专为USB转串口设备(如CH340、CP2102)设计。支持Android 5.0及以上系统,真机直连调…

作者头像 李华
网站建设 2026/6/11 11:46:08

HTTP,局域网文件分享软件,EasyShare - 私有文件共享

一个简洁、安全、易用的局域网文件共享工具,支持文件上传、下载、预览、回收站等功能。 ## 功能特性 ### 文件管理 - 📁 文件夹创建、重命名、删除 - 📤 文件上传(支持拖拽上传) - 📥 文件下载&#xff0…

作者头像 李华
网站建设 2026/6/11 11:44:57

5分钟掌握抖音去水印下载工具:F2项目完整使用指南

5分钟掌握抖音去水印下载工具:F2项目完整使用指南 【免费下载链接】TikTokDownload 抖音去水印批量下载用户主页作品、喜欢、收藏、图文、音频 项目地址: https://gitcode.com/gh_mirrors/ti/TikTokDownload 抖音去水印下载工具是当下最实用的抖音内容保存解…

作者头像 李华
网站建设 2026/6/11 11:43:22

S12ZDBGV2调试模块实战:非侵入式追踪与代码剖析技术解析

1. 项目概述:深入S12Z调试模块的硬件心脏 在嵌入式开发,尤其是汽车电子和工业控制这类对实时性与可靠性要求严苛的领域,调试工作往往像是在一个高速运转的黑盒外部进行诊断。传统的断点调试会中断程序执行,改变系统的时序行为&…

作者头像 李华
网站建设 2026/6/11 11:42:15

暗黑破坏神2存档编辑器:单机玩家如何5分钟掌握终极修改神器

暗黑破坏神2存档编辑器:单机玩家如何5分钟掌握终极修改神器 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 你是否曾经在暗黑破坏神2中花费数小时刷装备却一无所获?是否想要尝试某个build却不想重新练级&…

作者头像 李华