摘要:是的,這個系列將呈現一個完整的編譯器從無到有的過程。但在寫這個編譯器的過程中,我可不會偷工減料,該有的一定會寫上的。該語言的虛擬機將運行于之上,同時編譯器將使用實現。我早有寫編譯器的想法之前沒寫過,故希望一邊寫編譯器一邊完成這個系列。
是的,這個系列將呈現一個完整的編譯器從無到有的過程。當然,為了保證該系列內容的簡潔(也為了降低難度),僅僅保證編譯器的最低要求,即僅能用。但在寫這個編譯器的過程中,我可不會偷工減料,該有的一定會寫上的。
編譯器將用于編譯一門我所創的語言,暫時命名為 tao 語言。該語言是動態語言,面向對象,原型繼承。支持用 lambda 表達式寫函數閉包,此外,也不會出現(討厭的)花括號。好吧,我目前腦海中這門語言的印象就是如此了。
該語言的虛擬機將運行于 JVM 之上,同時編譯器將使用 Java 實現。
最后說明一下本人的情況吧。我早有寫編譯器的想法(之前沒寫過),故希望一邊寫編譯器一邊完成這個系列。一來作為學習筆記,二來公之于眾以督促自己不中途偷懶。寫此系列還是抱著學習的態度,雖然之后內容寫得會像教程一樣,但讀者若有指教,請勿吝惜。不求無錯,但求有所長進。
文章一覽表從零開始寫個編譯器吧 - 從何處下手
從零開始寫個編譯器吧 - 編譯器的結構
從零開始寫個編譯器吧 - 單詞化簡述(Tokenization)
從零開始寫個編譯器吧 - tao語言的詞法分析器(Tokenizer)的類型定義
從零開始寫個編譯器吧 - Token.java 文件的編寫
從零開始寫個編譯器吧 - 詞法分析器是一個狀態機
從零開始寫個編譯器吧 - 開始寫詞法分析器(1)
從零開始寫個編譯器吧 - 開始寫詞法分析器(2)
從零開始寫個編譯器吧 - 符號分析,編寫 SignParser.java 文件
從零開始寫個編譯器吧 - 開始寫詞法分析器(3)
從零開始寫個編譯器吧 - Parser 語法分析器
從零開始寫個編譯器吧 - 文法簡介
從零開始寫個編譯器吧 - LL(1)
從零開始寫個編譯器吧系列 - moskize 的博客
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/64218.html
摘要:各位抱歉了,這個系列在多個平臺的專欄上連載。所以,我把從零開始寫個編譯器吧弄到了上。以后更新也是先從上開始。從零開始寫歌編譯器吧更及時的信息可以從我的公眾號上獲得雖然不怎么寫公眾號,但是還是掛一下吧 各位抱歉了,這個系列在多個平臺的專欄上連載。每發一個新章節,都要同步到各個專欄上,于是可能漏掉 Segmentfault 的博客。汗,其實 Segmentfault 這邊已經落后很久了。 ...
摘要:在之前的章節第章從零開始寫個編譯器吧開始寫詞法分析器中我有說,我將函數設計成主動調用的形式,而則是被動調用的形式。接下來本系列將進入編寫語法分析器的階段,不過在此之前,我將抽出一點時間介紹一下語言本身。 上周周末旅游去了,就沒更新了,雖然回到海拔0m的地區,不過目前似乎還在缺氧,所以本次就少更點吧。 這章將結束詞法分析的部分。 在之前的章節(第7章從零開始寫個編譯器吧 - 開始寫詞...
摘要:作為本系列的第一章,將考慮從何開始下手。運行環境解釋執行編譯器產生的目標代碼。從零開始寫個編譯器吧從何處下手的博客 作為本系列的第一章,將考慮從何開始下手。既然寫的是編譯器,那在此得明確編譯器長什么樣子,進一步,編譯器由哪幾部分構成,其工作原理大概是怎樣的。了解了這些,才好下手。 簡單來說,編譯器本身是一個程序,這個程序能將一種代碼(源代碼)翻譯成另一種代碼(目標代碼)。簡而言之就是如...
摘要:這樣的程序或稱工具有很多現成的可供選擇包括在平臺上可用的,但既然我這個系列叫做從零開始寫個編譯器吧,那顯然如果我用現成的工具,那是犯規行為。 Parser(語法分析器)的編寫相對于 Tokenizer (詞法分析器)要復雜得多,因此,在編寫之前可能也會鋪墊得更多一些。當然,本系列旨在寫出一個編譯器,所以理論方面只會簡單介紹 tao 語言所涉及的部分。 之前的幾章中,我純手寫了tao 語...
摘要:自然,我們還是先從語言的編譯器下手吧。在動手寫編譯器之前,得容我將編譯器的結構進行進一步的劃分。這些將被語法分析器接收并進行進一步處理。由于本系列將著重于寫出編譯器,必要的理論和概念還是會交代的。從零開始寫個編譯器吧編譯器的結構的博客 自然,我們還是先從 tao 語言的編譯器下手吧。在動手寫編譯器之前,得容我將編譯器的結構進行進一步的劃分。編譯器可視為一個黑盒,從其一端輸入源代碼,另一...
閱讀 3319·2021-11-08 13:12
閱讀 2756·2021-10-15 09:41
閱讀 1451·2021-10-08 10:05
閱讀 3300·2021-10-08 10:04
閱讀 2102·2021-09-29 09:34
閱讀 2472·2019-08-30 15:55
閱讀 2979·2019-08-30 15:45
閱讀 2577·2019-08-29 14:17