作了幾個重要的修改:
有二點考慮改進的地方:
- 對heap和stack相關的幾條指令作了正規化,更符合stack machine的設計。
- 新增了一條指令discardx,function return時在沒有使用配製local時可以更簡單的free stack空間。
- 修正了heap指令的一個大問題,這樣才有辨法正確實作出string模組的功能,如strcpy等。
- 原本的sample作了修正外,新增了string和stdio模組,實作了幾個簡單的function。
- 實作簡易stdio.printf時,debugger新增自動dump stack狀態,這樣一來debug就更容易了。此外,在debug過程中也發現了幾個debugger的bug,順便一起修正。
- assembly parser也作了一些小修正,現在字串可以使用像是\n的escape字元,ID token也支援原先漏掉的底線_。
- jaja vm on java vm順便作了porting,不過還有點小bug,大致上執行起來沒問題。
有二點考慮改進的地方:
- function return時對於stack裡需要free的空間的處理。
- macro的支援。
這二點可有可無,可以跳過。接下來是支援high level language compiler,目前考慮的語言是c,但也可能是lua。將以高階語言寫成的程式編譯成jaja指令集,然後在jaja vm上執行。如果使用lua,目標是將good作出來的程式轉換成可以在jaja機器上直接執行。如果是這樣,指令集需要重新編碼,這部份需要再研究。
留言
張貼留言