常规语法是描述常规的一种语法 语。 常规语法是一个数学对象G,它由四个分量G =(N,E , P,S)组成,其中
- N:非空的非终结符号的有限集合,
- E:一组有限的终端符号或字母符号,
- P:一组语法规则,每个规则都有一种形式
- A⇢aB
- ⇢
- A⇢∈,这里∈=空字符串,A,B∈N,a∈∑
- 小号∈N是开始符号。
该语法可以有两种形式:
- 右线性正则语法
- 左线性正则语法
右线性正则语法
在这种类型的规则语法中,右侧的所有非终结点都位于最右边。右端。
例子 :
A ⇢ a, A ⇢ aB, A ⇢ ∈
where,
A and B are non-terminals,
a is terminal, and
∈ is empty string
S ⇢ 00B | 11S
B ⇢ 0B | 1B | 0 | 1
where,
S and B are non-terminals, and
0 and 1 are terminals
左线性正则语法
在这种类型的规则语法中,右侧的所有非结点都位于最左侧,即;左端。
例子 :
A ⇢ a, A ⇢ Ba, A ⇢ ∈
where,
A and B are non-terminals,
a is terminal, and
∈ is empty string
S ⇢ B00 | S11
B ⇢ B0 | B1 | 0 | 1
where
S and B are non-terminals, and
0 and 1 are terminals
左线性到右线性正则语法
在这种类型的转换中,我们必须将所有左手非终结符向右移动,如下例所示:
Left linear Right linear
A -> Ba A -> abaB
B -> ab B -> epsilon
OR
A -> abB
B -> a
因此,可以这样做以给出多个答案。上面说明的示例除了给定一次以外,还具有多个答案。
右线性到左线性正则语法
在这种类型的转换中,我们必须将所有右手非终结符向左移动,如下例所示:
Right linear Left linear
A -> aB A -> Baba
B -> ab B -> epsilon
OR
A -> Bab
B -> a
因此,可以这样做以给出多个答案。上面说明的示例除了给定一次以外,还具有多个答案。