作者killermomo (杀Mo)
看板Programming
标题Re: [问题] BNF文法问题
时间Mon May 9 22:30:44 2011
※ 引述《yauhh (哟)》之铭言:
: ※ 引述《supercygnus (......)》之铭言:
: : 考虑以下文法:
: : E → E * T | T
: : T → T + P | P
: : P → i | (E)
: : i → 0 | 1 | 2…..
: : 则2 * 3 + 4 * 5值为何?
: : 答:70(2*7*5) 为什麽呢@@ 我还是推不出来,就是怪@@
: 2*3+4*5 由 E 规则可能有 <E,2>*<T,3+4*5> 或 <E,2*3+4>*<T,5> 而前者一下子
: 就会推到尽头得不到解答. 然後可以看後者:
: <E,2*3+4*5>
: = <E,2*3+4>*<T,5> { 由 E.1 }
: = <E,2>*<T,3+4>*<T,5> { 由 E.1 }
: = <T,2>*<T,3+4>*<T,5> { 由 E.2 }
: = <P,2>*<T,3+4>*<T,5> { 由 T.2 }
: = <i,2>*<T,3+4>*<T,5> { 由 P.1 }
: = 2*<T+P,3+4>*<T,5> { 由 i 和 T.1 }
: = 2*<<T,3>+<P,4>>*<T,5> { 由 T.1 }
: ...
: = 2*<<i,3>+<i,4>>*<i,5>
: = 2*7*5
: = 70
延续y大的答案而产生的问题...
该如何判断一个文法如何拆解呢?
不太懂这句
而前者一下子就会推到尽头得不到解答
因为我推导出来E * T之後
T再推导下去,感觉就推不出来了...
是因为这样才不考虑这个解答吗?
另外一问...
E→E + T | T
T→T * F | F
F→(E) | id
(E)可视为E吗?如不行,这题则不为模糊?对吗?
这个文法是模糊文法吗?
我的判断为是模糊文法?对吗?
※ 编辑: killermomo 来自: 112.105.171.107 (05/10 00:38)