- 自制編程語言
- (日)前橋和彌
- 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ì)語法處理器有興趣的朋友都是本書面向的讀者。
- MySQL 8 DBA基礎(chǔ)教程
- Mastering Ubuntu Server
- Python自然語言處理(微課版)
- PLC編程及應(yīng)用實(shí)戰(zhàn)
- 從學(xué)徒到高手:汽車電路識(shí)圖、故障檢測(cè)與維修技能全圖解
- Python數(shù)據(jù)分析從0到1
- Java EE 8 Application Development
- Node.js:來一打 C++ 擴(kuò)展
- AutoCAD 2009實(shí)訓(xùn)指導(dǎo)
- Learning JavaScript Data Structures and Algorithms(Second Edition)
- Microsoft HoloLens By Example
- MATLAB 2020 GUI程序設(shè)計(jì)從入門到精通
- Keil Cx51 V7.0單片機(jī)高級(jí)語言編程與μVision2應(yīng)用實(shí)踐
- Java 7 Concurrency Cookbook
- Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程