作者yauhh (哟)
看板Programming
标题Re: [问题] BNF文法问题
时间Fri Apr 8 00:27:03 2011
※ 引述《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
--
/yau
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.115.133