免費開始練習
司法三等申論題 106年 [檢察事務官電子資訊組] 程式語言

第 二 題

二、請用下面的「與前後文無關的文法」(context-free grammar)為下面的程式畫出程式結構樹(concrete syntax tree)。(20 分) program var a, b : int; a := 0; b := a + 1; end. P ::= program Declist Stmtlist end . Declist ::= Dec Declist Declist ::= Dec ::= var Varlist : Type; Varlist ::= id Varlist ::= id, Varlist Type ::= real Type ::= int Stmtlist ::= Stmt Stmtlist Stmtlist ::= Stmt ::= id := Exp ; Exp ::= Const Exp ::= Exp + Const Exp ::= id Const ::= 0 Const ::= 1
📝 此題為申論題

思路引導 VIP

面對語法分析樹(Parse Tree)的建構題,首先應由起點符號(P)開始,根據提供的文法規則(Production Rules)進行最左推導(Leftmost Derivation)。在推導過程中,將非終結符號(Non-terminals)依序展開為終結符號(Terminals),並隨時與目標程式碼的詞彙標記(Tokens)比對,確保宣告串列與敘述串列的結構層次完全吻合。

🤖
AI 詳解 AI 專屬家教

【解題思路】利用題目所提供的上下文無關文法(CFG),由起點符號 P 開始進行推導,逐步將非終結符號展開以對應目標程式碼,藉此建立具體的語法結構樹(Concrete Syntax Tree)。 【詳解】 已知目標程式碼為:

▼ 還有更多解析內容

升級 VIP 解鎖