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