计算理论

发布时间 2023-10-12 13:49:09作者: a__leaf

第2章 上下文无关文法

2.1 概述

一个文法有一组替换规则组成,替换规则又称为产生式。如下G:

\[A \rightarrow 0A1 \]

\[A \rightarrow B \]

\[A \rightarrow \# \]

也可写为

\[A\rightarrow 0A1|B| \# \]

第一条规则的左边的变元称为起始变元

(符号称为变元如A,B。终止符如01#即小写字母、数字或特殊符号表示)

如用文法G生成000#111字符串。获取字符串的替换序列称为派生,即:

\[A\rightarrow 0A1\rightarrow 00A00\rightarrow 000A000 \rightarrow 000\#111 \]

也可用语法分析树描述这一派生过程

上述方式生成的所有字符串称为该文法的语言,用\(L(G_1)表示\),可知该文法\(L(G) = \left\{0^n\# 1^n | n\ge 0 \right\}\), 称为上下文无关语言(CFL)
\(———————————————————————————————\)

\[G_2 = (\left\{S \right\}, \left\{a, b \right\}, R, S) \]

其中规则集R:

\[S\rightarrow aSb|\ SS| \varepsilon \]

S是起始变元
上述方式就是上下文无关文法(CFA)的形式化定义

由CFL构造CFG