如何用c/c++實現一個簡單的編譯器?
01-01
如果你什麼都不懂,按下面這個順序來個感性的認識,再看輪子哥的答案會比較好
(+ 1 2 3 4)
(+ (+ 1 2) 3 4)
(if (&> 1 2)
1 2)。。。
再添加新語義、新類型比如字元串布爾值什麼的
可惜我不能教你,就送你到這裡吧來看我vczh/tinymoe · GitHub ,或者JIT - λ-calculus(驚愕到手了歐耶,GetBlogPostIds.aspx) ,或者腳本技術 - λ-calculus(驚愕到手了歐耶,GetBlogPostIds.aspx)
其實龍書的附錄里有一個java實現的簡單編譯器前端。
你可以自己百度或者谷歌一下lex和yacc,一個是詞法分析器,一個是語法分析器。此外你可能還需要了解一下機器碼的知識。
ktg — Bitbucket 這裡有各個語言版本的lisp簡單實現ktg / Paren 這是cpp的實現版本題主可以參考一下上面的實現思路
推薦閱讀:
※無法定位程序輸入點ucrtbase.terminate?
※64 位系統和 32 位系統相比,有哪些優缺點?
※windows操作系統自帶的軟體為什麼總是做不好?
※win8 何時對2k以上屏進行優化?
※《The Big Bang Theory 》里的 Sheldon 為什麼沒有使用 Mac?