阿摩線上測驗 登入

申論題資訊

試卷:104年 - 104 身心障礙特種考試_三等_資訊處理:程式語言#24069
科目:程式語言
年份:104年
排序:0

題組內容

四、考慮下列文法,大寫字母代表非終結符(non-terminal),其餘皆為終結符 (terminal),E 為開始變數。 
E → E + T | E − T | T 
T→ T * F | T / F | F 
F → ( E ) | identifier | number

申論題內容

⑵使用最左推導(leftmost derivation),推導出 1 *(2 + 3)一句。(6 分)

詳解 (共 1 筆)

詳解 提供者:hchungw

步驟

  1. 開始變數 EEE

EEE

  1. 推導最左邊的 EEETTT

E→TE \rightarrow TET

  1. 推導最左邊的 TTTT∗FT * FTF

T→T∗FT \rightarrow T * FTTF

  1. 推導最左邊的 TTTFFF

T→F∗FT \rightarrow F * FTFF

  1. 推導最左邊的 FFF 為 1:

F→1F \rightarrow 1F1

T→1∗FT \rightarrow 1 * FT1F

  1. 推導最左邊的 FFF(E)( E )(E)

F→(E)F \rightarrow ( E )F(E)

T→1∗(E)T \rightarrow 1 * ( E )T1(E)

  1. 推導最左邊的 EEEE+TE + TE+T

E→E+TE \rightarrow E + TEE+T

T→1∗(E+T)T \rightarrow 1 * ( E + T )T1(E+T)

  1. 推導最左邊的 EEETTT

E→T+TE \rightarrow T + TET+T

T→1∗(T+T)T \rightarrow 1 * ( T + T )T1(T+T)

  1. 推導最左邊的 TTTFFF

T→F+TT \rightarrow F + TTF+T

T→1∗(F+T)T \rightarrow 1 * ( F + T )T1(F+T)

  1. 推導最左邊的 FFF 為 2:

F→2F \rightarrow 2F2

T→1∗(2+T)T \rightarrow 1 * ( 2 + T )T1(2+T)

  1. 推導最左邊的 TTTFFF

T→FT \rightarrow FTF

T→1∗(2+F)T \rightarrow 1 * ( 2 + F )T1(2+F)

  1. 推導最左邊的 FFF 為 3:

F→3F \rightarrow 3F3

T→1∗(2+3)T \rightarrow 1 * ( 2 + 3 )T1(2+3)

最終推導結果

E→T→T∗F→F∗F→1∗F→1∗(E)→1∗(E+T)→1∗(T+T)→1∗(F+T)→1∗(2+T)→1∗(2+F)→1∗(2+3)E \rightarrow T \rightarrow T * F \rightarrow F * F \rightarrow 1 * F \rightarrow 1 * ( E ) \rightarrow 1 * ( E + T ) \rightarrow 1 * ( T + T ) \rightarrow 1 * ( F + T ) \rightarrow 1 * ( 2 + T ) \rightarrow 1 * ( 2 + F ) \rightarrow 1 * ( 2 + 3 )ETTFFF1F1(E)1(E+T)1(T+T)1(F+T)1(2+T)1(2+F)1(2+3)

這樣,我們使用最左推導成功推導出 1 * (2 + 3)。