官术网_书友最值得收藏!

  • 自制編程語言
  • (日)前橋和彌
  • 1010字
  • 2021-11-24 18:03:47

1.3 本書的構(gòu)成與面向讀者

本書由以下的章節(jié)構(gòu)成:

●第1章 引子

●第2章 試做一個(gè)計(jì)算器

●第3~4章 制作無類型語言crowbar

●第5章 中文支持與Unicode

●第6~8章 制作靜態(tài)類型的語言Diksam

●第9章 應(yīng)用篇

第1章即是你正在閱讀的章節(jié)。本章會(huì)對(duì)全書的構(gòu)成以及講解方式進(jìn)行說明。

第2章通過制作一個(gè)簡單的計(jì)算器,介紹yacc/lex的基本使用方法。其實(shí)講解yacc/lex的部分,選擇“計(jì)算器”為例實(shí)在有點(diǎn)老套,但確實(shí)沒有比這更合適的題目了。此外還會(huì)介紹如何不依賴yacc,使用遞歸下降分析器(Recursive Descent Parser)來制作一個(gè)計(jì)算器。

從第3章開始,會(huì)實(shí)際制作有一定行數(shù)規(guī)模的編程語言。

3~4章會(huì)制作一個(gè)名為crowbar的無類型解釋型語言,6~8章則主要制作名為Diksam的支持靜態(tài)類型的編譯型語言(名字的由來會(huì)在后文提到)。在第5章中,會(huì)針對(duì)使用編程語言時(shí)的中文支持與Unicode問題進(jìn)行說明。

第9章闡釋閉包(Closure)及異常處理機(jī)制等進(jìn)階功能。

本書中會(huì)使用C語言作為編程語言語法處理器(編譯器、解釋器等)來編寫語言(理由見后文中的具體說明)。而crowbar與Diksam最終都會(huì)累積為具備一定行數(shù)規(guī)模的程序(crowbar約8000行,Diksam約2萬行)。

因此,閱讀本書的讀者最好具備兩個(gè)條件:

1.已經(jīng)會(huì)C語言

2.具備閱讀較長代碼的能力

不過無論哪個(gè)條件都不是必須的。

對(duì)于條件1需要說一點(diǎn)的是,Java、C++、C#等都是從C語言發(fā)展出來的語言,所以對(duì)于已經(jīng)學(xué)習(xí)過這些語言的人來說,讀C語言代碼不會(huì)特別吃力。像預(yù)處理程序、指針等C語言特有的知識(shí),建議你借此機(jī)會(huì)一并學(xué)習(xí)一下。因?yàn)橹辽倬同F(xiàn)階段來說,無論是專家還是業(yè)余愛好者,但凡是程序員都免不了要用到C語言。而在crowbar或Diksam中,并沒有使用很多C語言特有的功能。比如說不會(huì)出現(xiàn) *p++這種不易理解的寫法,更多是寫成數(shù)組下標(biāo)的形式。

對(duì)于條件2要說的是,雖然一個(gè)語法處理器整體來看是個(gè)上規(guī)模的程序,但是其基礎(chǔ)構(gòu)成的部分并不會(huì)很龐大。本書不會(huì)對(duì)每一行代碼逐一進(jìn)行注釋,而是側(cè)重于介紹解決問題的思路,所以如果僅僅是想閱讀一下本書的話,是不需要具備閱讀較長代碼的經(jīng)驗(yàn)的。但若你最后不滿足于書中的講解,還想要自己去閱讀一下crowbar或者Diksam源代碼的話,因?yàn)榇a行數(shù)很多,編程經(jīng)驗(yàn)尚淺的朋友讀起來可能會(huì)有壓力。不過無論是業(yè)界還是外界人士,作為程序員總有一天會(huì)接觸到大規(guī)模代碼的程序,將本次實(shí)踐作為入門的第一步也不是一件壞事。

綜上所述:

如果你覺得自己不是本書所面向的讀者,想辦法加入其中不就行了?

所以無需擔(dān)心什么,門檻其實(shí)沒有你想的那么高。凡是對(duì)語法處理器有興趣的朋友都是本書面向的讀者。

主站蜘蛛池模板: 开原市| 石屏县| 板桥市| 旺苍县| 镇原县| 迭部县| 邳州市| 临桂县| 黄龙县| 阿坝| 新乡县| 苍溪县| 吴旗县| 兴义市| 金沙县| 玉门市| 昌邑市| 乌拉特前旗| 全州县| 灌南县| 乌拉特后旗| 铁岭市| 沙田区| 比如县| 通城县| 泊头市| 渭源县| 枝江市| 安图县| 明水县| 平罗县| 涿州市| 龙里县| 闽清县| 莎车县| 樟树市| 滦南县| 横峰县| 大邑县| 皋兰县| 宁陕县|