逻辑表达式G[S]的SLR分析表及识别过程
逻辑表达式G[S]的SLR分析表及识别过程
逻辑表达式G[S]:
- S→ A
- A→A∨B
- A→ B
- B→B∧C
- B→ C
- C→┐D
- C→ D
- D→(A)
- D→a
SLR分析表:
| 状态 | 动作 | GOTO | |---|---|---| | | ┐ | ∨ | ∧ | a | ( | ) | # | A | B | C | D | | 0 | s5 | | | s7 | s6 | | | 1 | 2 | 3 | 4 | | 1 | | s8 | | | | | | a0 | | | | | | 2 | | r2 | s9 | | | r2 | r2 | | | | | | | 3 | | r4 | r4 | | | r4 | r4 | | | | | | | 4 | | r6 | r6 | | | r6 | r6 | | | | | | | 5 | | | | s7 | s6 | | | | | | 10 | | 6 | s5 | | | s7 | s6 | | | 11 | 2 | 3 | 4 | | 7 | | r8 | r8 | | | r8 | r8 | | | | | | | 8 | s5 | | | s7 | s6 | | | | 12 | 3 | 4 | | 9 | s5 | | | s7 | s6 | | | | | 13 | 4 | | 10 | | r5 | r5 | | | r5 | r5 | | | | | | | 11 | | s8 | | | | s14 | | | | | | | | 12 | | r1 | s9 | | | r1 | r1 | | | | | | | 13 | | r3 | r3 | | | r3 | r3 | | | | | | | 14 | | r7 | r7 | | | r7 | r7 | | | | | |
#(a∨┐a)∧a# 的识别过程:
| 步骤 | 栈内容 | 输入串 | 操作 | |---|---|---|---| | 1 | #0 | (┐a∨a)∧a# | S6内容:2 | #0(6 | ┐a∨a)∧a# | S5 | | 3 | #0(56 | a)∧a# | r2 | | 4 | #0(3 | A)∧a# | S7 | | 5 | #0(37 | ┐a)∧a# | S5 | | 6 | #0(357 | a)∧a# | r2 | | 7 | #0(3 | A)∧a# | r4 | | 8 | #0(1 | A∨B)∧a# | S9 | | 9 | #0(19 | ┐a∨a)∧a# | r2 | | 10 | #0(1 | A∨B)∧a# | r6 | | 11 | #0(0 | S)∧a# | S5 | | 12 | #0(05 | ┐a∨a)∧a# | S5 | | 13 | #0(055 | a)∧a# | r2 | | 14 | #0(03 | A)∧a# | r4 | | 15 | #0(1 | A∨B)∧a# | r4 | | 16 | #0(0 | S)∧a# | S7 | | 17 | #0(07 | ┐a)∧a# | S5 | | 18 | #0(057 | a)∧a# | r2 | | 19 | #0(03 | A)∧a# | r4 | | 20 | #0(1 | A∨B)∧a# | r4 | | 21 | #0(0 | S)∧a# | S6 | | 22 | #0(06 | a)∧a# | r2 | | 23 | #0(3 | A)∧a# | r3 | | 24 | #0(1 | A∨B)∧a# | r3 | | 25 | #0(0 | S)∧a# | acc |
说明:
- 's' 表示移进操作,'r' 表示归约操作,'acc' 表示接受。
- 状态编号对应 SLR 分析表中的行号。
- 栈内容表示当前栈中的状态和符号。
- 输入串表示当前待识别的输入符号。
- 操作表示当前进行的操作,根据 SLR 分析表和输入符号决定。
结论:
通过 SLR 分析表,我们成功地识别了输入串 #(a∨┐a)∧a#,最终得到状态 0 和符号 'S',表示识别成功。
原文地址: https://www.cveoy.top/t/topic/od4D 著作权归作者所有。请勿转载和采集!