司法三等申論題
105年
[檢察事務官電子資訊組] 程式語言
第 一 題
📖 題組:
給予一個 grammar for expression 如下: -> =
-> X | Y | Z
-> + |
-> * |
-> ( )|
(一)試列出 X = Y + Z * X 之剖析樹(parse tree)。(10 分)
(二)該剖析樹是唯一嗎?(5 分)
給予一個 grammar for expression 如下:
📝 此題為申論題,共 2 小題
小題 (一)
試列出 X = Y + Z * X 之剖析樹(parse tree)。(10 分)
思路引導 VIP
面對剖析樹(Parse Tree)繪製題,首先應辨識文法的起始符號與目標字串。接著分析文法結構,此文法將加法置於乘法之上層,確保了乘法具備較高的優先權(在樹狀結構中會位於較深層的葉節點)。依循此層級規則由上而下逐步展開非終結符號即可正確解題。
小題 (二)
該剖析樹是唯一嗎?(5 分)
思路引導 VIP
看到這題,應先判斷給定的文法是否為「模糊文法」(Ambiguous Grammar)。觀察此文法透過 <expr>、<term>、<factor> 的階層設計,嚴格定義了運算子的優先權(乘法高於加法)與結合性(左遞迴確保左結合),因此它是無歧義的,剖析樹必然唯一。