12-1 月總結
- 拿 racket 寫了幾個 nanopass 跟 compiler 的教學
- 完善了一下 reporter 的報告收集機制跟文件
- 大幅改動 sauron 的方向,v0.4.0 之後從獨立的 IDE 轉向 DrRacket 的 plugin
typical 這次主要也是實驗 nanopass 的能力,效果相當好,至少成功了
- 靜態檢查 dependent type
- 對函數做 termination check
等。不過 nanopass 裡存有的型別資訊沒辦法跨模組傳遞檢查,為了解決這個問題我改用 macro system 編碼型別跟建構子,但對 lambda 的處理不太完善,所以 type-level computation 也還有問題,另外 strictly positive 也希望可以在下次嘗試實作。但程式碼已經一團混亂,而且編碼需要重新研究,會開新坑來進行後續的研究 www
自 inductive(用 runtime 編碼 dependent type 的版本,說實在的其實完成度是最高的 www) 跟 incr(主要是完成了相對可信任的 unification 實作) 之後的第三次實驗也到此結束。
- write-a-programming-language 的大略介紹就快完成了
- racket-taiwan.org 初學者教學編寫中
下一階段希望可以
- 把 sauron 推進到維護模式
- 實作 macro as dependent type,type universe 應該順便納入考量
- 把 racket-taiwan.org 的初學者教學語言介紹部分完成