龙、虎、鲸书杂谈
關(guān)于編譯有三本書(shū):
龍書(shū): 《Compilers:Principles, Techniques, &Tools》
虎書(shū):《Modern Compiler Implement in C》 這本書(shū)還有JAVA和ML版本
鯨書(shū):《Advanced Compiler Design and Implementation》
這三本書(shū)在編譯領(lǐng)域非常出名,其中名氣最大的應(yīng)該屬于龍書(shū)了,也是目前仍然有版本在印刷發(fā)行的。虎書(shū)和鯨書(shū)國(guó)內(nèi)貌似沒(méi)有繼續(xù)發(fā)行了,我找英文版找了好久,都沒(méi)有找到合適的,只好買的二手的舊書(shū)。三本書(shū)湊齊也挺不容易的。
這三本書(shū),到目前為止,除了有時(shí)候查東西翻翻,正經(jīng)讀的最多的還算是龍書(shū)。虎書(shū)和鯨書(shū)都只讀了一章。個(gè)人也想理一下這三本書(shū)的思路,好利于自己的讀書(shū)和學(xué)習(xí)。曾經(jīng)看到有人覺(jué)的最適合入門讀的是鯨書(shū),這點(diǎn)我實(shí)在是不敢茍同。除非是個(gè)人編譯基礎(chǔ)非常好,而且重點(diǎn)在于研究編譯里的優(yōu)化,可以直接讀鯨書(shū)。其他的情況,都不建議直接讀鯨書(shū)的。
龍書(shū),對(duì)整個(gè)編譯的過(guò)程,介紹的很詳細(xì),而且很多時(shí)候,對(duì)編譯理論中很多的技術(shù)都介紹的很詳細(xì),給人感覺(jué)像是百科全書(shū)的感覺(jué)。你能用到的,基本在龍書(shū)里都能找到。正是這個(gè)原因,也讓這本書(shū)讀起來(lái)有點(diǎn)費(fèi)勁。這本書(shū)對(duì)編譯理論中的優(yōu)化部分覆蓋的不多,等于是它和鯨書(shū)剛好結(jié)合起來(lái),構(gòu)成編譯的大百科,一個(gè)不側(cè)重優(yōu)化,一個(gè)側(cè)重優(yōu)化,都很詳盡,將所有涉及的知識(shí)都覆蓋了。
虎書(shū)更像是龍書(shū)和鯨書(shū)結(jié)合之后的簡(jiǎn)化版本,是建議作為學(xué)習(xí)編譯的教材一類的書(shū),既可以一學(xué)期學(xué)完,只學(xué)編譯的基本知識(shí),也可以兩學(xué)期學(xué)完,繼續(xù)學(xué)編譯的高級(jí)topics,大部分也是關(guān)于優(yōu)化的內(nèi)容。虎書(shū)還有一個(gè)特別好的有點(diǎn),就是很接近與實(shí)際,談一些理論知識(shí)的時(shí)候,都會(huì)去拿實(shí)際的代碼去說(shuō)明一件事情,這樣更加的利于學(xué)習(xí)時(shí)候的理解,而不是被一大堆的理論完全搞的摸不著頭腦。
所以綜合來(lái)看,如果技術(shù)不是非常的扎實(shí),那還是建議從虎書(shū)開(kāi)始學(xué)習(xí),邊學(xué)邊練,慢慢的把基礎(chǔ)打扎實(shí),然后再繼續(xù)龍書(shū)和鯨書(shū)的學(xué)習(xí)。編譯原理是大學(xué)本科時(shí)候的必修課,可能很多人覺(jué)的自己學(xué)過(guò)了,基礎(chǔ)應(yīng)該可以,但是依然推薦從虎書(shū)開(kāi)始,實(shí)際工作中,雖然大家都學(xué)過(guò)編譯原理了,但是到最后能把整個(gè)流程的大致環(huán)節(jié)說(shuō)清楚的,就算是不錯(cuò)的了。
轉(zhuǎn)載于:https://www.cnblogs.com/ainima/p/6331924.html
總結(jié)
- 上一篇: SQL 表之间的更新
- 下一篇: 关于bjam编译自己模块出错的问题