Re: [問題] BNF文法問題
※ 引述《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
討論串 (同標題文章)