在 ざい 形式 けいしき 语言理 り 论中 なか ,文法 ぶんぽう (为了避免歧义,常 つね 称 しょう 作 さく “形式 けいしき 文法 ぶんぽう ”)是 これ 形式 けいしき 语言中 なか 字 じ 符 ふ 串 くし 的 てき 一 いち 套产生式 しき 规则 。这些规则描述了 りょう 如何 いか 用 よう 语言的 てき 字母 じぼ 表 ひょう 生成 せいせい 符合 ふごう 语法 的 てき 有效 ゆうこう 的 てき 字 じ 符 ふ 串 くし 。文法 ぶんぽう 不 ふ 描述字 じ 符 ふ 串 くし 的 てき 含义 ,也不描述在任 ざいにん 何 なん 上下 じょうげ 文中 ぶんちゅう 可 か 以用它们做什么——只 ただ 描述它们的 てき 形式 けいしき 。
形式 けいしき 语言理 り 论是 これ 应用数学 すうがく 的 てき 一 いち 个分支 ささえ ,是 ぜ 研究 けんきゅう 形式 けいしき 文法 ぶんぽう 和 わ 语言的 てき 学科 がっか 。它在理論 りろん 計算 けいさん 機 き 科學 かがく 、理 り 论语言 げん 学 がく 、形式 けいしき 语义学 がく 、数理 すうり 逻辑等 とう 领域有 ゆう 着 ぎ 广泛的 てき 应用。
形式 けいしき 文法 ぶんぽう 是 ぜ 从一个“开始符号 ふごう ”出 だし 发的一套重写字符串的规则。因 よし 此,文法 ぶんぽう 通常 つうじょう 被 ひ 认为是 ぜ 语言生成 せいせい 器 き 。然 しか 而,它有时也可 か 以用作 さく “识别器 き ”(计算机 つくえ 学 がく 中 ちゅう 的 てき 一 いち 种函数 すう ,用 よう 于确定 てい 给定字 じ 符 ふ 串 くし 是 ぜ 否 ひ 属 ぞく 于该语言,是 ぜ 否 ひ 为语法 ほう 错误)的 てき 基 もと 础。形式 けいしき 语言理 り 论使用 しよう 另一个理论来描述识别器,也就是 ぜ 自動 じどう 機 き 理論 りろん 。自 じ 动机理 り 论有一个有趣的结果,某 ぼう 些形式 しき 语言是 ぜ 无法设计出 で 识别器 き 的 てき 。[ 1]
语法分析 ぶんせき 是 ぜ 通 どおり 过将一 いち 段 だん 话语(自然 しぜん 语言中 ちゅう 的 てき 一 いち 个字符 ふ 串 くし )分解 ぶんかい 成 なり 一 いち 组符号 ごう ,并根据 すえ 语言的 てき 语法分析 ぶんせき 每 ごと 一 いち 个符号 ごう 的 てき 过程。大 だい 多数 たすう 语言的 てき 话语含义都 と 是 ぜ 根 ね 据 すえ 其句法 ほう 结构来 らい 确定的 てき ——这种做法被 ひ 称 しょう 为组合语义学 がく 。因 よし 此,在 ざい 语言中 ちゅう 描述话语含义的 てき 第 だい 一步就是把它分解成若干部分,然 しか 后 きさき 观察它经过分析 ぶんせき 后 きさき 的 てき 形式 けいしき (在 ざい 计算机 つくえ 科学 かがく 中 ちゅう 被 ひ 称 しょう 为分析 ぶんせき 树 ,在 ざい 生 なま 成文法 せいぶんほう 中 ちゅう 被 ひ 称 しょう 为深 ふか 层结构 )。
文法 ぶんぽう 主要 しゅよう 由 よし 一组变换字符串的规则组成。(如果它只 ただ 包含 ほうがん 这些规则,那 な 么它就是一 いち 个半 はん 图厄系 けい 统 。)要 よう 在 ざい 该语言 ごと 中 ちゅう 生成 せいせい 字 じ 符 ふ 串 くし ,首 しゅ 先 さき 需要 じゅよう 一 いち 个只包含 ほうがん 一 いち 个开始符号 ふごう 的 てき 字 じ 符 ふ 串 くし 。然 しか 后 きさき 按任意 にんい 顺序应用产生式 しき 规则 ,直 ちょく 到 いた 生成 せいせい 既 すんで 不 ふ 包含 ほうがん 起 おこり 始 はじめ 符号 ふごう 也不包含 ほうがん 指定 してい 非 ひ 终结符号 ふごう 的 てき 字 じ 符 ふ 串 くし 。产生式 しき 规则是 ぜ 通 どおり 过把字 じ 符 ふ 串 くし 中 ちゅう 第 だい 一次出现产生式规则左边的地方,替 がえ 换成产生式 しき 规则的 てき 右 みぎ 边,来 らい 作用 さよう 于这个字符 ふ 串 くし 的 てき (参 まいり 见理论图灵机 つくえ 的 てき 运算)。由 よし 文法 ぶんぽう 产生的 てき 语言包含 ほうがん 能 のう 用 よう 这种方式 ほうしき 产生的 てき 所有 しょゆう 不同 ふどう 的 てき 字 じ 符 ふ 串 くし 。开始符号 ふごう 上 じょう 的 てき 任 にん 何 なん 特定 とくてい 产生式 しき 规则序列 じょれつ 都会 とかい 在 ざい 语言中 ちゅう 产生一个不同的字符串。如果产生同 どう 一个字符串有多种不同的方式,那 な 这个文法 ぶんぽう 就是具有 ぐゆう 二 に 义性的 てき 文法 ぶんぽう 了 りょう 。
例 れい 如,假 かり 设字母 はは 表 ひょう 由 ゆかり a 和 わ b 组成,开始符号 ふごう 是 ぜ S ,我 わが 们有以下 いか 产生式 しき 规则:
1.
S
→
a
S
b
{\displaystyle S\rightarrow aSb}
2.
S
→
b
a
{\displaystyle S\rightarrow ba}
那 な 么我们从 S 开始,选择一 いち 个规则。如果我 わが 们选择规则1,我 わが 们将获得字 じ 符 ふ 串 くし aSb 。如果我 わが 们再次 じ 选择规则1,我 わが 们用 aSb 替 がえ 换 S ,得 え 到 いた 字 じ 符 ふ 串 くし aaSbb 。如果我 わが 们现在 ざい 选择规则2,我 わが 们将 S 替 がえ 换为 ba 并获得 とく 字 じ 符 ふ 串 くし aababb ,然 しか 后 きさき 就完成 かんせい 了 りょう 。我 わが 们可以用符号 ふごう 将 はた 这一系列选择写得更简短:
S
⇒
a
S
b
⇒
a
a
S
b
b
⇒
a
a
b
a
b
b
{\displaystyle S\Rightarrow aSb\Rightarrow aaSbb\Rightarrow aababb}
。这种文法 ぶんぽう 的 てき 语言就是无限集 しゅう
{
a
n
b
a
b
n
∣
n
≥
0
}
=
{
b
a
,
a
b
a
b
,
a
a
b
a
b
b
,
a
a
a
b
a
b
b
b
,
…
}
{\displaystyle \{a^{n}bab^{n}\mid n\geq 0\}=\{ba,abab,aababb,aaababbb,\dotsc \}}
,其中
a
k
{\displaystyle a^{k}}
是 これ
a
{\displaystyle a}
重 じゅう 复
k
{\displaystyle k}
次 つぎ (
n
{\displaystyle n}
表示 ひょうじ 使用 しよう 规则1的 てき 次数 じすう )。
20世 せい 纪50年代 ねんだい ,诺姆·乔姆斯基 首 くび 次 じ 提出 ていしゅつ 了 りょう 生成 せいせい 语法的 てき 经典形式 けいしき 化 か 理 り 论,[ 2] [ 3] 其中文法 ぶんぽう G 由 よし 以下 いか 部分 ぶぶん 组成:
有限 ゆうげん 的 てき 非 ひ 终结符号 ふごう 集 しゅう N ,与 あずか G 生成 せいせい 的 てき 字 じ 符 ふ 串 くし 无交 。
有限 ゆうげん 的 てき 终结符号 ふごう 集 しゅう
Σ しぐま
{\displaystyle \Sigma }
,与 あずか N 无交 。
有限 ゆうげん 的 てき 产生式 しき 规则 集 しゅう P ,每 まい 个规则都为如下 か 形式 けいしき
(
Σ しぐま
∪
N
)
∗
N
(
Σ しぐま
∪
N
)
∗
→
(
Σ しぐま
∪
N
)
∗
{\displaystyle (\Sigma \cup N)^{*}N(\Sigma \cup N)^{*}\rightarrow (\Sigma \cup N)^{*}}
这里的 てき
∗
{\displaystyle {*}}
是 これ 克 かつ 莱尼星 ほし 号 ごう ,
∪
{\displaystyle \cup }
表示 ひょうじ 并集 。也就是 ぜ 说,每 まい 个产生 せい 式 しき 规则从一个符号串映射到另一个符号串,并且产生式 しき 左 ひだり 侧的字 じ 符 ふ 串 くし 中 ちゅう 必须至 いたり 少 しょう 包括 ほうかつ 一 いち 个非终结符号 ふごう 。产生式 しき 右 みぎ 侧的字 じ 符 ふ 串 くし 如果只 ただ 有 ゆう 一 いち 个 空 そら 字 じ 符 ふ 串 くし 的 てき 话,也就是 ぜ 说没有 ゆう 任 にん 何 なん 符号 ふごう 的 てき 话,它有一个特别的标记(通常 つうじょう 是 ぜ
Λ らむだ
{\displaystyle \Lambda }
、e 或 ある 者 もの
ϵ
{\displaystyle \epsilon }
)。
开始符号 ふごう
S
∈
N
{\displaystyle S\in N}
,也叫句 く 子 こ 符号 ふごう 。
文法 ぶんぽう 的 てき 形式 けいしき 定 てい 义为四元 よつもと 组
(
N
,
Σ しぐま
,
P
,
S
)
{\displaystyle (N,\Sigma ,P,S)}
。这种形式 けいしき 语法在 ざい 文献 ぶんけん 中 ちゅう 常 つね 被 ひ 称 しょう 为重 じゅう 写 うつし 系 けい 统或 ある 短 たん 语结构文法 ほう 。[ 4] [ 5]
关于形式 けいしき 文法 ぶんぽう 的 てき 一 いち 些数学 がく 构造[ 编辑 ]
文法 ぶんぽう 的 てき 运算可 か 以用字 ようじ 符 ふ 串 くし 的 てき 关系来 き 定 てい 义:
设有文法 ぶんぽう
G
=
(
N
,
Σ しぐま
,
P
,
S
)
{\displaystyle G=(N,\Sigma ,P,S)}
,
(
Σ しぐま
∪
N
)
∗
{\displaystyle (\Sigma \cup N)^{*}}
内的 ないてき 字 じ 符 ふ 串 くし 的 てき 二 に 元 げん 关系
⇒
G
{\displaystyle {\underset {G}{\Rightarrow }}}
(读作“G经过直接 ちょくせつ 推导为”)定 てい 义为:
x
⇒
G
y
⟺
∃
u
,
v
,
p
,
q
∈
(
Σ しぐま
∪
N
)
∗
:
(
x
=
u
p
v
)
∧
(
p
→
q
∈
P
)
∧
(
y
=
u
q
v
)
{\displaystyle x{\underset {G}{\Rightarrow }}y\iff \exists u,v,p,q\in (\Sigma \cup N)^{*}:(x=upv)\wedge (p\rightarrow q\in P)\wedge (y=uqv)}
关系
⇒
G
∗
{\displaystyle {\overset {*}{\underset {G}{\Rightarrow }}}}
(读作“G经0或 ある 更 さら 多 た 步 ふ 推导”)定 てい 义为
⇒
G
{\displaystyle {\underset {G}{\Rightarrow }}}
的 てき 自 じ 反 はん 传递闭包
句 く 型 がた 是 ぜ 指 ゆび 可 か 以由开始符号 ふごう
S
{\displaystyle S}
经过有限 ゆうげん 步 ふ 推导得 え 到 いた 的 てき
(
Σ しぐま
∪
N
)
∗
{\displaystyle (\Sigma \cup N)^{*}}
的 てき 一 いち 个成员;也就是 ぜ ,句 く 型 がた 是 ぜ
{
w
∈
(
Σ しぐま
∪
N
)
∗
∣
S
⇒
G
∗
w
}
{\displaystyle \left\{w\in (\Sigma \cup N)^{*}\mid S{\overset {*}{\underset {G}{\Rightarrow }}}w\right\}}
的 てき 一 いち 个成员。不 ふ 包含 ほうがん 非 ひ 终结符号 ふごう (即 そく
Σ しぐま
∗
{\displaystyle \Sigma ^{*}}
的 てき 成 なり 员)的 てき 句 く 型 がた 称 しょう 为句 く 子 こ 。[ 6]
G
{\displaystyle G}
的 てき 语言 ,记为
L
(
G
)
{\displaystyle {\boldsymbol {L}}(G)}
,定 てい 义为从开始 はじめ 符号 ふごう
S
{\displaystyle S}
开始经过有限 ゆうげん 步 ふ 骤可以推导出的 てき 所有 しょゆう 句 く 子 こ ;也就是 ぜ 集合 しゅうごう
{
w
∈
Σ しぐま
∗
∣
S
⇒
G
∗
w
}
{\displaystyle \left\{w\in \Sigma ^{*}\mid S{\overset {*}{\underset {G}{\Rightarrow }}}w\right\}}
。
注意 ちゅうい 文法 ぶんぽう
G
=
(
N
,
Σ しぐま
,
P
,
S
)
{\displaystyle G=(N,\Sigma ,P,S)}
实际上 じょう 是 ぜ 半 はん 图厄系 けい 统
(
N
∪
Σ しぐま
,
P
)
{\displaystyle (N\cup \Sigma ,P)}
,以完全 かんぜん 相 しょう 同 どう 的 てき 方式 ほうしき 重 じゅう 写字 しゃじ 符 ふ 串 くし ;唯 ただ 一的区别在于我们区分了特定的非终结符号,这些符号 ふごう 必须在 ざい 重 じゅう 写 うつし 规则中重 なかしげ 写 うつし ,并且只 ただ 对从指定 してい 的 てき 开始符号 ふごう
S
{\displaystyle S}
到 いた 没 ぼっ 有 ゆう 非 ひ 终结符号 ふごう 的 てき 字 じ 符 ふ 串 くし 的 てき 重 じゅう 写 うつし 感 かん 兴趣。
在 ざい 这些例 れい 子中 こなか ,形式 けいしき 语言使用 しよう 集合 しゅうごう 建 けん 構式符號 ふごう 描述。
考 こう 虑文法 ほう
G
{\displaystyle G}
,其中
N
=
{
S
,
B
}
{\displaystyle N=\left\{S,B\right\}}
,
Σ しぐま
=
{
a
,
b
,
c
}
{\displaystyle \Sigma =\left\{a,b,c\right\}}
,
S
{\displaystyle S}
是 ぜ 开始符号 ふごう ,
P
{\displaystyle P}
由 よし 以下 いか 产生式 しき 规则组成:
1.
S
→
a
B
S
c
{\displaystyle S\rightarrow aBSc}
2.
S
→
a
b
c
{\displaystyle S\rightarrow abc}
3.
B
a
→
a
B
{\displaystyle Ba\rightarrow aB}
4.
B
b
→
b
b
{\displaystyle Bb\rightarrow bb}
这个文 ぶん 法定 ほうてい 义了语言
L
(
G
)
=
{
a
n
b
n
c
n
∣
n
≥
1
}
{\displaystyle L(G)=\left\{a^{n}b^{n}c^{n}\mid n\geq 1\right\}}
,这里
a
n
{\displaystyle a^{n}}
表示 ひょうじ n 个
a
{\displaystyle a}
串 くし 连所得 しょとく 的 てき 字 じ 符 ふ 串 くし 。因 よし 此,该语言 げん 是 ぜ 由 よし 1个或更 さら 多 た 的 てき
a
{\displaystyle a}
,后 きさき 面 めん 跟着相 しょう 同 どう 数量 すうりょう 的 てき
b
{\displaystyle b}
,接着 せっちゃく 是 ぜ 相 しょう 同 どう 数量 すうりょう 的 てき
c
{\displaystyle c}
组成的 てき 字 じ 符 ふ 串 くし 集合 しゅうごう 。
L
(
G
)
{\displaystyle L(G)}
内 うち 字 じ 符 ふ 串 くし 的 てき 推导例 れい 子 こ 如下:
S
⇒
2
a
b
c
{\displaystyle {\boldsymbol {S}}{\underset {2}{\Rightarrow }}{\boldsymbol {abc}}}
S
⇒
1
a
B
S
c
⇒
2
a
B
a
b
c
c
⇒
3
a
a
B
b
c
c
⇒
4
a
a
b
b
c
c
{\displaystyle {\begin{aligned}{\boldsymbol {S}}&{\underset {1}{\Rightarrow }}{\boldsymbol {aBSc}}\\&{\underset {2}{\Rightarrow }}aB{\boldsymbol {abc}}c\\&{\underset {3}{\Rightarrow }}a{\boldsymbol {aB}}bcc\\&{\underset {4}{\Rightarrow }}aa{\boldsymbol {bb}}cc\end{aligned}}}
S
⇒
1
a
B
S
c
⇒
1
a
B
a
B
S
c
c
⇒
2
a
B
a
B
a
b
c
c
c
⇒
3
a
a
B
B
a
b
c
c
c
⇒
3
a
a
B
a
B
b
c
c
c
⇒
3
a
a
a
B
B
b
c
c
c
⇒
4
a
a
a
B
b
b
c
c
c
⇒
4
a
a
a
b
b
b
c
c
c
{\displaystyle {\begin{aligned}{\boldsymbol {S}}&{\underset {1}{\Rightarrow }}{\boldsymbol {aBSc}}{\underset {1}{\Rightarrow }}aB{\boldsymbol {aBSc}}c\\&{\underset {2}{\Rightarrow }}aBaB{\boldsymbol {abc}}cc\\&{\underset {3}{\Rightarrow }}a{\boldsymbol {aB}}Babccc{\underset {3}{\Rightarrow }}aaB{\boldsymbol {aB}}bccc{\underset {3}{\Rightarrow }}aa{\boldsymbol {aB}}Bbccc\\&{\underset {4}{\Rightarrow }}aaaB{\boldsymbol {bb}}ccc{\underset {4}{\Rightarrow }}aaa{\boldsymbol {bb}}bccc\end{aligned}}}
(标记
P
⇒
i
Q
{\displaystyle P{\underset {i}{\Rightarrow }}Q}
读作“字 じ 符 ふ 串 くし P 通 つう 过产生 せい 式 しき i 生成 せいせい Q ”,替 がえ 换的字 じ 符 ふ 串 くし 用 よう 粗 そ 体 からだ 标出。)
1956年 ねん 诺姆·乔姆斯基 首 くび 次 じ 将 はた 生成 せいせい 文法 ぶんぽう 形式 けいしき 化 か 时,[ 2] 他 た 将 しょう 它们分 ぶん 为现在 ざい 称 しょう 为乔姆斯基谱系 的 てき 四 よん 种类型 がた 。其中两种重要 じゅうよう 的 てき 文法 ぶんぽう 类型分 ぶん 别是上下 じょうげ 文 ぶん 无关文法 ぶんぽう (2型 がた )和 わ 正 せい 则文法 ほう (3型 がた )。可 か 以用这两种文法 ほう 描述的 てき 语言分 ぶん 别称为上下 じょうげ 文 ぶん 无关语言和 わ 正 せい 则语言 げん 。尽 つき 管 かん 比 ひ 无限制 せい 文法 ぶんぽう (0型 がた ,实际上 じょう 无限制 せい 文法 ぶんぽう 可 か 以表示 ひょうじ 任 にん 何 なに 图灵机 つくえ 可 か 以接受 せつじゅ 的 てき 语言)要 よう 弱 じゃく 得 とく 多 た ,但 ただし 这两种受限 げん 制 せい 的 てき 语法最 さい 常用 じょうよう ,因 いん 为它们的解析 かいせき 器 き 可 か 以高效 こう 地 ち 实现。[ 7] 例 れい 如,所有 しょゆう 正 せい 规语言 げん 都 と 可 か 以被有限 ゆうげん 状 じょう 态机 识别,对于上下 じょうげ 文 ぶん 无关文法 ぶんぽう 的 てき 有用 ゆうよう 子 こ 集 しゅう ,有 ゆう 一些著名的算法可以生成高效的LL剖析器 き LR剖析器 き ,以识别文法 ほう 生成 せいせい 的 てき 相 しょう 应语言 ごと 。
上下 じょうげ 文 ぶん 无关文法 ぶんぽう 要求 ようきゅう 产生式 しき 左 ひだり 侧只能 のう 包含 ほうがん 一 いち 个符号 ごう ,并且该符号 ごう 为非终结符号 ふごう 。这个限 げん 制 せい 是非 ぜひ 常 つね 重要 じゅうよう 的 てき ;不 ふ 是 ぜ 所有 しょゆう 的 てき 语言都 と 可 か 以由上下 じょうげ 文 ぶん 无关的 てき 语法生成 せいせい 。那 な 些可以被称 しょう 为上下 じょうげ 文 ぶん 无关语言 。
上 うえ 例 れい 定 てい 义的语言
L
(
G
)
=
{
a
n
b
n
c
n
∣
n
≥
1
}
{\displaystyle L(G)=\left\{a^{n}b^{n}c^{n}\mid n\geq 1\right\}}
并不是 ぜ 一个上下文无关语言,并且这个可 か 以用上下 じょうげ 文 ぶん 无关语言的 てき 泵引理 り 严格证明,但 ただし
{
a
n
b
n
∣
n
≥
1
}
{\displaystyle \left\{a^{n}b^{n}\mid n\geq 1\right\}}
(1个及以上 いじょう
a
{\displaystyle a}
后 きさき 面 めん 跟同样数量的 りょうてき
b
{\displaystyle b}
)是 ぜ 一个上下文无关语言。因 よし 为它可 か 以由文法 ぶんぽう
G
2
{\displaystyle G_{2}}
(
N
=
{
S
}
{\displaystyle N=\left\{S\right\}}
,
Σ しぐま
=
{
a
,
b
}
{\displaystyle \Sigma =\left\{a,b\right\}}
,
S
{\displaystyle S}
为开始 はじめ 符号 ふごう )定 てい 义,用 よう 下 か 列 れつ 产生式 しき 规则:
1.
S
→
a
S
b
{\displaystyle S\rightarrow aSb}
2.
S
→
a
b
{\displaystyle S\rightarrow ab}
通 つう 过Earley算法 さんぽう 可 か 以在
O
(
n
3
)
{\displaystyle O(n^{3})}
时间(参 まいり 见大 だい O符号 ふごう )内 ない 识别上下 じょうげ 文 ぶん 无关语言。也就是 ぜ 说,对于每 ごと 一种上下文无关的语言,都 と 可 か 以构建 けん 一 いち 台 だい 以字符 ふ 串 くし 为输入 にゅう 并及时确定 てい 字 じ 符 ふ 串 くし 是 ぜ 否 ひ 为该语言成 なり 员的机 つくえ 器 き ,其中
n
{\displaystyle n}
是 ぜ 字 じ 符 ふ 串 くし 的 てき 长度。[ 8] 确定性 せい 上下 じょうげ 文 ぶん 无关语言 是 ぜ 可 か 在 ざい 线性时间内 ない 识别的 てき 上下 じょうげ 文 ぶん 无关语言的 てき 子 こ 集 しゅう 。[ 9] 由 ゆかり 多 た 种算法 ほう 针对这类语言或 ある 它的子 こ 集 しゅう 。
在 ざい 正 せい 则文法 ほう 中 なか ,左 ひだり 侧仍然 しか 只 ただ 是 ぜ 一 いち 个非终结符号 ふごう ,但 ただし 右 みぎ 侧也受到限 げん 制 せい 。右 みぎ 侧可以是空 そら 字 じ 符 ふ 串 くし ,也可以是单个终结符号 ふごう ,或 ある 者 もの 是 ぜ 后 きさき 跟非终结符号 ふごう 的 てき 单个终结符号 ふごう ,但 ただし 不能 ふのう 是 ぜ 其他符号 ふごう 。(有 ゆう 时会使用 しよう 更 さら 宽泛的 てき 定 てい 义:可 か 以允许更长的终结字 じ 符 ふ 串 くし 或 ある 单个非 ひ 终结字 じ 符 ふ 串 くし ,而不能 ふのう 有 ゆう 其他任 にん 何 なん 东西,从而使 し 语言更 さら 易 えき 于表示 ひょうじ ,同 どう 时仍然 しか 定 てい 义同一 いち 类语言 ごと 。)
上面 うわつら 定 てい 义的语言
{
a
n
b
n
∣
n
≥
1
}
{\displaystyle \left\{a^{n}b^{n}\mid n\geq 1\right\}}
不 ふ 是 ぜ 一个正则语言,但 ただし 下面 かめん 这个语言是 ぜ :
{
a
n
b
m
∣
m
,
n
≥
1
}
{\displaystyle \left\{a^{n}b^{m}\mid m,n\geq 1\right\}}
(一个或多个
a
{\displaystyle a}
后 きさき 面 めん 跟着一个或多个
b
{\displaystyle b}
,这两个的数量 すうりょう 可 か 以不一 いち 样)。它之所以 ゆえん 是正 ぜせい 则语言 ごと ,是 ぜ 因 いん 为可以通过文法 ほう
G
3
{\displaystyle G_{3}}
定 てい 义,其中
N
=
{
S
,
A
,
B
}
{\displaystyle N=\left\{S,A,B\right\}}
,
Σ しぐま
=
{
a
,
b
}
{\displaystyle \Sigma =\left\{a,b\right\}}
,
S
{\displaystyle S}
为开始 はじめ 符号 ふごう ,还有如下产生式 しき 规则:
S
→
a
A
{\displaystyle S\rightarrow aA}
A
→
a
A
{\displaystyle A\rightarrow aA}
A
→
b
B
{\displaystyle A\rightarrow bB}
B
→
b
B
{\displaystyle B\rightarrow bB}
B
→
ϵ
{\displaystyle B\rightarrow \epsilon }
由正 よしまさ 则文法 ほう 生成 せいせい 的 てき 所有 しょゆう 语言都 と 可 か 以被有限 ゆうげん 状 じょう 态机在 ざい
O
(
n
)
{\displaystyle O(n)}
时间内 ない 识别出来 でき 。虽然在 ざい 实际应用中 ちゅう ,正 せい 则文法 ほう 通常 つうじょう 使用 しよう 正 せい 则表达式来 らい 表示 ひょうじ ,但 ただし 是 ぜ 实际应用中 ちゅう 使用 しよう 的 てき 一些正则表达式并没有严格地生成正则语言,也因此没有 ゆう 表 ひょう 现出线性识别性能 せいのう 。
生 なま 成文法 せいぶんほう 的 てき 其他形式 けいしき [ 编辑 ]
语言学 がく 家 か 和 わ 计算机 つくえ 科学 かがく 家 か 对乔姆斯基 もと 的 てき 形式 けいしき 语法的 てき 原始 げんし 层次结构进行了 りょう 许多扩展和 わ 变化,通常 つうじょう 是 ぜ 为了增强 ぞうきょう 表 ひょう 达能力 りょく ,或 ある 者 もの 是 ぜ 为了使 し 分析 ぶんせき 或 ある 解析 かいせき 更 さら 加 か 容易 ようい 。一 いち 些形式 しき 的 てき 文法 ぶんぽう 包括 ほうかつ :
提示 ていじ :此条
目 め 页的
主 ぬし 题不
是 ぜ 递归语言 。
递归文法 ぶんぽう 是 ぜ 包含 ほうがん 递归 产生式 しき 规则的 てき 语法。例 れい 如,如果存在 そんざい 一个非终结符 A ,可 か 以通过产生 せい 式 しき 规则生成 せいせい 一 いち 个以 A 为最左 ひだり 边符号 ごう 的 てき 字 じ 符 ふ 串 くし ,那 な 么上下 じょうげ 文 ぶん 无关语言的 てき 文法 ぶんぽう 就是左 ひだり 遞歸的 てき 。[ 14]
尽 つき 管 かん 有 ゆう 大量 たいりょう 关于语法分析 ぶんせき 算法 さんぽう 的 てき 文献 ぶんけん ,但 ただし 这些算 さん 法大 ほうだい 多 た 假 かり 设要被 ひ 分析 ぶんせき 的 てき 语言最初 さいしょ 是 ぜ 通 どおり 过生成 せいせい 式 しき 文法 ぶんぽう 来 らい 描述 的 てき ,并且目 め 标是将 しょう 生成 せいせい 式 しき 文法 ぶんぽう 转换成 なり 一个有效的语法分析器。严格地 ち 说,生成 せいせい 文法 ぶんぽう 不能 ふのう 在任 ざいにん 何 なん 方面 ほうめん 都 と 与 あずか 解析 かいせき 语言的 てき 算法 さんぽう 对应上 じょう ,而且各 かく 种算法 ほう 对产生 せい 式 しき 规则的 てき 形式 けいしき 有 ゆう 不同 ふどう 的 てき 限 きり 制 せい ,这些产生式 しき 规则被 ひ 认为是 ぜ 形式 けいしき 良好 りょうこう 的 てき 。
另一种方法是首先根据分析型文法将语言形式化,分析 ぶんせき 型 がた 文法 ぶんぽう 能 のう 更 さら 直 ちょく 接地 せっち 对应于语言 げん 分析 ぶんせき 器 き 的 てき 结构和 わ 语义。分析 ぶんせき 型 がた 文法 ぶんぽう 体系 たいけい 的 てき 例 れい 子 こ 包括 ほうかつ :
^ Meduna, Alexander, Formal Languages and Computation: Models and Their Applications , CRC Press: 233, 2014 [2019-11-12 ] , ISBN 9781466513457 , (原始 げんし 内容 ないよう 存 そん 档 于2020-04-15) . 有 ゆう 关此主 ぬし 题的更 さら 多 た 信 しん 息 いき ,请参见不可 ふか 判定 はんてい 问题 。
^ 2.0 2.1 Chomsky, Noam. Three models for the description of language. IRE Transactions on Information Theory . Sep 1956, 2 (3): 113–124. doi:10.1109/TIT.1956.1056813 .
^ Chomsky, Noam. Syntactic Structures . The Hague: Mouton . 1957.
^ Ginsburg, Seymour . Algebraic and automata theoretic properties of formal languages. North-Holland. 1975: 8–9. ISBN 978-0-7204-2506-2 .
^ Harrison, Michael A. Introduction to Formal Language Theory . Reading, Mass.: Addison-Wesley Publishing Company. 1978: 13 . ISBN 978-0-201-02955-0 .
^ Sentential Forms (页面存 そん 档备份 ,存 そん 于互联网档案 あん 馆 ), Context-Free Grammars, David Matuszek
^ Grune, Dick & Jacobs, Ceriel H., Parsing Techniques – A Practical Guide , Ellis Horwood, England, 1990.
^ Earley, Jay, "An Efficient Context-Free Parsing Algorithm (页面存 そん 档备份 ,存 そん 于互联网档案 あん 馆 )," Communications of the ACM , Vol. 13 No. 2, pp. 94-102, February 1970.
^ Knuth, D. E. On the translation of languages from left to right (PDF) . Information and Control. July 1965, 8 (6): 607–639 [29 May 2011] . doi:10.1016/S0019-9958(65)90426-2 . (原始 げんし 内容 ないよう (PDF) 存 そん 档于2012-03-15).
^ Joshi, Aravind K., et al. , "Tree Adjunct Grammars (页面存 そん 档备份 ,存 そん 于互联网档案 あん 馆 )," Journal of Computer Systems Science , Vol. 10 No. 1, pp. 136-163, 1975.
^ Koster , Cornelis H. A., "Affix Grammars," in ALGOL 68 Implementation , North Holland Publishing Company, Amsterdam, p. 95-109, 1971.
^ Knuth, Donald E., "Semantics of Context-Free Languages (页面存 そん 档备份 ,存 そん 于互联网档案 あん 馆 )," Mathematical Systems Theory , Vol. 2 No. 2, pp. 127-145, 1968.
^ Knuth, Donald E., "Semantics of Context-Free Languages (correction)," Mathematical Systems Theory , Vol. 5 No. 1, pp 95-96, 1971.
^ Notes on Formal Language Theory and Parsing (页面存 そん 档备份 ,存 そん 于互联网档案 あん 馆 ), James Power, Department of Computer Science National University of Ireland, Maynooth Maynooth, Co. Kildare, Ireland.JPR02
^ Birman, Alexander, The TMG Recognition Schema (页面存 そん 档备份 ,存 そん 于互联网档案 あん 馆 ) , Doctoral thesis, Princeton University, Dept. of Electrical Engineering, February 1970.
^ Sleator, Daniel D. & Temperly, Davy, "Parsing English with a Link Grammar ," Technical Report CMU-CS-91-196, Carnegie Mellon University Computer Science, 1991.
^ Sleator, Daniel D. & Temperly, Davy, "Parsing English with a Link Grammar," Third International Workshop on Parsing Technologies , 1993. (Revised version of above report.)
^ Ford, Bryan, Packrat Parsing: a Practical Linear-Time Algorithm with Backtracking (页面存 そん 档备份 ,存 そん 于互联网档案 あん 馆 ) , Master’s thesis, Massachusetts Institute of Technology, Sept. 2002.
每 まい 个语言 げん 范畴都 と 是 ぜ 其直接 ちょくせつ 上面 うわつら 的 てき 范畴的 てき 真子 しんじ 集 しゅう 每 まい 个语言 げん 范畴内 ない 的 てき 语言都 と 可 か 以用同 どう 一行的文法和自动机表示