词法分析

正则表达式

正则表达式表示的串的集合成为语言,语言中涉及的字符称为符号(symbol),而符号的集合则是字母表(alphabet)。

在正则表达式中还包括元字符(metacharacter),例如括号, ϵ \epsilon ϵ

相同的语言可以使用多个不同的正则表达式来表示

正则表达式不能表达有数量关系的语言,例如:
S = {b,aba,aabaa,aaabaaa,……} = { a n b a n a^nba^n anban | n≠0 }

正则表达式意义其他写法
R+一个或多个RR(R*)
R?可选RR|ε
[abcd]列表中的元素之一a|b|c|d
[a-z]a-z中的元素之一a|b|c|d|e|…|y|z
[^ab]除了ab的任意字符
[^a-z]除了a-z中的任意字符

优先级:* > connection > |

RE转NFA

在这里插入图片描述

NFA转DFA

例题:
在这里插入图片描述
步骤:
在这里插入图片描述

Minimize DFA的状态数

通过上图的DFA画出状态转换表,然后分出集合:
在这里插入图片描述
如果一个集合中的状态遇到一个检测字符x时,如果这些状态经过x走向了不同属性的状态,即:非接受状态,接受状态,错误状态,那么这些状态将被x区分。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值