高考申論題
106年
[電力工程] 計算機概論
第 二 題
📖 題組:
四、下列為某一語言之 BNF(Backus-Naur Form)表示法: ::= =
::= + | – | * |
::= A | B | C | D | E
::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
四、下列為某一語言之 BNF(Backus-Naur Form)表示法:
📝 此題為申論題,共 2 小題
小題 (二)
請問此語法是否為混淆的(ambiguous)?請詳細解釋理由。(10 分)
思路引導 VIP
面對文法模糊性問題,首要原則是回顧定義:『同一字串是否能產生兩棵以上的剖析樹或最左推導』。解題時直接鎖定具有左遞迴與右遞迴特性的運算式(如 <expr> + <expr>),這類缺乏運算子優先權與結合性定義的規則必為模糊語法,接著舉出如 'A = 1 + 2 * 3' 的簡單實例,展示兩種不同的推導路徑即可完美取分。
小題 (一)
C = 8 + 3 * 2 – 5 是否合乎此語法?請詳細說明理由。(10 分)
思路引導 VIP
判斷特定字串是否符合給定的 BNF 語法,核心在於能否從起始符號(Start Symbol)透過替換規則(Production Rules)推導出該目標字串。考生可運用「最左推導(Leftmost Derivation)」或繪製「剖析樹(Parse Tree)」的方式,逐步展開證明即可,若成功推導即代表合乎語法。