當前位置:首頁 » 編程軟體 » 編譯器書籍推薦

編譯器書籍推薦

發布時間: 2024-05-05 02:57:02

A. 學習編譯原理哪本書好

我們學校用的是《編譯原理》與《編譯原理與實踐》這兩本書,這兩本書都是國外的教材。我覺得《編譯原理與實踐》這本書不錯,自學應該能看懂,而且代碼比較多,書最後還有整個小型編譯器的源代碼。
編譯不好學,你就慢慢學吧。

下面的資料請作參考:

當代編譯技術三大聖經級別的教材

1.龍書(Dragon book)
書名是Compilers: Principles,Techniques,and Tools
作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman

內容簡介
《編譯原理》作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman是世界著名的計算機 科學家,他們在計算機科學理論、資料庫等很多領域都做出了傑出貢獻。《編譯原理》 是編譯領域無可替代的經典著作,被廣大計算機專業人士譽為「龍書」。《編譯原理》一 直被世界各地的著名高等院校和科研機構(如貝爾實驗室、哥倫比亞大學、普 林斯頓大學和斯坦福大學等)廣泛用作本科生和研究生編譯原理與技術課程的 教材,《編譯原理》對我國計算機教育界也具有重大影響。 書中深入討論了編譯器設計的重要主題,包括詞法分析、語法分析、語法制 導分析、類型檢查、運行環境、中間代碼生成、代碼生成、代碼優化等,並在 最後兩章中討論了實現編譯器的一些編程問題和幾個編譯器實例,而且每章都 提供了大量的練習和參考文獻。

與上一版相比,《編譯原理》第二版進行了全面的修訂,涵蓋了編譯器開發方面的最新進展。每章中都提供了大量的系統及參考文獻。《編譯原理》是編譯原理課程方面的經典教材,內容豐富,適合作為高等院校計算機及相關專業本科生及研究生的編譯原理課程的教材,也是廣大技術人員的極佳參考讀物。

作者簡介
Alfred V.Aho,美國歌倫比亞大學教授,美國國家工程院院士,ACM和IEEE會士,曾獲得IEEE的馮·諾伊曼獎。著有多部演算法、數據結構、編譯器、資料庫系統及計算機科學基礎方面的著作。
Monica S.Lam,斯坦福大學計算機科學系教授,曾任Tensilica的首席科學家,也是Moka5的首任CEO。曾經主持SUIF項目,該項目產生了最流行的研究用編譯器之一。
Ravi Sethi,Avaya實驗室總裁,曾任貝爾實驗室高級副總裁TLucent Technologies通信軟體的CTO。他曾在賓夕法尼亞州立大學、亞利桑那州立大學和普林斯頓大學任教,是ACM會士。
Jeffrey D.Ullman斯坦福大學計算機科學系教授和Gradiance CEO,他的研究興趣包括資料庫理論、資料庫集成、數據挖掘和利用信息基礎設施教學等。他是美國國家工程院院士、IEEE會士,獲得過ACM的KarIstrom傑出教育家獎和Knuth獎。
第一版中文版
第二版中文版

2.鯨書(Whale book)
書名是:Advanced Compiler Design and Implementation
作者是:Steven S.Muchnick

內容簡介
本書迎接現代語言和體系結構的挑戰,幫助讀者作好准備,去應對將來要遇到的編譯器設計的問題。
本書涵蓋現代微處理器編譯器的設計和實現方面的所有高級主題。本書從編譯設計基礎領域中的高級問題開始,廣泛而深入地闡述各種重要的代碼優化技術,分析各種優化之間的相對重要關系,以及實現這些優化的最有效方法。
本書特點
●為理解高級編譯器設計的主要問題奠定了基礎
●深入闡述優化問題
●用Sun的SPARC、IBM的POWER和PowerPC、DEC的Alpha以及Intel的Pentium和相關商業編譯 器作為案例,說明編譯器結構、中間代碼設計和各種優化方法
●給出大量定義清晰的關於代碼生成、優化和其他問題的演算法
●介紹由作者設計的以清晰、簡潔的方式描述演算法的語言ICAN (非形式編譯演算法表示)。

本書是經典的編譯器著作,與「龍書」齊名,稱為鯨書。書中針對現代語言和體系結構全面介紹了編譯器設計與實現的高級論題,從編譯器的基礎領域中的高級問題開始,然後深入討論了各種重要的代碼優化。本書專為編譯器專業人士和計算機專業本科生,研究生編寫,在設計和實現高度優化的編譯器以及確定優化的重要性和實現優化的最有效的方法等方面,為讀者提供了非常有價值的指導。

作者簡介
Steven S.Muchnick,曾是計算機科學教授,後作為惠普的PA-RISC和SUN的SPARC兩種計算機體系結構的核心開發成員,將自己的知識和經驗應用於編譯器設計,並擔任這些系統的高級編譯器設計與實現小組的領導人。他在研究和開發方面的雙重經驗,對於指導讀者作出編譯器設計決策極具價值。

3.虎書(Tiger book)
書名是:Modern Compiler Implementation in C /Java /ML,Second Edition
作者是:Andrew W.Appel,with Jens Palsberg

內容簡介
《現代編譯原理——C語言描述(英文版)/圖靈原版計算機科學系列》全面講述了現代編譯器的各個組成部分,包括:詞法分析、語法分析、抽象語法、語義檢查、中間代碼表示、指令選擇、數據流分析、寄存器分配以及運行時系統等。與大多數編譯原理的教材不同,《現代編譯原理——C語言描述(英文版)/圖靈原版計算機科學系列》採用了函數語言和面向對象語言來描述代碼生成和寄存器分配,對於編譯器中各個模塊之間的介面都給出了實際的 C 語言頭文件。 全書分成兩部分,第一部分是編譯的基礎知識,適用於第一門編譯原理課程(一個學期);第二部分是高級主題,包括面向對象語言和函數語言、垃圾收集、循環優化、 SSA(靜態單賦值)形式、循環調度、存儲結構優化等。
本書是一本著名的編譯原理課程的教材。國際上眾多名校均採用本書作為編譯原理課程的教材,包括美國麻省理工學院、加州大學伯克利分校、普林斯頓大學和英國劍橋大學等。本書在國外享有「虎書」的稱號,與有「龍書」之稱的《編譯原理》(Alfred Aho 等編著)齊名。與編譯原理方面的其他名著相比,本書出版時間晚,內容新。 書中專門為學生提供了一個用 C 語言編寫的實習項目,包括前端和後端設計,學生可以在一學期內創建一個功能完整的編譯器。

作者簡介
Andrew W.Appel,美國普林斯頓大學計算機科學系教授,第26屆ACM SIGPLAN-SIGACT程序設計原理年會大會執行主席,1998-1999年在貝爾實驗室做研究工作。主要研究方向是計算機安全、編譯器設計、程序設計語言等。

B. 怎樣去寫一個編譯器(用C語言寫C語言編譯器),需要哪些知識做鋪墊,可以給一下相關網站和書籍的推薦嗎

寫編譯器重點就是設計並實現一些數據結構和演算法,語言特點太多的話,代碼寫起來不容易,建議你找一個小語言嘗試下,不要一開始就去嘗試成熟語言。否則你會在寫完語法分析程序以後,遭遇到很大的困難。多數人都是在寫語義分析程序的時候,突然發現自己設計的數據結構很爛,後邊越寫越要命。
如果你想入門編譯器的話,那麼可以看《編譯原理與實踐》,整本書先將編譯器理論,然後後邊教你一步步實現c-miuns(c的子集)的編譯器,包括lex,yacc,都在幾千行代碼左右。這本書講的比較簡單易懂一點
也可以學學斯坦福大學的編譯器設計公開課(aiken設計了一個叫cool的語言,專門用來教人寫編譯器),課程地址上面有人給了:Compilers。這門課以前有個實驗環境(據說已經給了,我以前寫的時候還是用的網上一個不完整的實驗環境),把和編譯器知識無關的內容都給你寫好了,你只需要在固定的地方填上你的內容就可以寫出你的編譯器(不要覺得很簡單哦,人家的代碼寫的很精巧的,讀完就發現寫個好編譯器還是很費腦子的),另外,這個實驗環境有個特點,就是在每一步都提供標准程序做對比,你可以在寫完一部分以後就同標准程序對比,及時發現錯誤。這種方式為寫編譯器又提供了很多幫助
先找個小的,慢慢研究,弄懂了整體的結構再說

C. C++自學教材推薦

1.《C++Primer》
有「C++的網路全書」,C++程序員人手必備。對語法、語義的描述非常細致和嚴謹,適合有一定經驗的C、C++程序員作為工具書和理論指導書使用,但由於其有一定深度,而沒有進階順序的章節安排,所以不適合初學者做為教材使用,價格略高。

難度:★★☆

質量:★★★★★

廣度:★★★★★

深度:★★★★

性價:★★★☆

2.《C++Primer Plus》
初學C++不錯的書,覆蓋面較全,章節安排比較合理,由淺入深,也很容易,故因此失去了一些深度。價格比較便宜,但翻譯質量略有不足。

難度:☆

質量:★★★☆

廣度:★★★★

深度:★★★

性價:★★★☆

3.《Essential C++》
lippman的一部面向初學者的作品。在他寫了那麼後一本primer之後,為何還要寫這么薄這么淺的書呢?其實primer對於初學者來說太笨重了,而這本書卻是從不同的方面——C++的本質和組織結構對語言進行闡釋,可以幫助初學者對這門語言有一個大致的了解,但知識范圍不很全面,不適合系統學習,讀者需要一定的編程知識。

難度:★☆

質量:★★★★

廣度:★★★☆

深度:★★★

性價:★★☆

4.《Effective C++》、《More Effective C++》
C++真牛人大手筆,之以條款的形式回答了程序員在使用C++時經常提出的「因該注意些什麼?」,「因該避免什麼?」,「因該怎樣去解決?」,「為什麼?」等問題。C++程序員想要讓自己的水平上更高的檔次,此二書必看。價格稍貴,有一定難度,不適合初學者。

難度:★★★☆

質量:★★★★★

廣度:★★★

深度:★★★★★

性價:★★
5.《C++編程思想》
除了講述語言之外,有一定的工程性,從設計者的角度來描述C++怎樣應用在實際的項目中。語言描述的全面性欠佳,但還是有一定精度的,尤其是在一些小技巧方面。本書還引入了大量的戰例,通過一個個的真實項目來引導你使用C++的思想去思考問題。翻譯很差,有一定難度。

難度:★★☆

質量:★★★

廣度:★★★☆

深度:★★★★

性價:★★★

6.《C++大學教程》
正如其名,真正的大學教程,非常適合初學者學習,內容由淺入深,對C++各項特性的描述都很到位,章節的安排很有條理性,但深度略顯不足,翻譯質量不能稱之為很好,有一定的疏漏,但對於厚度來講,價格還算比較便宜。

難度:★

質量:★★★☆

廣度:★★★★★

深度:★★★★

性價:★★★★☆

7.《C++語言的設計和演化》
對於熱愛C++的朋友來說,確實好書一本,可以當做小說來讀,可以放在廁所或床頭上以供消遣。本書對語言本身描述很少,並有一定難度。讀者需要對C++有一定了解,不適合初學者閱讀。
難度:★★★

質量:★★★

廣度:★★☆

深度:★★★★

性價:★★★

8.《C++程序設計語言》
C++之父所作,被稱之為「C++聖經」。不僅對語言,而且對語言周邊的一些如發展史、語義哲學都有比較詳細的描述。對語言的描述較為全面,同時包含一部分和程序庫相關聯的知識,並有一定深度,適合有一定語言基礎的初學者,翻譯質量不錯,價格適中。

難度:★☆

質量:★★★★☆

廣度:★★★★☆

深度:★★★★

性價:★★★☆

9.《深度探索C++對象模型》
第一代C++編譯器開發主管所寫。如果你想成為真正的C++高手,看這本書,他為你講述了編譯器在處理各種語法時在「後台」所做的事。對C++有較深入了解的讀者會在讀後有恍然大悟之感。候傑翻譯,質量相當不錯,但內容太深,只適合對C++有較深了解的讀者,價格偏貴。

難度:★★★★☆

質量:★★★★★

廣度:★★★

深度:★★★★★

性價:★★

10.《C++程序設計教程》(錢能-清華版)
國人所著,國人水平實在有限,深度和廣度欠佳,放在這十大里實在是因為再挑不出好書了。可圈可點之處有講解較為清析、簡單,符合中國學生思路,價格便宜。

難度:☆

質量:★★★

廣度:★★★☆

深度:★★★

性價:★★★★★
所有的書都可以自學,就看你有沒有耐力了

D. 學習C語言 必看的書籍

給C++初學者的50個忠告
1.把C++當成一門新的語言學習(和C沒啥關系!真的。);
2.看《Thinking In C++》,不要看《C++變成死相》;
3.看《The C++ Programming Language》和《Inside The C++ Object Model》,不要因為他們很難而我們自己是初學者所以就不看;
4.不要被VC、BCB、BC、MC、TC等詞彙所迷惑——他們都是集成開發環境,而我們要學的是一門語言;
5.不要放過任何一個看上去很簡單的小編程問題——他們往往並不那麼簡單,或者可以引伸出很多知識點;
6.會用Visual C++,並不說明你會C++;
7.學class並不難,template、STL、generic programming也不過如此——難的是長期堅持實踐和不遺餘力的博覽群書;
8.如果不是天才的話,想學編程就不要想玩游戲——你以為你做到了,其實你的C++水平並沒有和你通關的能力一起變高——其實可以時刻記住:學C++是為了編游戲的;
9.看Visual C++的書,是學不了C++語言的;
10.浮躁的人容易說:XX語言不行了,應該學YY;——是你自己不行了吧!?
11.浮躁的人容易問:我到底該學什麼;——別問,學就對了;
12.浮躁的人容易問:XX有錢途嗎;——建議你去搶銀行;
13.浮躁的人容易說:我要中文版!我英文不行!——不行?學呀!
14.浮躁的人容易問:XX和YY哪個好;——告訴你吧,都好——只要你學就行;
15.浮躁的人分兩種:a)只觀望而不學的人;b)只學而不堅持的人;
16.把時髦的技術掛在嘴邊,還不如把過時的技術記在心裡;
17.C++不僅僅是支持面向對象的程序設計語言;
18.學習編程最好的方法之一就是閱讀源代碼;
19.在任何時刻都不要認為自己手中的書已經足夠了;
20.請閱讀《The Standard C++ Bible》(中文版:標准C++寶典),掌握C++標准;
21.看得懂的書,請仔細看;看不懂的書,請硬著頭皮看;
22.別指望看第一遍書就能記住和掌握什麼——請看第二遍、第三遍;
23.請看《Effective C++》和《More Effective C++》以及《Exceptional C++》;
24.不要停留在集成開發環境的搖籃上,要學會控制集成開發環境,還要學會用命令行方式處理程序;
25.和別人一起討論有意義的C++知識點,而不是爭吵XX行不行或者YY與ZZ哪個好;
26.請看《程序設計實踐》,並嚴格的按照其要求去做;
27.不要因為C和C++中有一些語法和關鍵字看上去相同,就認為它們的意義和作用完全一樣;
28.C++絕不是所謂的C的「擴充」——如果C++一開始就起名叫Z語言,你一定不會把C和Z語言聯系得那麼緊密;
29.請不要認為學過XX語言再改學C++會有什麼問題——你只不過又在學一門全新的語言而已;
30.讀完了《Inside The C++ Object Model》以後再來認定自己是不是已經學會了C++;
31.學習編程的秘訣是:編程,編程,再編程;
32.請留意下列書籍:《C++面向對象高效編程(C++ Effective Object-Oriented Software Construction)》《面向對象軟體構造(Object-Oriented Software Construction)》《設計模式(Design Patterns)》《The Art of Computer Programming》;
33.記住:面向對象技術不只是C++專有的;
34.請把書上的程序例子親手輸入到電腦上實踐,即使配套光碟中有源代碼;
35.把在書中看到的有意義的例子擴充;
36.請重視C++中的異常處理技術,並將其切實的運用到自己的程序中;
37.經常回顧自己以前寫過的程序,並嘗試重寫,把自己學到的新知識運用進去;
38.不要漏掉書中任何一個練習題——請全部做完並記錄下解題思路;
39.C++語言和C++的集成開發環境要同時學習和掌握;
40.既然決定了學C++,就請堅持學下去,因為學習程序設計語言的目的是掌握程序設計技術,而程序設計技術是跨語言的;
41.就讓C++語言的各種平台和開發環境去激烈的競爭吧,我們要以學習C++語言本身為主;
42.當你寫C++程序寫到一半卻發現自己用的方法很拙劣時,請不要馬上停手;請盡快將餘下的部分粗略的完成以保證這個設計的完整性,然後分析自己的錯誤並重新設計和編寫(參見43);
43.別心急,設計C++的class確實不容易;自己程序中的class和自己的class設計水平是在不斷的編程實踐中完善和發展的;
44.決不要因為程序「很小」就不遵循某些你不熟練的規則——好習慣是培養出來的,而不是一次記住的;
45.每學到一個C++難點的時候,嘗試著對別人講解這個知識點並讓他理解——你能講清楚才說明你真的理解了;
46.記錄下在和別人交流時發現的自己忽視或不理解的知識點;
47.請不斷的對自己寫的程序提出更高的要求,哪怕你的程序版本號會變成Version 100.XX;
48.保存好你寫過的所有的程序——那是你最好的積累之一;
49.請不要做浮躁的人;
50.請熱愛C++!

建議你買本書,書比網上的電子版教程好的多,如計算機屆超級權威教授 譚浩強 老先生寫的《C語言程序設計(第三版)》,全國發行了700萬冊,可以說是學C語言的人必看的書,我們大學就用這本書,很適合自學,通俗易懂

建議你學習其它計算機知識時也看他的書,他出的書很多,涵蓋面廣,每一本都很經典

這里有他的教程word版下載

另外,機械工業出版社的 計算機叢書系列也相當經典,全是翻譯國外經典教材,國外計算機發展早,水平比國內高很多,看這些教材事半功倍,推薦(美)Al Kelley Ira Pohl的《C語言教程第4版》

學習程序語言要持之以恆,不浮躁,祝你成功!

E. gcc安裝哪本書比較好

《gccmanual》。
GCC(GNUCompilerCollection,GNU編譯器套件塵知敬)是由GNU開發的編程語派慎言譯器。GNU編譯器套件包括C、C++、Objective-C、Fortran、Java、Ada和Go語言猛叢前端,也包括了這些語言的庫(如libstdc++,libgcj等。)GCC的初衷是為GNU操作系統專門編寫的一款編譯器。

熱點內容
腳本故事梗 發布:2024-05-18 18:29:02 瀏覽:822
安卓和csharp哪個發展好 發布:2024-05-18 18:09:30 瀏覽:527
換編程題庫 發布:2024-05-18 18:00:58 瀏覽:562
如何使用伺服器ip直連網站 發布:2024-05-18 18:00:49 瀏覽:432
三星n7100哪個安卓版本好用 發布:2024-05-18 17:55:41 瀏覽:490
萬國覺醒採集腳本源碼 發布:2024-05-18 17:55:39 瀏覽:947
sqlserver加欄位 發布:2024-05-18 17:54:53 瀏覽:928
安卓手機如何清除應用記錄 發布:2024-05-18 17:31:37 瀏覽:640
查看存儲過程許可權 發布:2024-05-18 17:18:33 瀏覽:192
php類self 發布:2024-05-18 17:15:03 瀏覽:895