用 TOC 中的例子解释语言的正式定义?

可以从起始符号导出的所有字符串(通过终结符号)的集合是由语法 G 生成的语言。

示例 1

令文法 G 由终结符集 T = {a, b}、唯一的非终结符起始符号 S 和产生式规则集定义。因此,语法 G 将如下 -

S → ∧, S → aSb

或者简而言之,如下所述 -

S → ∧ | 锑

L(G)= {∧, ab, aabb, aaabbb, . . . }

定义

如果 G 被称为具有起始符号 S 和终结符集 T 的文法,则 G 生成的语言是以下集合 -

S → ∧ | 锑

L(G)= {s | s ∈ T* 和 S ⇒+ s}。

也就是说,它是仅包含终结符的所有字符串的集合,这些终结符可以使用一个或多个步骤从起始符号导出。

示例 2

设 ∑ = {a, b, c} 是终结符的集合,{A, S} 是具有起始符号 S 的非终结符的集合。 ∑ 上的语言 L 由以下产生式定义 -

S → b | aA, A → c | BS

属于语言 L 的字符串示例如下 -

显然,我们可以生成 b。所有较长的字符串都以 a 开头。所有字符串都将以 b 或 ac 结尾。

我们可以制作字符串 - b, ac, abb, abac, abbabb, ababac, abababb, . . .

以下描述是否正确?

'来自 L 的任何字符串都包含 a、b(以任何顺序)并以 b 或 ac 结尾'

. . . 不!,

例如ba,abaabac∈/L

示例 3

设 ∑ = {a, b, c} 是终结符的集合,S 是唯一的非终结符。以下四个产生式描述了哪种语言?

S → ∧

S → aS

S → bS

S → cS

或者简写为 − S → ∧ | | | 乙| CS。

尝试意识到 ∑* 中的所有字符串都可以通过这些规则生成,并针对字符串 aacb 进行验证。

S ⇒ aS ⇒ aaS ⇒ aacS ⇒ aacbS ⇒ aacb∧ = aacb

因此,S⇒*aacb。

以上是 用 TOC 中的例子解释语言的正式定义? 的全部内容, 来源链接: utcz.com/z/327519.html

回到顶部