作者supercygnus (......)
看板Programming
标题Re: [问题] BNF文法问题
时间Thu Apr 7 21:24:51 2011
※ 引述《LPH66 (-858993460)》之铭言:
: ※ 引述《supercygnus (......)》之铭言:
: : 给定下列BNF 文法规则:
: : <pop>::=[<bop>,<pop>]|<bop>
: : <bop>::= <boop>|(<pop>)
: : <boop>::= x|y|z
: : 请问下列那些字串不属於上述语法所规范的集合?
: : 猨A.([x,y]) 獏B.[(x),y] 獱C.[(x),[y,x]] 斅D.[y]
: : 答案是D
: : 想问到底要怎麽推倒呢@@? 我推来推去感觉都可以
: : 可帮忙解答一下吗 ~? 3Q ^^
: 以下为前三者的 leftmost derivation
: A. B. C. (接B.第6行)
: <pop> <pop> [(x),<pop>]
: <bop> [<bop>,<pop>] [(x),[<bop>,<pop>]]
: (<pop>) [(<pop>),<pop>] [(x),[<boop>,<pop>]]
: ([<bop>,<pop>]) [(<bop>),<pop>] [(x),[y,<pop>]]
: ([<boop>,<pop>]) [(<boop>),<pop>] [(x),[y,<bop>]]
: ([x,<pop>]) [(x),<pop>] [(x),[y,<boop>]]
: ([x,<bop>]) [(x),<bop>] [(x),[y,x]]
: ([x,<boop>]) [(x),<boop>]
: ([x,y]) [(x),y]
: D.不能的原因 你仔细观察即可看到 [ ] 中间必恰有一个不在其内的括号当中的逗号
: 而 [y] 在 [ ] 中间没有逗号 故不属於此语法所规范的集合
考虑以下文法:
E → E * T | T
T → T + P | P
P → i | (E)
i → 0 | 1 | 2…..
则2 * 3 + 4 * 5值为何?
答:70(2*7*5) 为什麽呢@@ 我还是推不出来,就是怪@@
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.167.105.145
1F:→ ericinttu:你推的过程是什麽? 59.117.180.61 04/07 22:26