今天
編譯ㄑ
早上的時候弄了幾道關卡
然後繼續研究流程控制的迴圈
然後又是重構
其實 while 之後就差不多了,do while 和 for 都只是稍微不同的變體而已
do while 就是在開始前多插入一次 jump
for 就是多了初始化和更新而已
筆記
測試
把迴圈的部分又重構了一次,三種迴圈重複程式有點多,就把重複的地方併了
還有把編譯的幾個步驟拆進不同 class,不然原本寫在一起 class 便超長...雖然八成都是中間語言的部分
我通常是不會讓一個 class 有那麼多東西,但中間語言那部分也沒辦法再拆了
接下來
應該可以開始 bytecode generate 了
function call 的部分先放著,先確定其他部分正常再搞這個複雜的
現在 intermediate code 有個問題就是指標會因為流程控制的遞迴指到錯的位置
但是 bytecode 運作時是用 stack 操作,不確定最終編譯會不會造成影響,所以要先搞最終編譯測測看
然後我找到一部解釋編譯工作解釋的蠻直觀的影片,有興趣可以看看
就降
Imgur 復活了 ya