30、正则表达式与上下文语法的深入探究

正则表达式与上下文语法的深入探究

1 正则表达式相关内容

1.1 多项式运行时间定理

对于所有正则表达式 (r \in R_{\Sigma}) 和所有位置 (q \in sym(\mu(r))),有以下结论:
- 计算 (first(r)) 和 (last(r)) 的时间复杂度为 (O(|r|))。
- 计算所有 (q) 的 (follow(r, q)) 的时间复杂度为 (O(|r|^3))。

证明过程
- 对于第一点,根据引理 1 的部分内容可知 (|first(r)| = O(|r|)) 且 (|last(r)| = O(|r|))。假设集合的并集操作可以在线性时间内完成,并且给位置添加前缀数字(如 (\langle1\rangle \odot p))可以在常数时间内完成。然后通过对 (r) 进行归纳,可以证明运行时间为 (O(|r|))。
- 对于第二点,首先计算 (r) 的所有子表达式的 (first) 和 (last),这需要 (O(|r|^3)) 的时间。然后计算 (follow(r, q)) 意味着对 (follow) 进行线性次数的调用,每次调用除了递归调用 (follow) 之外,最多需要 (O(|r|^2)) 的时间。

1.2 约束范式与计数器 - 1 无歧义性

1.2.1 约束范式

一个正则表达式 (r) 处于约束范式中,当且仅当 (r) 中不存在形式为 (r_{n..m}^1) 的子表达式,其中 (r_1 \in N_{\Sigma})。例如,((a^ a)^{2..3}) 处于约束范式中,而

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值