编译原理 | 关于四种文法的理解学习及如何根据语言描述给出正则式or相应文法

本文介绍了编译原理中的四种文法类型:0型(图灵机)、1型(线性界线自动机,自然语言)、2型(下推自动机,程序设计语言)和3型(有限自动机)。详细阐述了各类型文法的特点、关系与区别,并探讨了正规表达式与上下文无关文法之间的联系。通过实例解析了文法规则的构造和应用。
摘要由CSDN通过智能技术生成

目录

写在前面

文法概要

0型文法(对应图灵机)

1型文法(对应线性界线自动机,自然语言)

2型文法(对应下推自动机,程序设计语言)

3型文法(对应有限自动机)

四类文法的关系与区别

关于正规表达式与上下文无关文法

正规表达式

文法


写在前面

首先要说明的是:一般的文法至少都是0型文法,也就是说0型文法限制最少。若将0型文法比作基类的话,1、2、3型文法就是不断继承并加以限制得到的子类。
文法表示过程中,常用大写字母表示非终结符VN,而小写字母表示的是终结符VT

 


文法概要

设文法 G[S]=(VN,VT,S,P)

 

0型文法(对应图灵机)

  • 如果它的每个产生式α→β是这样一种结构:α∈(VN∪VT)*且至少含有一个非终结符,而β∈(VN∪VT)*,则G[S]是一个0型文法。
  • 0型文法也称短语文法,记为PSG。
  • 一个非常重要的理论结果是:0型文法的能力相当于图灵机。或者说,任何0型文语言都是递归可枚举的,反之,递归可枚举集必定是一个0型语言。

 

1型文法(对应线性界线自动机,自然语言)

  • 它是在0型文法的基础上每一个α→β,都有|β|>=|α|。这里的|β|表示的是β的长度。
  • 注意:虽然要求|β|>=|α|,但有一特例:α→ε也满足1型文法。
  • 1型文法也叫上下文有关文法,记为CSG。
  • 此文法对应于线性有界自动机。

 

2型文法(对应下推自动机,程序设计语言)

  • 2型文法是在1型文法的基础上,再满足:每一个α→β都有α是非终结符。
  •  2型文法也叫上下文无关文法,记为CFG。
  • 此文法对应于下推自动机。

 

3型文法(对应有限自动机)

  • 它是在2型文法的基础上满足:A→α|αB(右线性)或A→α|Bα(左线性)。
  • 3型文法也叫正规文法,记为RG。
  • 此文法对应于有限状态自动机。

 


四类文法的关系与区别

1~3型文法都属于0型文法,2、3型文法不一定属于1型文法(如果存在A→ε的产生式,则不属于1型文法),3型文法属于2型文法。四类文法区别如下:

(1)1型文法中不允许有形如A→ε的产生式存在,而2、3型文法则允许出现。

(2)0、1型文法产生式左部存在含有终结符的符号串或两个以上的非终结符,

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值