我想在我剛創建的編程語言中構建一個Brainfuck(該死的名字)解釋器來證明它是圖靈完備性的。在解釋器中實現Brainfuck循環
到目前爲止,一切都很清楚(<>+-,.
) - 除了一件事情:循環([]
)。 我假設你從這裏知道(非常難)BF語法:
- 如何實現BF在我的翻譯循環?
僞代碼是怎麼樣的?當解釋器達到循環開始([
)或循環結束(]
)時,我該怎麼辦?
檢查循環是否應該繼續或停止是沒有問題的(current cell==0
),但:
- 何時何地我都檢查?
- 如何知道循環開始的位置?
- 如何處理嵌套循環?
因爲循環可以嵌套,我想我不能只使用包含當前循環開始位置的變量。
我見過用各種語言實現的非常小的BF解釋器,我想知道他們是如何設法讓循環工作,但無法弄清楚。
Duplicate:http://stackoverflow.com/questions/1055758/creating-a-brainfk-parser-whats-the-best-method-of-parsing-loop-operators – 2010-06-14 21:21:17