
在上一篇文章中,完成了對括號的支持,這樣整個程序就可以解析普通的算術表達式了。但是在解析兩個括號的過程中發現有大量的地方需要進行索引的回退操作,...
在上一篇我們添加了對乘除法的支持,也介紹了BNF范式,并且針對當前的算術表達式寫出了對應的范式,同時根據范式給出相應的代碼實現。這篇我們將繼續為...
在上一篇中,我們實現了對減法的支持,并且介紹了語法圖。針對簡單的語法進行描述,用語法圖描述當然是沒問題的。但是針對一些復雜的語法進行描述,如果每...
在上一篇我們實現了一個可以計算兩個多位整數加減法的計算器。本章我們繼續來給這個計算器添加功能,這次要給它添加可以連續計算多個整數相加減的功能。例...
上一篇我們實現了一個簡單的加法計算器,并且了解了基本的詞法分析、詞法分析器的概念。本篇我們將要對之前實現的加法計算器進行擴展,我們為它添加以下幾...
為什么要學習編譯器和解釋器呢?文中的作者給出的答案有下面幾個: 為了深入理解計算機是如何工作的:一個顯而易見的道理就是,如果你不懂編譯器和解釋器...
作為一個程序員,自制自己的編譯器一直是一個夢想。之前也曾為了這個夢想學習過類似龍書、虎書這種大部頭的書,但是光看理論總有一些云里霧里的感覺。看完...
很抱歉我決定結束這個系列的內容了。原本我打算介紹markdown、orgmode相關的配置,甚至還打算介紹如何在vim 中使用 emacs 的 ...
很抱歉又拖更了這么久了,在這個新公司我想快速度過試用期,所以大部分的精力主要花在日常工作上面。但是這個系列還是得更新下去,平時只能抽有限的業余時...