司法三等申論題
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)。
【詳解】
已知目標程式碼為:
▼ 還有更多解析內容