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