地特三等申論題
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 小題
小題 (一)
C = 8 + 3 * 2 – 5 是否合乎此語法?請詳細說明理由。(10 分)
思路引導 VIP
看到 BNF 語法判斷題,首先找出起始符號(通常為第一條規則左側的非終結符),並嘗試透過逐步推導(Derivation)或建構剖析樹(Parse Tree)來生成目標字串。若能成功推導出該字串,即代表合乎語法;反之則否。
小題 (二)
請問此語法是否為混淆的(ambiguous)?請詳細解釋理由。(10 分)
思路引導 VIP
遇到判斷文法是否為混淆(ambiguous)的問題,首要關鍵是回憶其定義:『若一個文法能為同一個字串產生兩棵以上的剖析樹(或兩種以上不同的最左推導),則該文法即為混淆的』。解題策略是直接構造一個包含多個運算子的簡單字串(如 A = 1 + 2 * 3),並實際寫出兩種不同的推導過程來作為嚴謹的證明。