📜  计算理论中的语法导论

📅  最后修改于: 2021-09-27 14:54:19             🧑  作者: Mango

先决条件 –计算理论

语法 :
它是一组有限的形式规则,用于生成语法正确的句子或有意义的正确句子。

语法构成:
语法基本上由两个基本元素组成——

  1. 终端符号 –
    终结符是使用语法生成的句子的组成部分,并使用小写字母(如 a、b、c 等)表示。
  2. 非终端符号 –
    非终结符是那些参与句子生成但不是句子成分的符号。非终止符号也称为辅助符号和变量。这些符号使用大写字母表示,如 A、B、C 等。

语法的正式定义:
任何语法都可以用 4 个元组表示 –

  • N –非终端符号的有限非空集。
  • T –终端符号的有限集。
  • P –有限非空生产规则集。
  • S –开始符号(我们开始生成句子或字符串的符号)。

生产规则:
计算机科学中的产生式或产生式规则是一种重写规则,指定可以递归执行以生成新符号序列的符号替换。它的形式\alpha  -> \beta  在哪里\alpha  是一个非终结符,可以用\beta  这是字符串终端符号或非终端符号。

示例-1:
考虑语法 G1 =

T = {a,b} #终结符集 P = {A->Aa,A->Ab,A->a,A->b,A-> \epsilon } #所有产生式规则的集合 S = {A} #Start Symbol

由于起始符号是 S 那么我们可以产生 Aa, Ab, a,b, \epsilon  它可以进一步生成字符串,其中 A 可以被生成规则中提到的字符串替换,因此该语法可用于生成 (a+b)* 形式的字符串。

字符串的推导:

A->a    #using production rule 3
OR
A->Aa    #using production rule 1
Aa->ba    #using production rule 4
OR
A->Aa    #using production rule 1
Aa->AAa    #using production rule 1
AAa->bAa    #using production rule 4
bAa->ba    #using production rule 5

示例 2 :
考虑语法 G2 =

N = {A} #非终结符符号集 T = {a} #终结符号集 P = {A->Aa, A->AAa, A->a, A-> \epsilon } #所有产生式规则的集合 S = {A} #Start Symbol

由于起始符号是 S 那么我们可以产生 Aa, AAa, a, \epsilon   它可以进一步生成字符串,其中 A 可以被生成规则中提到的字符串替换,因此该语法可用于生成 (a)* 形式的字符串。

字符串的推导:

A->a    #using production rule 3
OR
A->Aa    #using production rule 1
Aa->aa    #using production rule 3
OR
A->Aa    #using production rule 1
Aa->AAa    #using production rule 1
AAa->Aa    #using production rule 4
Aa->aa    #using production rule 3

等效语法:
语法被认为是等价的,它们产生相同的语言。

不同类型的语法:
语法可以根据以下内容进行划分:

  • 生产规则类型
  • 推导树的数量
  • 字符串数