知文法G[S] S→S∗aF | aF | ∗aF F→+aF | +a (1)消除文法左递归和提取公共左因子; (2)求改写后文法的所有非终结符的FIRST和FOLLOW集。 (3)对改写后文法构造预测分析表*
时间: 2024-02-25 10:53:55 浏览: 90
(1) 消除文法左递归和提取公共左因子,得到改写后的文法G'[S]:
```
S → aF S'
S' → *aF S' | ε
F → +a F'
F' → F | ε
```
(2) 求改写后文法的所有非终结符的FIRST和FOLLOW集:
- FIRST(S) = {a}
- FIRST(S') = {*a, ε}
- FIRST(F) = {+a}
- FIRST(F') = {+a, ε}
- FOLLOW(S) = {$}
- FOLLOW(S') = {+a, $}
- FOLLOW(F) = {*a, $}
- FOLLOW(F') = {*a, $}
(3) 对改写后文法构造预测分析表:
| | a | * | + | $ |
| - | - | - | - | - |
| S | S→aF S' | | | |
| S'| | S'→*aF S' | | S'→ε |
| F | F→+a F' | | | |
|F'| F'→ε | | F'→F | F'→ε |
其中,表格中的每个格子表示使用对应的产生式进行推导。例如,S→aF S'表示如果输入符号为a,则使用该产生式推导出S。
阅读全文