『壹』 自學計算機編程應該看些什麼書
一:第一階段
C語言-------《C語言設計》 作者:譚浩強
大多數人都推薦譚浩強這本書,譚浩強的C語言程序設計,我覺得更適合當教科書,主要是篇幅沒有那麼大,書本的內容不是很全,由老師帶入門是最好的。
《C Primer Plus》第五版 作者:Stephen Prata
這本書比較厚,內容也比較基礎,擴展的也比較廣,自學容易上手,唯一的缺陷在於它是外國人編寫,而國內的翻譯往往讓人難以滿意,如果你有較好的英語水平,最好閱讀英文版的。
《C語言入門經典》第四版 作者:Ivor Horton
二:第二階段
這一階段看個人主攻的方向了,安卓一般就JAVA,PC游戲、軟體C++,也有推薦C#,這些都是主流語言,其他語言要看個人愛好與發展。
面向對象的語言,一般懂一門,之後要轉其他語言也很容易的,其實思想都差不多,主要的不同在於語法。C#容易上手,一個月入門,一年精通,而C++卻有點難,一年入門,二十年也未必敢說自己精通。如果有時間,可以了解一下匯編語言。
C++ Primer, 4rd Edition
(入門類:
C++ Primer, 4rd Edition
Thinking in C++, 2nd Edition
The C++ Standard Library: A Tutorial and Reference
進階類:
The C++ Programming Language, Special Edition
The Design and Evolution of C++
Inside C++ Object Model
C++ Templates: The Complete Guide
STL 源碼剖析
Generic Programming and the STL
Modern C++ Design: Generic Programming and Design Patterns Applied
應用技巧類:
Effective C++, 2nd Editon
More Effective C++
Exceptional C++
More Exceptional C++
Effective STL
Ruminations on C++)
三:第三階段
API/SDK------------- 《windows程序設計》(Jeff Prosise)
這書主要是開發Windows軟體要深入研讀的,畢竟是WindowsAPI。如果是主攻C++,那麼這本書你可以大概略讀一遍,不用過多的深入追究,QT才是C++主要深入思慮的關鍵。
四:第四階段
MFC----《VC++技術內幕》、《深入淺出MFC》及視頻教程孫鑫 VC++6.0
如果是C++,QT是要重點學習的對象。
五:第五階段
COM/DCOM/ATL/COM+---------《COM技術內幕》
未知階段:
《數據結構》,《演算法導論》這些基本是編程的核心了,編程的很大情況都依賴於演算法的實現,這個兩門基本要深入研究,這是決定編程能力的核心標准。
如果不弄底層的話,《操作系統原理》可以簡單地了解。
『貳』 編程書籍經典的有哪些
演算法/數據結構/底層理論:
《演算法導論》:學習演算法的必讀書,也應作為程序員 」基本素養「 看一看
《計算機程序設計藝術》:一部仍未完成的著作,作者高德納因此獲得美國計算機協會 1974 年圖靈獎 - wikipedia:計算機程序設計藝術
《數據結構與演算法分析》
《具體數學》
《編譯原理》:編譯理論的 」龍書「
《深入理解計算機系統》
編程語言/工具等:
《C 程序設計語言》:C 語言發明者之一 Dennis 的經典 C 語言教程
《C++ Primer》
《Java 編程思想》
《OpenGL 編程指南》:」紅寶書「
《PHP 和 MySQL Web 開發》:不要看目前的中文版
軟體工程/開發
《設計模式》
《人月神話》:被譽為軟體工程領域的聖經 - wikipedia:人月神話
《重構》
《代碼大全》
《程序員修煉之道》:如何 」編程「?
『叄』 介紹些計算機方面的書籍有哪些
1. 《信號與系統》
在《編碼》一書中,向我們展示了使用語言的一些直觀方法並創造新的方法來進行相互之間的交流,此書使我們明白了這種創造性以及我們人類對交流的迫切需求。
『肆』 大學計算機專業用什麼教材
一、需要的專業教材:
1、資料庫方面:王珊等編的《資料庫系統概論(第4版)》 高教版。
2、數據結構方面: 《數據結構》,清華嚴蔚敏版。
3、還有經典教材《操作系統設計與實現(第三版)》陳渝 譯 電子工業出版社等
4、當然還有 《計算機系統結構》用西電的就行了,還有西電的《計算機操作系統(第 三 版) 》 ,《計算機組成原理》 作者唐朔飛,是高教版。
二、數學課程:
高等教育出版社出版的《線性代數》和浙江大學編寫《概率統計》。
《離散數學》,用左孝凌教授等編的就可以,上海科學技術文獻出版社。還可以參考左教授編的自學教材,經濟科學出版社,也可以用北大、清華的教材。
《復編函數》、《計算方法》等也可以學一下。
三、英語課程:
可以選擇《計算機英語學生用書》清華大學出版社,姜同強主編。
(4)計算機編譯原理的書擴展閱讀
計算機科學與另外的一些學科緊密相關。這些學科之間有明顯的交叉領域,但也有明顯的差異。
1、信息科學—信息科學是指以信息為主要研究對象,以信息的運動規律和應用方法為主要研究內容,以計算機等技術為主要研究工具,以擴展人類的信息功能為主要目標的一門新興的綜合性學科。信息科學由資訊理論、控制論、計算機科學、仿生學、系統工程與人工智慧等學科互相滲透、互相結合而形成的。
2、軟體工程–(Software Engineering,簡稱為SE)是一門研究用工程化方法構建和維護有效的、實用的和高質量的軟體的學科。它涉及到程序設計語言,資料庫,軟體開發工具,系統平台,標准,設計模式等方面。在現代社會中,軟體應用於多個方面。
典型的軟體比如有電子郵件,嵌入式系統,人機界面,辦公套件,操作系統,編譯器,資料庫,游戲,app等。同時,各個行業幾乎都有計算機軟體的應用,比如工業,農業,銀行,航空,政府部門等。這些應用促進了經濟和社會的發展,使得人們的工作更加高效,同時提高了生活質量。
3、信息系統–所謂MIS(信息系統--Management Information System)系統 ,是一個由人、計算機及其他外圍設備等組成的能進行信息的收集、傳遞、存貯、加工、維護和使用的系統。
它是一門新興的科學,其主要任務是最大限度的利用現代計算機及網路通訊技術加強企業的信息管理,通過對企業擁有的人力、物力、財力、設備、技術等資源的調查了解,建立正確的數據,加工處理並編製成各種信息資料及時提供給管理人員,以便進行正確的決策,不斷提高企業的管理水平和經濟效益。
目前,企業的計算機網路已成為企業進行技術改造及提高企業管理水平的重要手段。
4、計算機工程–(也稱為電子和計算機工程或計算機系統工程)是一門學科,結合內容都電氣工程和計算機科學。計算機工程師正電氣工程師有更多的培訓領域的軟體設計和硬體,軟體一體化。反過來,他們注重減少對電力電子學和物理學。
電腦工程師都參與了許多方面的計算,從設計的個別處理器,個人電腦,和超級計算機,以電路設計。這一工程的許多子系統監控機動車輛。
5、信息安全 –本專業是計算機、通信、數學、物理、法律、管理等學科的交叉學科,主要研究確保信息安全的科學與技術。培養能夠從事計算機、通信、電子商務、電子政務、電子金融等領域的信息安全高級專門人才。
密碼學-是研究編制密碼和破譯密碼的技術科學。研究密碼變化的客觀規律,應用於編制密碼以保守通信秘密的,稱為編碼學;應用於破譯密碼以獲取通信情報的,稱為破譯學。
『伍』 《編譯原理》pdf下載在線閱讀,求百度網盤雲資源
《編譯原理》(陳意雲)電子書網盤下載免費在線閱讀
鏈接:
書名:編譯原理
作者:陳意雲
豆瓣評分:6.2
出版社:高等教育出版社
出版年份:2003-1
頁數:381
內容簡介:
《編譯原理》介紹編譯器構造的一般原理和基本實現方法,主要內容包括詞法分析、語法分析、語義分析、中間代碼生成、代碼優化和目標代碼生成等。除了介紹命令式編程語言的編譯技術外,《編譯原理》還介紹面向對象語言和函數式編程語言的實現技術。《編譯原理》還強調一些相關的理論知識,如形式語言和自動機理論、語法制導的定義和屬性文法、類型論和類型系統等。
《編譯原理》取材廣泛新穎、圖文並茂,注意理論聯系實際。為滿足教師教學和學生自學及考研需求,《編譯原理》作者編寫了配套教學參考書《編譯原理習題精選與解析》(高等教育出版社2005年8月出版),同時提供本課程的電子教案,可從高等教育出版社高等理工教學資源網免費下載。《編譯原理》可作為高等學校計算機科學及相關專業的教材,也可供計算機軟體工程技術人員參考使用。
『陸』 計算機考研編譯原理看哪本書比較好啊
國外的推薦《Compilers Principles,Techniques,and Tools》
國內的看看《編譯原理及實踐》,這本書給出的編譯原理講解也相當細致,雖然不如前面的龍書那麼深入,但是很多地方都是點到為止,大學看的話已經足夠了。
『柒』 《編譯原理考研輔導教程》pdf下載在線閱讀全文,求百度網盤雲資源
《編譯原理考研輔導教程》網路網盤pdf最新全集下載:
鏈接:https://pan..com/s/1d6s5KhHw8Ru3mccYMac7ZA
『捌』 有沒有比龍書通俗易懂的編譯原理書籍
大學課程為什麼要開設編譯原理呢?這門課程關注的是編譯器方面的產生原理和技術問題,似乎和計算機的基礎領域不沾邊,可是編譯原理卻一直作為大學本科的必修課程,同時也成為了研究生入學考試的必考內容。編譯原理及技術從本質上來講就是一個演算法問題而已,當然由於這個問題十分復雜,其解決演算法也相對復雜。我們學的數據結構與演算法分析也是講演算法的,不過講的基礎演算法,換句話說講的是演算法導論,而編譯原理這門課程講的就是比較專註解決一種的演算法了。在20世紀50年代,編譯器的編寫一直被認為是十分困難的事情,第一Fortran的編譯器據說花了18年的時間才完成。在人們嘗試編寫編譯器的同時,誕生了許多跟編譯相關的理論和技術,而這些理論和技術比一個實際的編譯器本身價值更大。就猶如數學家們在解決著名的哥德巴赫猜想一樣,雖然沒有最終解決問題,但是其間誕生不少名著的相關數論。
推薦參考書
雖然編譯理論發展到今天,已經有了比較成熟的部分,但是作為一個大學生來說,要自己寫出一個像TurbocC,Java那樣的編譯器來說還是太難了。不僅寫編譯器困難,學習編譯原理這門課程也比較困難。
第一本書的原名叫《CompilersPrinciples,Techniques,andTools》,另外一個響亮的名字就是龍書。原因是這本書的封面上有條紅色的龍,也因為獗臼樵詒嘁朐?砘?嘴域確實?忻?所以很多國外的學者都直接取名為龍書。最近機械工業出版社已經出版了此書的中文版,名字就叫《編譯原理》。該書出的比較早,大概是在85或86年編寫完成的,作者之一還是著名的貝爾實驗室的科學家。裡面講解的核心編譯原理至今都沒有變過,所以一直到今天,它的價值都非凡。這本書最大的特點就是一開始就通過一個實際的小例子,把編譯原理的大致內容羅列出來,讓很多編譯原理的初學者很快心裡有了個底,也知道為什麼會有這些理論,怎麼運用這些理論。而這一點是我感覺國內的教材缺乏的東西,所以國內的教材都不是寫給願意自學的讀者,總之讓人看了半天,卻不知道裡面的東西有什麼用。
第二本書的原名叫《ModernCompilerDesign》,中文名字叫做《現代編譯程序設計》。該書由人民郵電出版社所出。此書比較關注的是編譯原理的實踐,書中給出了不少的實際程序代碼,還有很多實際的編譯技術問題等等。此書另外一個特點就是其現代而字。在傳統的編譯原理教材中,你是不可能看到如同Java中的垃圾回收等演算法的。因為Java這樣的解釋執行語言是在近幾年才流行起來的東西。如果你想深入學習編譯原理的理論知識,那麼你肯定得看前面那本龍書,如果你想自己動手做一個先進的編譯器,那麼你得看這本《現代編譯程序設計》。
第三本書就是很多國內的編譯原理學者都推薦的那本《編譯原理及實踐》。或許是這本書引入國內比較早吧,我記得我是在高中就買了這本書,不過也是在前段時間才把整本書看完。此書作為入門教程也的確是個不錯的選擇。書中給出的編譯原理講解也相當細致,雖然不如前面的龍書那麼深入,但是很多地方都是點到為止,作為大學本科教學已經是十分深入了。該書的特點就是注重實踐,不過感覺還不如前面那本《現代編譯程序設計》的實踐味道更重。此書的重點還是在原理上的實踐,而非前面那本那樣的技術實踐。《編譯原理及實踐》在講解編譯原理的各個部分的同時,也在逐步實踐一個現代的編譯器TinyC.等你把整本書看完,差不多自己也可以寫一個TinyC了。作者還對Lex和Yacc這兩個常用的編譯相關的工具進行了很詳細的說明,這一點也是很難在國內的教材中看到的。
推薦了這三本教材,都有英文版和中文版的。很多英文好的同學只喜歡看原版的書,不我的感覺是這三本書的翻譯都很不錯,沒有必要特別去買英文版的。理解理論的實質比理解表面的文字更為重要。
編譯原理的實質
幾乎每本編譯原理的教材都是分成詞法分析,語法分析(LL演算法,遞歸下降演算法,LR演算法),語義分析,運行時環境,中間代碼,代碼生成,代碼優化這些部分。其實現在很多編譯原理的教材都是按照85,86出版的那本龍書來安排教學內容的,所以那本龍書的內容格式幾乎成了現在編譯原理教材的定式,包括國內的教材也是如此。一般來說,大學裡面的本科教學是不可能把上面的所有部分都認真講完的,而是比較偏重於前面幾個部分。像代碼優化那部分東西,就像個無底洞一樣,如果要認真講,就是單獨開一個學期的課也不可能講得清楚。所以,一般對於本科生,對詞法分析和語法分析掌握要求就相對要高一點了。
詞法分析相對來說比較簡單。可能是詞法分析程序本身實現起來很簡單吧,很多沒有學過編譯原理的人也同樣可以寫出各種各樣的詞法分析程序。不過編譯原理在講解詞法分析的時候,重點把正則表達式和自動機原理加了進來,然後以一種十分標準的方式來講解詞法分析程序的產生。這樣的做法道理很明顯,就是要讓詞法分析從程序上升到理論的地步。
語法分析部分就比較麻煩一點了。現在一般有兩種語法分析演算法,LL自頂向下演算法和LR自底向上演算法。LL演算法還好說,到了LR演算法的時候,困難就來了。很多自學編譯原理的都是遇到LR演算法的理解成問題後就放棄了自學。其實這些東西都是只要大家理解就可以了,又不是像詞法分析那樣非得自己寫出來才算真正的會。像LR演算法的語法分析器,一般都是用工具Yacc來生成,實踐中完全沒有比較自己來實現。對於LL演算法中特殊的遞歸下降演算法,因為其實踐十分簡單,那麼就應該要求每個學生都能自己寫。當然,現在也有不少好的LL演算法的語法分析器,不過要是換在非C平台,比如Java,Delphi,你不能運用YACC工具了,那麼你就只有自己來寫語法分析器。
等學到詞法分析和語法分析時候,你可能會出現這樣的疑問:詞法分析和語法分析到底有什麼?就從編譯器的角度來講,編譯器需要把程序員寫的源程序轉換成一種方便處理的數據結構(抽象語法樹或語法樹),那麼這個轉換的過程就是通過詞法分析和語法分析的。其實詞法分析並非一開始就被列入編譯器的必備部分,只是我們為了簡化語法分析的過程,就把詞法分析這種繁瑣的工作單獨提取出來,就成了現在的詞法分析部分。除了編譯器部分,在其它地方,詞法分析和語法分析也是有用的。比如我們在DOS,Unix,Linux下輸入命令的時候,程序如何分析你輸入的命令形式,這也是簡單的應用。總之,這兩部分的工作就是把不規則的文本信息轉換成一種比較好分析好處理的數據結構。那麼為什麼編譯原理的教程都最終把要分析的源分析轉換成樹這種數據結構呢?數據結構中有Stack,Line,List這么多數據結構,各自都有各自的特點。但是Tree這種結構有很強的遞歸性,也就是說我們可以把Tree的任何結點Node提取出來後,它依舊是一顆完整的Tree。這一點符合我們現在編譯原理分析的形式語言,比如我們在函數裡面使用函樹,循環中使用循環,條件中使用條件等等,那麼就可以很直觀地表示在Tree這種數據結構上。同樣,我們在執行形式語言的程序的時候也是如此的遞歸性。在編譯原理後面的代碼生成的部分,就會介紹一種堆棧式的中間代碼,我們可以根據分析出來的抽象語法樹,很容易,很機械地運用遞歸遍歷抽象語法樹就可以生成這種指令代碼。而這種代碼其實也被廣泛運用在其它的解釋型語言中。像現在流行的Java,.NET,其底層的位元組碼bytecode,可以說就是這中基於堆棧的指令代碼的。
關於語義分析,語法制導翻譯,類型檢查等等部分,其實都是一種完善前面得到的抽象語法樹的過程。比如說,我們寫C語言程序的時候,都知道,如果把一個浮點數直接賦值給一個整數,就會出現類型不匹配,那麼C語言的編譯器是怎麼知道的呢?就是通過這一步的類型檢查。像C++語言這中支持多態函數的語言,這部分要處理的問題就更多更復雜了。大部編譯原理的教材在這部分都是講解一些比較好的處理策略而已。因為新的問題總是在發生,舊的辦法不見得足夠解決。
本來說,作為一個編譯器,起作用的部分就是用戶輸入的源程序到最終的代碼生成。但是在講解最終代碼生成的時候,又不得不講解機器運行環境等內容。因為如果你不知道機器是怎麼執行最終代碼的,那麼你當然無法知道如何生成合適的最終代碼。這部分內容我自我感覺其意義甚至超過了編譯原理本身。因為它會把一個計算機的程序的運行過程都通通排在你面前,你將來可能不會從事編譯器的開發工作,但是只要是和計算機軟體開發相關的領域,都會涉及到程序的執行過程。運行時環境的講解會讓你更清楚一個計算機程序是怎麼存儲,怎麼裝載,怎麼執行的。關於部分的內容,我強烈建議大家看看龍書上的講解,作者從最基本的存儲組織,存儲分配策略,非局部名字的訪問,參數傳遞,符號表到動態存儲分配(malloc,new)都作了十分詳細的說明。這些東西都是我們編寫平常程序的時候經常要做的事情,但是我們卻少去探求其內部是如何完成。
關於中間代碼生成,代碼生成,代碼優化部分的內容就實在不好說了。國內很多教材到了這部分都會很簡單地走馬觀花講過去,學生聽了也只是作為了解,不知道如何運用。不過這部分內容的東西如果要認真講,單獨開一學期的課程都講不完。在《編譯原理及實踐》的書上,對於這部分的講解就恰到好處。作者主要講解的還是一種以堆棧為基礎的指令代碼,十分通俗易懂,讓人看了後,很容易模仿,自己下來後就可以寫自己的代碼生成。當然,對於其它代碼生成技術,代碼優化技術的講解就十分簡單了。如果要仔細研究代碼生成技術,其實另外還有本叫做《》,那本書現在由機械工業出版社引進的,十分厚重,而且是英文原版。不過這本書我沒有把它列為推薦書給大家,畢竟能把龍書的內容搞清楚,在中國已經就算很不錯的高手了,到那個時候再看這本《》也不遲。代碼優化部分在大學本科教學中還是一個不太重要的部分,就是算是實踐過程中,相信大家也不太運用得到。畢竟,自己做的編譯器能正確生成執行代碼已經很不錯了,還談什麼優化呢?
編譯原理的課程畢竟還只是講解原理的課程,不是專門的編譯技術課程。這兩門課程是有很大的區別的。編譯技術更關注實際的編寫編譯器過程中運用到的技術,而原理的課
『玖』 電腦編程有什麼書能自己自學入門的!
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
『拾』 計算機經典書籍,值得珍藏和購買的有哪些
1、《計算機體系結構》2、《CPU結構與原理》3、《演算法導論》4、《計算機與人腦》5、《編程藝術》6、《用C++思考》(大部分譯為C++編程思想,我認為叫用C++思考更好)7、《編譯原理》以上書籍都是計算機類經典書籍,計算機專業要注重基礎