自动机、正则式、正则文法和上下文无关文法

自动机、正则式、正则文法和上下文无关文法

自动机概念[1]
自动机是有限状态机(FSM)的数学模型。FSM 是给定符号输入,依据(可表达为一个表格的)转移函数跳转过一系列状态的一种机器。
包括:确定有限自动机DFA,非确定有限自动机NFA

有限自动机的扩展:
下推自动机(PDA) 
线性有界自动机(LBA)
图灵机 (Turing  Machine)

无限自动机百度百科上有,但不了解。


正则表达式与有限自动机及正则文法的关系:
三者功能是等价的。DFANFA间可以相互转换,而正则表达式可以方便地构造,自动机,及正则文法(一般的编译原理或形式语言教材上都有例子)。
但根据自动机构造正则表达式,比较麻烦,特别是要化简的时候。

正则式与自动机相互转换的例子见C注释正则式及其效率思考》


正则文法与上下文无关文法的区别:
正则文法对应有限自动机(DAFNFA),上下文无关文法(CFG, Context Free Grammar)对应下推自动机(有限自动机的扩展)。有限自动机只对终结符做状态转移,而下推机,可以对非终结符做状态转移。
下面文法,是上下文无关文法,但其描述的语言却无法用正则文法来描述:
文法:P::=aPb|c
所描述的语言:

 


 
通俗地说,正则文法无法控制状态自返次数(其实CFG也是无法控件的,比如语言,是无法用CFG描述的)。

参考:
[1]    http://zh.wikipedia.org/wiki/%E8%87%AA%E5%8A%A8%E6%9C%BA

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值