【发布时间】:2019-11-23 04:44:23
【问题描述】:
我正在阅读 Aho 和 Ullman 的著作《解析、翻译和编译理论》。在第 2 章介绍正则表达式的部分,有一个正则表达式属性的列表。我不明白属性 2 和 8。这是属性列表:
(1) ???? + ??? = ???? + ????
(2) ∅* = ??????
(3) ???? + (???? + ????) = (???? + ????) + ????
(4) ????(????????) = (????????)????
(5) ????(???? + ??????) = ???????? + ????????
(6) (???? + ??????)???? = ???????? + ????????
(7) ?????????? = ???????? = ????
(8) ∅???? = ????∅ = ∅
(9) ????* = ???? + ????*
(10) (????* )* = ????*
(11) ???? + ??? = ????
(12) ???? + ∅ = ????
其中 ∅ 是表示正则集 ∅, ????, ????, ???? 的正则表达式是任意正则表达式,并且 ????是空字符串。
性质 (2) 和 (8) 如何证明?
编辑:为了解释 +、* 等的符号,以下是书中给出的一些定义(引用):
定义让????是一个有限的字母表。我们定义了一个正则集 ???递归方式如下:
(1) ∅(空集)是 ???? 上的正则集。
(2) {????} 是 ???? 上的常规集合。
(3) {????} 是一个常规集合超过 ????对所有人 ????在????。
(4) 如果 ????和 ????常规集合结束了????,那么也结束了
(a) ???? ∪ ????.
(b) ??????????.
(c) ????*.
(5) 没有其他东西是正则集。
因此 ????* 的子集是正则当且仅当它是 ∅、{????} 或 {????}, 对于一些 ????在 ?????? 中,或者可以通过有限数量的 操作联合、连接和闭包的应用。
.
定义正则表达式 over ????和正则表达式 它们表示是递归定义的,如下:
(1) ∅是表示正则集∅的正则表达式。
(2) ????是表示正则集 {????} 的正则表达式。
(3) ????在 ????是表示正则集 {????} 的正则表达式。
(4) 如果 ????和 ????是表示正则集的正则表达式???? 和????,然后分别
(a) (????+????) 是一个表示 ???? 的正则表达式∪ ????.
(b) (????????) 是表示????????的正则表达式。
(c) (????)* 是表示 ????* 的正则表达式。
(5) 没有其他东西是正则表达式。
【问题讨论】:
-
考虑查看Software Engineering 和Computer Science,您可能会发现您的问题更适合那里。
-
谢谢,我去看看。
-
那些标点符号是做什么的
*+()=? -
@sin 我将添加另一个编辑来解释这些