软考
APP下载

已知文法求正规式步骤

正规式(Regular expression)是一种描述正则语言的形式化语言。可用于正则表达式匹配、文本搜索、模式识别等。在许多领域,正规式的运用有着重要的意义。

已知文法,要求求出该文法的正规式。这是一个常见的问题。下面从多个角度进行分析,介绍一下求正规式的基本步骤。

1. 确定文法类型

首先需要确定文法类型,分为正则文法、上下文无关文法、上下文有关文法、无限制文法。 正则文法是最简单的文法,如果待求文法不是正则文法需要通过文法转换将其转成正则文法。

2. 消除文法的左递归

如果文法有左递归,需要对其进行消除。所谓的左递归,是指文法中的某一个非终结符在产生式中一直出现在左边。例如:

A → A α | β

这就是一个左递归的文法,需要进行消除。消除左递归可以用以下公式:

A → β A`

A` → α A` | ε

3. 文法化简

对于一个文法,为了方便运算和求解,需要将其化简。包括去除无用符号、去除无法产生终结符的非终结符等等。

4. 求解正规式

对于正则文法,可直接根据规则求解正规式。对于非正则文法,需要通过文法转换将其转化为正则文法后求解。

- 正则文法的规则

① 空集: ∅

② 空串: ε

③ 终结符: a, b, c, ……

④ 非终结符: A, B, C, ……

⑤ 求和: R = R1 + R2

⑥ 求积: R = R1R2

⑦ 闭包: R = R1*

5. 检验正规式

得到正规式后,需要进行检验。检验的方法包括两种,一种是证明它是正确的,一种是通过程序验证。(例如使用正则表达式引擎)

综上所述,已知文法求正规式,需要确定文法类型,消除文法的左递归,化简文法,然后通过求解正规式的规则求出正规式。最后进行检验。这是一个基本的求解正规式的流程。

备考资料 免费领取:软件设计师报考指南+考情分析+思维导图等 立即下载
真题演练 精准解析历年真题,助你高效备考! 立即做题
相关阅读
软件设计师题库