回答

2

手工操作非常容易。 PDA有起始狀態和最終狀態f,它只有兩個狀態。進行轉換((s,空,空),(f,S)),其中S是CFG的開始符號。對於每個規則X - > Y,其中X是非終端符號,Y是可能爲空的終端和非終端串,進行過渡((f,empty,X),(f,Y))。最後,對於每個終端符號a,添加規則((f,a,a),(f,empty))。

這樣做是通過推動堆棧上的開始符號開始的。然後它將它在堆棧頂部找到的非終結符替換爲其生產規則的右側,並匹配並彈出堆棧頂部的任何終端字符。