Re: [問題] compiler
※ 引述《ntouckcm (知足常樂)》之銘言:
: 請問一下
: 找不到問compiler的專版,但是又有問題,所以只好po在這,請大大解惑
: 一個文法:
: exp->atom|list
: atom->num|id
: list->(exp-list)
: exp-list->exp-list exp|exp
: num和id 是terminal,其他是nonterminal
: 要消去上面的left recursion
: 公式:A->Aa|b
: 變成:A->bA'
: A'->aA'|ε
: 但是我不知道要不要取代exp
: (1)exp-list->exp-list exp|exp
: 變成:
: exp-list->exp exp-list'
: exp-list'->exp exp-list'|ε
: (2)exp-list->exp-list exp|exp
: 先取代:exp-list->exp-list exp|atom|list
: 變成:
: exp-list->atom exp-list'|list exp-list'
: exp-list->exp exp-list'|ε
: 請問一下哪個才對?
都只做一半
記得沒有左遞迴等同於每條rule的第一個要嘛是下面的non-terminal要嘛是terminal
簡化一下代號 E,A,L,X是non-terminal n,i是terminal
E->A|L
A->n|i
L->X
X->XE|E
首先E,A,L三行都沒事
到X E是上面的nonterminal
X->XE|A|L
A也是
X->XE|n|i|L
L也是
X->XE|n|i|X X->X就拿掉了
解決自己
X->nX'|iX'
X'->EX'|ε
X搞定 換X' E是上面的nonterminal
X'->AX'|LX'|ε
A也是
X'->nX'|iX'|LX'|ε
L也是
X'->nX'|iX'|XX'|ε
X也是
X'->nX'|iX'|nX'X'|iX'X'|ε
所以最後變成
E->A|L
A->n|i
L->X
X->nX'|iX'
X'->nX'|iX'|nX'X'|iX'X'|ε
--
実琴:「河野!你真的就這樣被物質慾望給吸引過去了嗎?!」
亨:「只要穿著女裝擺出親切的樣子,所有必要花費就能全免,似乎一點都不壞啊。」
実琴:「難道你沒有男人的尊嚴了嗎?!」
亨:(斷然道)「沒有。在節衣縮食且生活吃緊的學生面前,沒有那種東西。」
--プリンセス・プリンセス 第二話
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.84
推
06/19 16:57, , 1F
06/19 16:57, 1F
推
06/19 17:04, , 2F
06/19 17:04, 2F
討論串 (同標題文章)