编译原理:形式语言简介

形式语言简介

  乔姆斯基(Chomsky),美国语言学家,1956年建立形式语言体系,
将文法分为四种类型:0型,1型,2型,3型。称为乔姆斯基谱系


0-型文法(短语文法,图灵机
产生形式如:α → β
其中:α ∈ (VT∪VN)*且至少含有一个非终结符;β ∈ (VT∪VN)*

1-型文法(上下文有关文法,线性有界自动机)
产生形式如:α → β
其中:|α| ≤|β|,α 长度不大于 β 长度,仅S→ε例外

2-型文法上下文无关文法非确定下推自动机
产生形式如:A →β
其中:A∈VN;β∈(VT∪VN)*

3-型文法正规文法有限自动机
产生式形如:A → αB 或 A → α
其中:α ∈ VT*;A,B ∈ VN(右线性文法)
产生式形如:A → Bα 或 A → α
其中:α ∈ VT*;A,B ∈ VN(左线性文法)
左线性文法与右线性文法的描述能力是等价的


四种类型文法描述能力越来越弱,约束越来越强,越来越具有一般性
在这里插入图片描述
描述能力的包含关系是真包含
例:
L={ anbn|n≥1 }不能由正规文法产生,但可由上下文无关文法产生
G(S): S →aSb | ab

又如
在这里插入图片描述


  程序设计语言不是上下文无关语言,甚至不是上下文有关语言
如 L={ αcα | α∈{a,b}* }不能由上下文无关文法产生, 甚至连上下文有关文法也不能产生,只能由0型文法产生
L语言中,a,b,c为终结符,α 表示{ a,b }的闭包上的字
在程序设计语言中,常常会出现这种形式的表述,如标识符的引用,形参实参的对应性(个数,顺序,类型),这种要求一致,要求匹配的特点就是 αcα 的语言模式,因此2-型文法无法做到,1-型文法也难以做到

  然而现代程序设计语言编译程序仍然使用上下文无关文法描述语言结构。上下文无关文法的分析已经非常成熟高效,并且一个语言大部分的约束都可以使用上下文无关文法实现,因此经过权衡,仍然使用上下文无关文法描述程序设计语言,超出描述能力的部分合并到语义分析中去做


2019/1/26

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值