给出串id * id + id的最右推导式
时间: 2023-09-17 20:05:42 浏览: 94
### 回答1:
假设我们有以下文法:
```
S -> id * id + id
```
最右推导式的意思是,我们从句子的最右边开始,一步步地向左推导,直到推导出起始符号 S。因此,我们需要找到一个以 S 为根的推导树,使得叶子节点的标记恰好为 id * id + id,且从叶子节点到根节点的顺序为最右推导式的推导顺序。
假设我们要推导的句子为 "a * b + c",那么最右推导式为:
```
S → id * id + id
→ a * id + id
→ a * b + id
→ a * b + c
```
对应的推导树为:
```
S
____|____
| | |
id * id
| |
a id
|
c
```
因此,串 "a * b + c" 的最右推导式为 S → id * id + id,其中 id 分别对应 a、b 和 c。
### 回答2:
串id * id的最右推导式是S -> id * id。推导过程如下:
1. 初始推导: S
2. 应用产生式S -> id * id,得到id * id
3. 推导完成
最右推导式是指从左到右依次推导得到的最终结果,即id * id。每一步推导都是通过应用产生式来替换非终结符,直到无法继续推导为止。在本例中,只有一个产生式可以应用,即S -> id * id。因此,最右推导式与初始推导式相同,为id * id。
### 回答3:
串id * id的最右推导式是 E -> id * E -> id * id。从左向右进行推导时,首先可以用E -> id * E的规则将串中的第一个id与*之前的部分推导成E,然后再用E -> id * id的规则将E中的第二个id与*之后的部分推导成id * id。最终得到的推导式是E -> id * id。
阅读全文