① 分別推薦下以下幾個方面的經典書籍: 1、操作系統 2、數據結構 3、編譯原理 4、演算法 5、資料庫 6、軟體工
操作系統:《操作系統概念》、《現代操作系統》
數據結構:嚴版《數據結構(C語言版)》、《數據結構與演算法分析》(Weiss著,有C/C++/Java描述的不同版本)
編譯原理:傳說中的「龍書」、「虎書」和「鯨書」,全名記不清了可以自己搜一下。
演算法:《演算法導論》、《演算法設計與分析基礎》(Levitin著)
資料庫:《資料庫系統概念》
軟體工程:隨意,反正得多做項目體會……以後可以看看《人月神話》
② 有什麼關於自學電腦編程的書
1、《計算機組成原理》(熟悉) 2、《數據結構》(掌握) 3、《操作系統》(了解->熟悉) 4、《The C language》(掌握) 5、《編譯原理》(了解原理) 6、《匯編語言》(了解) 7、《計算機網路》(了解) 8、《軟體工程》(了解) 9、《關系資料庫》(熟悉) 10、《The C++Languege 》(掌握) 11、《面向對象設計》(掌握;結合C++學習)
(五)一些經驗和體會 1、真正的程序員用C++;(一位專家說的) 2、動手去編程序; 3、動腦去思考; 4、要有良好的編程風格; 5、讀書,讀好書,盡量讀原版書!(我反復強調這一點,讀書要有選擇,堅持讀
好書,名家出的經典書,不要浪費實踐在一些粗製濫造的書上面;堅持博覽群書)
6、有自己的學習計劃; 7、總結自己的經驗教訓;(准備一個筆記本,記錄錯誤和心得) 8、不要怕學新東西; 9、要有軟體工程的思想; 10、善於發現問題,然後去尋找答案; 11、向高手請教;(要虛心直到你成為高手) 12、和同行交流;(不善於交流肯定不行) 13、懂得軟體的實質,不要被千變萬化的表象所迷惑; 14、真正要學慣用的是編程語言和方法,不是什麼庫,什麼類,什麼工具;(學用
那些什麼庫都比較簡單,但光會這些庫,我覺得還遠遠不夠) 15、學習wiodows編程主要是學習windows OS和win32 API; 16、有空了解一下嵌入式開發; 17、有空了解一下PDA軟體開發; 18、了解一下.NET框架和C#語言,也許它是你新的衣食父母; 19、要有耐心,不要作浮躁的人; 20、對程序加註釋,並保留你的老程序; 21、學到的東西越多,了解的越多,你就越接近專家; 22、有空去逛逛CSDN,那裡有你很多知己; 23、要有信心成為一個優秀的程序員;(六)一些好書的推薦 1、《The C Programming language》 (Keinighan & Dennis Ritchie 1988) * 2、《The C++ Programming Languague》(Bjarne Stroustrup 1997) * 3、《Inside The C++ Object Model》 (lippmans) 4、《Effective C++》 (同上) * 5、《More Effective C++》 (同上) * 6、《Exceptional c++》 7、《C++面向對象高效編程》 8、《設計模式》 9、《Thinking In C++》 * 10、《The Standard C++ Bible》(一般推薦) 11、《The Art of Computer Programming 》 12、《Programming Windows》 (Charles Petzold) 13、《VC++5.0技術內幕》 14、《MFC 深入淺出》 15、《軟體需求》 16、《Advanced Windows》
17、《C++ primer》 18、《win32程序員參考手冊》 19、《用TCP/IP進行網際互連》 20、《COM 本質論》(七)學習計劃 D―-這個學習計劃是我個人定的,也共享給大家參考一下,共同進步吧。 1、《計算機組成原理》 2、《操作系統》 3、《數據結構》 4、《匯編語言》 5、《 C 》 6、《 C++ 》 7、《VC 技術內幕》 8、《Programming Windows》 9、《深入淺出MFC》 10、《Advanced Windows》 11、《Inside The C++ Object Model》 12、《Thinking in C++》 13、《Effective C++》 14、資料庫 15、網路 16、嵌入式OS和編程 17、硬體單片機 18、.NET和C# 19、軟體工程 20、UNIX和Linux
③ 龍書虎書鯨書先看哪一本
龍書。龍書、虎書、鯨則伏叢書是編譯原理的三大聖書,應該先看龍書,因為龍書側重基礎,很詳細,最新版里也加入了很多優化的內容,很好的一本書, 鯨書側重優化部分,是龍廳衡書的升華,虎書側重實踐,大部分孫櫻基礎和優化都講到了。
④ 哪位大佬有 編譯程序設計藝術:理論與實踐,求書籍百度網盤啊!急急急!
我這里有您想要的資源,通過網路網盤免費分享給您:
https://pan..com/s/19by7CghKXYuq24P8Hy2igg
《編譯程序設計藝術理論與實踐》詳細介紹了編譯程序設計中的詞法分析(掃描程序)、語法分析(分析程序)、語義分析(約束程序)、中間代碼優化以及代碼生成等內容。作為頗受好評的編譯原理優秀入門教材,《編譯程序設計藝術理論與實踐》的最大特色是在全書貫穿了一種基於文法的指導思路:在語法分析階段,該書遵循了一般教材採用的上下文無關文法;在語義分析階段,採用以上下文無關文法為基礎的屬性文法;而在代碼優化和代碼生成階段,則採用了變換屬性文法。書中最後還給出變換屬性文法的一種自編譯實現。此外,《編譯程序設計藝術理論與實踐》還探討了面向不同計算機體系結構的代碼生成技術以及非過程式語言的編譯問題。
⑤ 龍書龍書,《編譯原理》的別名
深入探討編譯原理的權威著作——《編譯原理》(也被稱為「龍書」),是一部涵蓋了詞法分析、語法分析、語法制導分析、類型檢查、運行環境、中間代碼生成、代碼生成、代碼優化等核心主題的書籍。全書結構嚴謹,從基礎概念出發,引導讀者通過構建簡單的一遍編譯器來實踐理論知識。作者Alfred V.Aho、Ravi Sethi和Jeffrey D.Ullman,均為計算機科學界的知名學者,他們的貢獻遍布計算機科學理論和資料庫等領域,使得這本書在編譯領域享有極高的聲譽,被譽為「龍書」。
「龍書」這一別名源於1977年的《Principles of Compiler Design》,封面上的騎士與綠色恐龍首次讓人聯想到這個昵稱。九年後,1986年的升級版《Compilers: Principles, Techniques and Tools》加入了Ravi Sethi,封面設計保持了原有的騎士與恐龍,只是恐龍變成了紅色,故稱為「紅龍書」。又過了九個年頭,直到2006年,編譯領域的經典之作——「龍書」再次更新,作者陣容增加至Monica S. Lam,書名和設計未變,但封面的恐龍變為紫色,因此被稱為「紫龍書」。
無論是作為高校計算機專業本科生和研究生編譯原理課程的主要教材,還是計算機技術人員的專業參考書,《編譯原理》都是不可或缺的寶典,對全球的高等教育和科研機構,如貝爾實驗室、哥倫比亞大學、普林斯頓大學和斯坦福大學等,具有深遠的影響。
⑥ 編譯器龍書虎書鯨書基本抽象概念
在編譯原理的世界裡,三本堪稱經典的著作猶如璀璨明珠:龍書(Aho, Sethi, Ullman合著的《編譯原理技術和工具》)、虎書(Appel和Palsberg合作的《現代編譯器實現:C語言版》),以及被稱為「鯨書」的神秘巨著(未提及具體書名)。龍書是編譯器領域的基石,涵蓋了詞法分析、語法分析等核心內容,雖早期版本存在一些過時技術,但後期修訂版不斷擴展新知識。虎書則緊跟時代步伐,融合了數據流分析等現代元素,特別適合教學,不僅有C語言版本,還有Java和ML版本,詳細內容可通過參考鏈接獲取。
深入研究現代商業編譯器的關鍵問題,學生們通過學習基礎概念,為後續深入探索奠定基礎。推薦必讀的《現代編譯原理:C語言描述》由Steven S. Muchnick撰寫,是虎書的升級版。而「鯨書」則為進階學習者量身打造,探討高級編譯器設計與實現,涵蓋了抽象層次的深入轉換,如從高級語言到機器代碼的優化過程,分為基礎抽象、數據模型、編程語言語義和演算法效率等幾個核心領域。
基礎抽象如同Java介面,它不僅包含操作的名稱,還承載了預期的功能含義。這些抽象可以分為兩類:一類是常見的操作,如字典和堆棧,提供多種實現;另一類是廣泛應用於組件化的概念,如樹和圖。在計算思維中,抽象是靈魂,如圖抽象中的「查找相鄰節點」,它在圖靈完備的語言中嵌入,類似於面向對象的類方法,但底層實現則更為具體,涉及有限自動機、解析器等與機器模型緊密相連的技術。聲明性抽象,如正則表達式和關系代數,強調的是表達和描述而非實現,對優化性能有高要求;而計算抽象,如通用編程語言和理論模型,如RAM和並行計算模型,盡管可能非圖靈完備,但其重要性不言而喻。
舉例來說,當需要在聲明階段將標識符插入符號表S時,編譯器會根據標識符類型進行檢索。字典語言雖然不具備圖靈機的復雜性,但它關注的是進程的表示,而非演算法設計。字典操作的時間復雜性與集合大小相關,鏈表實現可能導致O(n)時間,而搜索樹如AVL或紅黑樹則可達到O(log n)。
哈希抽象的核心是全集、哈希函數和哈希桶,操作基於計算哈希值。盡管哈希操作存在最壞情況性能問題,但通常假設平均性能。哈希桶存儲結構可根據集合規模採用鏈表或優化存儲,如調整磁碟塊大小以適應主存容量。
從詞法分析到後端優化,現代編譯器分為前後端任務。前端涉及詞法分析、句法分析、語義分析和中間代碼生成,而共享符號表則用於收集源代碼信息。如Lex,通過正則表達式實現標記簡化,早期的磁帶檢索技術效率較低,但Aho-Corasick演算法通過一次遍歷查找多個關鍵字,提高了效率。句法分析器生成器基於正則表達式,產生確定性有限自動機,確保語法的有效性。
2.1.1 Lex的升級:Aho-Corasick演算法通過集成多個正則表達式集合,顯著提升了關鍵字檢索的效率。
2.1.2 Lex設計關注交互復雜性,區分標識符與控制流關鍵字,避免混淆。
2.1.3 懶惰評估的DFA(確定性有限自動機)技術,優化了正則表達式到DFA的轉換,為grep等工具的性能提升做出了貢獻。
繼續深入,語法分析構建了語言的結構,如表達式樹。上下文無關文法(CFG)描述編程語言的句法規則,LR(k)分析法通過一次左到右掃描,處理復雜語法結構。
編譯器研究涉及眾多抽象層次,從關系模型在編程語言中的應用,到SQL的抽象和優化,再到分布式計算和量子計算的前沿探索。隨著技術的演進,我們期待在編譯器領域的知識體系中,不斷發掘新的抽象理論,推動計算機科學的邊界不斷拓寬。
參考資料:[1] [2] [3]