(论述题) 令文法N::=D|ND D::=0|1|2|3|4|5|6|7|8|9 给出句子0127,34,568的最左推导和最右推导。
时间: 2024-11-19 22:14:05 浏览: 0
在文法 N 中,我们有两个非终结符号:N 和 D。D 非终结符号代表的是数字0到9。对于给定的句子,我们将依次按照文法规则生成最左推导和最右推导。
**最左推导**(从最左到右的过程):
1. 首先,从 N 开始,因为是最左推导,所以我们会尽可能地找到最左边的非终结符来开始。
- N = D
- 0127
2. 接着,D 又可以分解为具体的数字 '0',所以我们替换掉 N。
- N -> D -> 0
3. 继续替换 D,得到下一个数字 '1',并连接起来。
- N -> 01
4. 类似地,直到处理完整个句子。
- 最终,得到的最左推导为:N -> 0127
**最右推导**(从最右到左的过程):
1. 我们从句子的最后一个字符开始。
- D -> 7
2. 然后加上前面的数字 '2',形成 '72',并回到 N 上。
- N -> D -> 72
3. 按照这种方式,逐次向左添加数字,直到整个句子都被包括进来。
- 最终,得到的最右推导为:N -> 0127 -> 0127
所以,对于句子 "0127",最左推导为 N -> 0127,最右推导也为 N -> 0127。同样的过程适用于 "34" 和 "568",结果分别是:
- 对于 "34",最左推导为 N -> 34,最右推导也为 N -> 34。
- 对于 "568",最左推导为 N -> 568,最右推导也为 N -> 568。
阅读全文