當前位置:首頁 » 編程軟體 » 現代編譯原理java

現代編譯原理java

發布時間: 2022-08-10 19:54:35

⑴ 為什麼要學習編譯原理(轉)

大學課程為什麼要開設編譯原理呢?這門課程關注的是編譯器方面的產生原理和技術問題,似乎和計算機的基礎領域不沾邊,可是編譯原理卻一直作為大學本科的必修課程,同時也成為了研究生入學考試的必考內容。編譯原理及技術從本質上來講就是一個演算法問題而已,當然由於這個問題十分復雜,其解決演算法也相對復雜。我們學的數據結構與演算法分析也是講演算法的,不過講的基礎演算法,換句話說講的是演算法導論,而編譯原理這門課程講的就是比較專註解決一種的演算法了。在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)都作了十分詳細的說明。這些東西都是我們編寫平常程序的時候經常要做的事情,但是我們卻少去探求其內部是如何完成。 關於中間代碼生成,代碼生成,代碼優化部分的內容就實在不好說了。國內很多教材到了這部分都會很簡單地走馬觀花講過去,學生聽了也只是作為了解,不知道如何運用。不過這部分內容的東西如果要認真講,單獨開一學期的課程都講不完。在《編譯原理及實踐》的書上,對於這部分的講解就恰到好處。作者主要講解的還是一種以堆棧為基礎的指令代碼,十分通俗易懂,讓人看了後,很容易模仿,自己下來後就可以寫自己的代碼生成。當然,對於其它代碼生成技術,代碼優化技術的講解就十分簡單了。如果要仔細研究代碼生成技術,其實另外還有本叫做《》,那本書現在由機械工業出版社引進的,十分厚重,而且是英文原版。不過這本書我沒有把它列為推薦書給大家,畢竟能把龍書的內容搞清楚,在中國已經就算很不錯的高手了,到那個時候再看這本《》也不遲。代碼優化部分在大學本科教學中還是一個不太重要的部分,就是算是實踐過程中,相信大家也不太運用得到。畢竟,自己做的編譯器能正確生成執行代碼已經很不錯了,還談什麼優化呢? 編譯原理的課程畢竟還只是講解原理的課程,不是專門的編譯技術課程。這兩門課程是有很大的區別的。編譯技術更關注實際的編寫編譯器過程中運用到的技術,而原理的課

⑵ 求《 現代編譯原理JAVA中文版》PDF,誰有給我一份wk794834392 @163.com

見附件。

⑶ 學習編譯原理哪本書好

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

下面的資料請作參考:

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

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年在貝爾實驗室做研究工作。主要研究方向是計算機安全、編譯器設計、程序設計語言等。

⑷ 計算機科學與技術,大二了,我該學些什麼呢,現在只會寫幾行代碼

我不是大神,事實上我還是大一呢。我已經學了C,正在學C++,我也是一頭霧水。再好多看些相關書籍。我給你推薦些。我只看了一點就受益無窮。求採納。
計算機經典教材
目錄
1 前言
2 Mathematics (數學)
3 Data Structures & Algorithms (數據結構、演算法)
4 Compiler (編譯原理)
5 Operating System (操作系統)
6 Database (資料庫)
7 C (C 語言)
8 C++ (C++ 語言)
9 Object-Oriented (面向對象)
10 Software Engineering (軟體工程)
11 UNIX Programming (UNIX編程)
12 UNIX Administration (UNIX系統管理)
13 Networks (網路)
14 Windows Programming (Windows 編程)
15 Other (其它)

前言

推薦原則:
寧缺勿濫,決不混進糟粕 (好書不一定對所有人都合適,但對於它的目標讀者群來說,一定是好書)。
選書原則:
有國外的,不看國產的
有原版的,不看翻譯的
看大師的作品
看書原則:
不要看C、C++、java……今天聽說C好,就跑去學C。明天聽說java好,就跑去學java,最後你什麼也學不到。因為不管什麼語言,永遠不要忘記語言的本質。語言只是一種工具,它的作用就是完成你的工作。不管把
C 的語法學得如何透徹,也不管把 C 的
trick用的如何精妙,這都不能表示你會編程。要學會如何分析問題,如何設計程序,如何用一種具體的語言來實現。如果你只會做最後一步,你只是一個編碼者(coder),還不是一個程序員(programmer)。做一個programmer,不要做coder。總之,不要為了學語言而去學語言(除非你是個語言學家)。

不要放棄對基礎知識的學習。所謂基礎知識,一般都有一個特點,那就是:它們可能看起來沒用,但如果你忽視它們的話,總有一天你會後悔莫及。所以,如果不想以後再後悔的話,就在今天多花點時間。

不管學什麼東西,學之前先弄明白自己要學的是什麼東西,它有什麼用,在你已經學和以後的發展方向中,它處於什麼位值。如果這些都不明白,就好比在茫茫的叢林裡面四處亂撞,就算能出去,也一定會走很多彎路。

對於軟體工程之類的東西,不象 C
語言有著嚴格的標准,最好的辦法就是兼收並蓄,能看的都看,然後(最重要的)在此之上形成自己的思想(不然就什麼都白看了)。
盡信書不如無書。書里寫的只不過是寫書的人認為正確的觀點而已。學習前人的知識和經驗,在此基礎上形成自己的知識結構、觀點和思維方式,才是學習的真正目的。
一。Mathematics (數學)

書名(英文):Discrete Mathematics and Its Applications (Fifth Edition)
書名(中文):離散數學及其應用 (第五版)
原作者:Kenneth H.Rosen

書名(英文):Concrete Mathematics : A Foundation for Computer Science
(Second Edition)
書名(中文):具體數學:計算機科學基礎 (第2版)
原作者:Ronald L. Graham / Donald E. Knuth / Oren Patashnik

二。Data Structures & Algorithms (數據結構、演算法)
書名(英文):Data Structures and Algorithm Analysis in C, Second Edition
書名(中文):數據結構與演算法分析--C語言描述 (第二版)
原作者:Mark Allen Weiss
大凡國外的數據結構教科書,都有一個共同的特點,就是他們的第一章都不是講的數據結構,而是軟體工程的基本原則。我個人認為這是十分必要的,特別是對於大
多數沒有接觸過程序設計的同學來說,在數據結構這個可以說是第一次接觸程序設計的課程中能學習到基本的軟體工程原則,對於以後的學習是十分有好處的。寫一
個亂七八糟的程序出來還不如什麼都不寫。在我看來,這本書有兩個優點:一:將軟體工程的基本原則貫穿全書,二:簡單,容易理解。對於初學者,這本書無疑是
非常合適的。mufasa

書名(英文):Data Structures & Program Design In C (Second Edition)
書名(中文):數據結構與程序設計 C 語言描述 (第二版)
原作者:Robert Kruse / C.L. Tondo / Bruce Leung

書名(英文):Data Structures with C++ Using STL (Second Edition)
書名(中文):數據結構C++語言描述描述—應用標准模版庫 (第二版)
原作者:William Ford, William Topp

書名(英文):Introction to Algorithms (Second Edition)
書名(中文):演算法導論 (第二版)
原作者:Thomas H. Cormen / Charles E. Leiserson / Ronald L. Rivest /
Clifford Stein

書名(英文):The Art of Computer Programming, Volume 1 : Fundamental
Algorithms (Third Edition)
書名(中文):計算機程序設計藝術 第1卷 基本演算法 (第3版)
原作者:Donald E. Knuth

書名(英文):The Art of Computer Programming, Volume 2 : Seminumerical
Algorithms (Third Edition)
書名(中文):計算機程序設計藝術 第2卷 半數值演算法 (第3版)
原作者:Donald E. Knuth

書名(英文):The Art of Computer Programming, Volume 3 : Sorting and
Searching (Second Edition)
書名(中文):計算機程序設計藝術 第3卷 排序和查找 (第2版)
原作者:Donald E. Knuth

三。Compiler (編譯原理)
書名(英文):Compilers: Principles, Techniques, and Tools
書名(中文):編譯原理、技術與工具
原作者:Alfred V. Aho / Ravi Sethi / Jeffrey D. Ullman

書名(英文):Advanced Compiler Design and Implementation
書名(中文):高級編譯器設計與實現
原作者:Steven S. Muchnic

書名(英文):Modern Compiler Implementation in C
書名(中文):現代編譯原理--C語言描述
原作者:Andrew W.Appel / Maia Ginsburg

四。Operating System (操作系統)
書名(英文):Operating System Concepts (Sixth Edition)
書名(中文):操作系統概念 (第六版)
原作者:Abraham Silberschatz / Peter Baer Galvin / Greg Gagne

書名(英文):Operating Systems : Design and Implementation (Second
Edition)
書名(中文):操作系統:設計及實現 (第二版)
原作者:Andrew S. Tanenbaum / Albert S. Woodhull
翻譯者:王鵬、尤晉元、朱鵬、敖青雲

書名(英文):The Design and Implementation of the 4.4BSD Operating System
書名(中文):4.4BSD操作系統設計與實現
原作者:Marshall Kirk McKusick / Keith Bostic / Michael J. Karels / John
S.Quarterman

書名(英文):The Design and Implementation of the FreeBSD Operating System
書名(中文):FreeBSD操作系統設計與實現
原作者:Marshall Kirk McKusick / George V. Neville-Neil
翻譯者:張輝

書名(英文):The Design of The UNIX Operating System
書名(中文):UNIX操作系統設計
原作者:Maurice J.Bach

書名(英文):UNIX Internals : The New Frontiers
書名(中文):UNIX系統內幕
原作者:Uresh Vahalia

書名(英文):UNIX Systems for Modern Architectures
書名(中文):現代體系結構上的UNIX系統--內核程序員的SMP和Caching技術
原作者:Curt Schimmel
翻譯者:張輝

書名(英文):Lions' Commentary on UNIX 6th Edition with Source Code
書名(中文):萊昂氏UNIX源代碼分析
原作者:John Lions

書名(英文):Distributed Systems : Principles and Paradigms
書名(中文):分布式系統:原理與範例
原作者:Andrew S.Tanenbaum / Maarten van Steen

五.Database (資料庫)

書名(英文):An Introction to Database Systems, Eighth Edition
書名(中文):資料庫系統導論 (第八版)
原作者:C. J.Date

書名(英文):Database System Concepts, Fourth Edition
書名(中文):資料庫系統概念 (第四版)
原作者:Abraham Silberschat / Henry F.Korth / S.Sudarshan

六。C (C 語
書名(英文):The C Programming Language, Second Edition
書名(中文):C程序設計語言,第二版
原作者:Brian W. Kernighan / Dennis Ritchie

書名(英文):The Art and Science of C : A Library-Based Introction to
Computer Science
書名(中文):C語言的科學和藝術
原作者:Eric S.Roberts

書名(英文):Programming Abstractions in C : A Second Course in Computer
Science
書名(中文):C程序設計的抽象思維
原作者:Eric S.Roberts

書名(英文):Expert C Programming
書名(中文):C專家編程
原作者:Andrew Koenig

書名(英文):C Traps and Pitfalls
書名(中文):C陷阱與缺陷
原作者:Andrew Koenig

七。C++ (C++ 語言)

書名(英文):C++ Primer, Third Edition & Forth Edition
書名(中文):C++ Primer (第三版、第四版)
原作者:Stanley B.Lippman / Josée LaJoie / Barbara E.Moo
翻譯者:李師賢、蔣愛軍、梅曉勇、林瑛

平心而論,這本書的第三版並不適合入門,但是第四版適合。所以第四版的出現並不意味著第三版就失去了其價值。在我看來最好的辦法就是買一本第四版的中文版和一本第三版的英文版。中文版用來入門,英文版用來作參考手冊。mufasa

書名(英文):The C++ Programming Language, Special Edition
書名(中文):C++ 程序設計語言 (特別版)
原作者:Bjarne Stroustrup

書名(英文):Inside the C++ Object Model
書名(中文):深度探索 C++ 對象模型
原作者:Stanley B. Lippman

書名(英文):Effective C++, Thrid Edition
書名(中文):Effective C++ (第三版)
原作者:Scott Meyers

書名(英文):More Effective C++
書名(中文):More Effective C++
原作者:Scott Meyers
翻譯者:侯捷

書名(英文):Thinking in C++, Second Edition
書名(中文):C++編程思想 (第二版)
原作者:Bruce Eckel

書名(英文):Thinking in C++, Volume 2 : Practical Programming
書名(中文):C++編程思想 第2卷:實用編程技術
原作者:Bruce Eckel / Chuck Alison

書名(英文):Ruminations on C++ : A Decade of Programming Insight and
Experience
書名(中文):C++沉思錄
原作者:Andrew Koenig / Barbara Moo

八。Object-Oriented (面向對象)
書名(英文):Object-Oriented Analysis and Design with Applications, Second
Edition
書名(中文):面向對象分析與設計 (第二版)
原作者:Grady Booch

書名(英文):Object-Oriented Modeling and Design with UML,Second Edition
書名(中文):UML面向對象建模與設計 (第二版)
原作者:Michael Blaha / James Rumbaugh
翻譯者:車皓陽、楊眉

書名(英文):Object-Oriented Software Construction (Second Edition)
書名(中文):面向對象軟體構造 (第二版)
原作者:Bertrand Meyer

書名(英文):Design Patterns : Elements of Reusable Object-Oriented
Software
書名(中文):設計模式:可復用面向對象軟體的基礎
原作者:Erich Gamma / Richard Helm / Ralph Johnson / John Vlissides

九。Software Engineering (軟體工程)
書名(英文):Software Engineering (7th Edition)
書名(中文):軟體工程 (第七版)
原作者:Ian Sommerville

書名(英文):Software Engineering : A Practitioner's Approach (Fifth
Edition)
書名(中文):軟體工程:實踐者之路 (第5版)
原作者:Roger S. Pressman

書名(英文):Software Engineering : Theory and Practice (Second Edition)
書名(中文):軟體工程:理論與實踐 (第二版)
原作者:Shari Lawrence Pfleeger

書名(英文):The Mythical Man-Month
書名(中文):人月神話
原作者:Frederick Phillips Brooks

書名(英文):Software Architecture : Perspectives On an Emerging Emerging
Discipline
書名(中文):軟體體系結構:一門初露端倪學科的展望
原作者:Mary Shaw / David Garlan

十。UNIX Programming (UNIX編程)

書名(英文):Advanced Programming in the UNIX Environment, Second Edition
書名(中文):UNIX 環境高級編程 (第二版)
原作者:W.Richard Stevens / Stephen A.Rago
翻譯者:尤晉元、張亞英、戚正偉

書名(英文):The UNIX Programming Environment
書名(中文):UNIX 編程環境
原作者:Brianw. Kernighan

書名(英文):UNIX Network Programming, Volume 1 : The Sockets Networking
API (Third Edition)
書名(中文):UNIX 網路編程 卷1:套接字聯網API (第三版)
原作者:W. Richard Stevens / Bill Fenner / Andrew M. Rudoff

書名(英文):UNIX Network Programming Volume 2 : Interprocess
Communications (Second Edition)
書名(中文):UNIX 網路編程 卷2:進程間通信 (第2版)
原作者:W. Richard Stevens

書名(英文):The Art of UNIX Programming
書名(中文):UNIX 程序設計藝術
原作者:Eric Raymond

UNIX Administration (UNIX系統管理)
書名(英文):UNIX System Administration Handbook (Third Edition)
書名(中文):UNIX系統管理技術手冊 (第三版)
原作者:Evi Nemeth / Garth Snyder

書名(英文):Linux Administration Handbook
書名(中文):Linux系統管理技術手冊
原作者:Evi Nemeth / Garth Snyder / Trent R.Hein

書名(英文):UNIX Unleashed (Fourth Edition)
書名(中文):UNIX 技術內幕 (第四版)
原作者:Robin Anderson / Andy Johnston

書名(英文):UNIX:The Textbook
書名(中文):UNIX操作系統教程
原作者:Syed Mansoor Sarwar / Robert Koretsky / Syed Aqeel Sarwar

書名(英文):Unix Backup & Recovery
書名(中文):UNIX 備份與恢復
原作者:W.Curtis Preston

十一。Networks (網路)

書名(英文):Computer Networks (Fourth Edition)
書名(中文):計算機網路 (第4版)
原作者:Andrew S. Tanenbaum

書名(英文):TCP/IP Illustrated, Volume 1 : The Protocols
書名(中文):TCP/IP 詳解 卷1:協議
原作者:W. Richard Stevens

書名(英文):TCP/IP Illustrated, Volume 2 : The Implementation
書名(中文):TCP/IP詳解 卷2:實現
原作者:Gary R. Wright / W. Richard Stevens

書名(英文):TCP/IP Illstrated, Volume 3 : TCP for Transactions, HTTP,
NNTP, and the UNIX Domain Protocols
書名(中文):TCP/IP詳解 卷3:TCP事務協議、HTTP、NNTP和UNIX域協議
原作者:W. Richard Stevens

書名(英文):Internetworking with TCP/IP Vol I : Principles, Protocols,
and Architecture (Third Edition)
書名(中文):TCP/IP 網路互連技術 卷1:原理、協議和體系結構 (第3版)
原作者:Douglas E. Comer

書名(英文):Internetworking with TCP/IP Vol II : Design, Implementation,
and Internals (Second Edition)
書名(中文):TCP/IP 網路互連技術 卷2:設計與實現 (第2版)
原作者:Douglas E. Comer / David L. Stevens

書名(英文):Internetworking with TCP/IP Vol III : Client-Server
Programming and Applications, BSD Socket Version (Second Edition)
書名(中文):TCP/IP 網路互連技術 卷3:客戶伺服器編程和應用BSD套接字版 (第2版)
原作者:Douglas E. Comer / David L. Stevens

書名(英文):Internetworking with TCP/IP Vol III : Client-Server
Programming and Applications, Windows Sockets Version
書名(中文):TCP/IP 網路互連技術 卷3:客戶伺服器編程和應用Windows套接字版
原作者:Douglas E. Comer / David L. Stevens

十二。Windows Programming (Windows 編程)
書名(英文):Inside Microsoft Windows 2000 (Third Edition)
書名(中文):Microsoft Windows 2000 技術內幕 (第3版)
原作者:David A.solomon Mark E.Russinovich

書名(英文):Programming Windows (Fifth Edition)
書名(中文):Windows 編程 (第5版)
原作者:Charles Petzold

書名(英文):Programming Applications for Microsoft Windows
書名(中文):Microsoft Windows 應用程序設計
原作者:Jeffrey Richter

書名(英文):Programming with Microsoft Visual C++ .NET (Sixth Edition)
書名(中文):Visual C++.NET 技術內幕 (第6版)
原作者:George Shepherd / David Kruglinski

書名(英文):Dissecting MFC
書名(中文):深入淺出MFC
原作者:侯捷

十三。Other (其它)
書名(英文):Computer Systems : A programmer' s Perspective
書名(中文):計算機系統
原作者:Randal E. Bryant / David R. O'Hallaron

書名(英文):Pattern Classification (Second Edition)
書名(中文):模式分類 (第2版)
原作者:Richard O. Duda / Peter E. Hart / David G. Stork

書名(英文):Code Complete 2
書名(中文):代碼大全第2版
原作者: Steve McConnell

書名(英文):Programming Pearls (2nd Edition)
書名(中文):編程珠璣第2版
原作者: Jon Bentley
別人給我推薦的,我只看過一兩本。

⑸ 計算機科學與技術是學什麼的

計算機科學與技術專業課程不完全解析
1.計算機導論:
計算機科學的基礎課程之一,其教學目的是概要性地對專業課程作介紹,是典型的面向專業新生的課程(即CS0型課程)。認真學習該課程有助於今後的學習,然而這門課程往往容易被新生們忽略……
(推薦教材:可使用學校配發的教材,但建議使用外版翻譯教材。)

2.高級語言程序設計:
計算機科學的基礎課程之一,教學目的是讓本專業同學實際掌握一門程序設計語言並且習得一些程序設計的基本技能,目前的教學語言是C語言。個人認為課程名稱可改為「高級程序設計語言」,因為課程對語言的強調遠勝於對程序設計本質的講解。建議在學習這門課程時配以《程序設計實踐》一書,效果甚佳。
(推薦教材:
①《從問題到程序--程序設計與C語言引論》 機械工業出版社
②《程序設計實踐》 機械工業出版社
③《程序設計語言--實踐之路》 電子工業出版社 )

3.離散數學:
計算機科學基礎課程之一,被譽為計算機科學的數學基礎。其內容博大精深,從中派生出的圖論(圖演算法)、數理邏輯、組合數學以及泛代數等多門專業課程是現代計算機科學和應用數學的主要研究領域。能否學好離散數學對進一步學習以後的專業課程有著非同一般的影響。
(推薦教材及參考書:
①《離散數學》(第四版) 清華大學出版社
②《離散數學導學》機械工業出版社
③《現代應用數學手冊:離散數學卷》清華大學出版社 )

4.電路與電子技術:
電子產業有「朝陽產業」的美譽,被認為是信息時代的工業。這門電子與電路技術可謂是對電子學領域學習的敲門磚。雖然課程本身對計算機科學專業今後的學習影響不大,但掌握這項技能對於學生本身專業素養地提高是大有裨益的。同時,學習這門課程也能為今後學習數字邏輯和微機原理等系統底層方面的課程打好基礎。
(推薦教材:《電子學基礎:電路和元器件》(第四版)清華大學出版社)

5.面向對象程序設計:
如果說上世紀軟體開發領域最偉大的突破是什麼,面向對象程序設計(OOP)必為其中之一。目前主流的程序設計語言,如C++、Java、Python和Delphi等,幾乎清一色支持面向對象。可以說,掌握的面向對象的精髓,便是掌握了我們這個行業的入門鑰匙。我校此課程的教學語言採用的是C++,而就國內C++教學的糟糕現狀來看,若想完整掌握面向對象思想,學生自己不努力是不行的。
(推薦教材及參考書:
①《C++ Primer中文版》(第四版) 人民郵電出版社
②《Essential C++ 中文版》華中科技大學出版社
③《Effective C++ 中文版》(第三版)電子工業出版社
④《Accelerated C++(影印版)》機械工業出版社
⑤《C++語言的設計與演化》機械工業出版社 )

6.數字邏輯:
計算機科學核心課程之一。計算機科學中有一個研究領域即系統設計領域,而本門課程即為這一領域研究的基礎。正確認識與掌握數字邏輯及其設計,可以使那些有志於系統底層開發的學生獲益匪淺。
(推薦教材:
①《數字基礎(第八版)》清華大學出版社
②《邏輯與計算機設計基礎》 中國電力出版社 )
7.數據結構:
計算機科學核心課程之一。對數據地有效組織是程序的主要任務之一,演算法的主要操作對象亦為數據結構。從簡單的數組和鏈表,到各色高級的抽象數據類型(ADT),數據結構在程序設計中的地位不言而喻。學好數據結構,是進一步學習專業課的基本前提。可以這么說,一個不懂得如何組織和操控數據的學生,根本就不配當我們計算機科學專業的學生,更不配當一名程序員!!!
(推薦教材:
①《C演算法 第一卷(第三版)》人民郵電出版社
②《程序設計抽象思想--C語言描述》清華大學出版社
③《數據抽象與問題求解--C++語言描述(第四版)》清華大學出版社
④《數據結構與演算法--Java語言描述》機械工業出版社 )

8.計算方法:內容不詳,不敢妄作斷言。 (推薦教材:待定)
// 轉帖者:線性代數、微積分、微分方程等的計算機演算法

9.計算機原理與匯編:
系統底層課程之一,亦為計算機科學核心課程。重點講述計算機(微機)構造以及低級語言--匯編語言的基礎知識。學習這門課程,對進一步學習編譯原理等專業高級課程有很大幫助。
(推薦教材:
①《深入理解計算機系統》中國電力出版社
②《Intel匯編語言程序設計(影印版)》清華大學出版社
③《Windows環境下32位匯編語言程序設計(第二版)》電子工業出版社
④《匯編語言編程藝術》清華大學出版社 )

10.操作系統:
計算機科學的核心課程之一。課程全面講述了操作系統的原理與構造,各類上機實驗更能讓學生對操作系統有深刻地理解。
(推薦教材:
①《操作系統(第三版)》機械工業出版社
②《現代操作系統(第二版)》機械工業出版社
③《Linux內核設計與實現(影印版)》機械工業出版社
④《UNIX系統編程》機械工業出版社
⑤《UNIX環境高級編程(第二版)》人民郵電出版社 )

11.軟體工程:
計算機科學的核心課程之一。近年來,隨著軟體開發革命地進一步深化,批判軟體工程及過程方法改進的著作日益豐富,我們也得以從不良的軟體開放中解放。建議在學習本課程時,聯系自己的實戰,並閱讀批判軟體工程和改良軟體工程的著作。
(推薦教材及參考書:
①《軟體工程:實踐者的研究方法(第五版)》機械工業出版社
②《程序設計心理學(銀年紀念版)》清華大學出版社
③《人月神話(銀年紀念版)》清華大學出版社
④《人件》清華大學出版社 )

12.資料庫原理及應用:
計算機科學與信息學科的好像課程之一。課程講述了資料庫原理以及設計等方面的內容。對於那些注重實效的學生而言,學好這門課程,可以使今後的工作更為輕松。
(推薦教材:《資料庫系統概念(第四版)》機械工業出版社)

13.運籌學及其演算法:
此課程課作為計算機科學的輔助課程,向學生介紹了運籌學方面的演算法,此類演算法屬於現代演算法范疇,本人暫時還未涉獵,故恕難對此課程解析之…… (推薦教材:待定)
// 轉帖者:線性規劃、動態規劃、排隊論、決策分析等等

14.計算機網路:
計算機科學的核心課程之一。課程詳細地介紹了計算機網路的發展、組成和協議方面的內容。對於自我要求較高的同學而言,學好這門課程義不容辭!
(推薦教材:
①《計算機網路(第四版)》清華大學出版社
②《TCP/IP協議族》清華大學出版社 )

15.軟體開發管理:
應該是軟體工程課的附屬課程吧,不詳。 (推薦教材:待定)
// 轉帖者:對於工程,管理重於技術

16.數學建模:
可以說是本專業的相關課程,但其意義及作用目前在下還不甚了解。 (推薦教材:待定)
// 轉帖者:既然學了數學,會用也很重要吧

17.J2EE體系結構:
J2EE是目前我們產業的兩大工業平台之一,學習這門課程,可以為今後涉足企業級開發領域打下基礎。但請注意,J2EE和Java語言本身都是在不斷演進的,因而如果不能在課程結束後持續學習相關技術,恐怕還不等你出大學校門,這門課的內容就已經過時了…… (推薦教材:最新的國外相關教材。)

18.計算機圖形學:
計算機科學的核心課程之一。有關計算機圖形學在各個領域的應用不必在下一一說明了吧。無論是游戲開發,還是航空航天等前沿領域,到處都有計算機圖形學的技術被應用。目前該課程主要用C語言和OpenGL圖形庫進行教學,效果應該還算不錯。
(推薦教材及參考書:
①《計算機圖形學原理與實踐-C語言描述(第二版)》機械工業出版社
②《互動式計算機圖形學--基於OpenGL的自頂向下的方法(第四版)》清華大學出版社
③《OpenGL超級寶典(第三版)》 人民郵電出版社 )

19.微型計算機技術:
計算機專業的核心課程之一。課程詳細地分析了微型計算機(主要是單片機)技術,由於這方面資料奇缺,這門課程可不太受在下歡迎…… (推薦教材:待定)
// 轉帖者:想搞嵌入式的要注意了

20.編譯原理:
計算機科學核心課程之一。如果想要寫出好的程序,編譯原理的相關知識必不可少,因而這門課程是十分重點的一門課程。課程教材「龍書」、「虎書」和「鯨書」更是我們專業的經典著作。
(推薦教材:
①《編譯原理》機械工業出版社
②《現代編譯原理--C語言描述》人民郵電出版社
③《高級編譯器設計與實現》機械工業出版社 )

21.Web系統開發:
目前主流的web開發主要集中在ASP.NET和JSP開發領域 ,當然,還有近來火爆異常的Ajax,以前的CGI和ASP已經不那麼流行了。與J2EE一樣,這是一門必須持續學習的課程,否則,你必將被其所拋棄! (推薦教材:最新國外相關書籍。)

22.嵌入式軟體開發:
這個領域可謂是軟體開發的前沿領域,也是未來軟體業霸主的孕育地之一(另兩個領域為Web開發和企業級開發)。目前的軟體開發領域正蘊含著「泛嵌入式」的潛規則(《程序員》2006年7月刊)。認真並持續學習這門課程,對將來的工作會有莫大的幫助。 (推薦教材:《嵌入式系統開放大全》人民郵電出版社)

23.演算法設計與分析:
計算機科學的核心課程之一。「程序是衣,演算法為魂」(《程序員》2006年3月刊),這門課程是本專業學生所亟需掌握的,如果學不好這門課,那麼,你就不是一名優秀的程序員!
(推薦教材:
①《數據結構與演算法分析-C語言描述》機械工業出版社
②《C演算法 第一卷 (第三版)》人民郵電出版社 )

24.情報檢索與利用

⑹ Java 虛擬機一樣的速度甚至出現AOT編譯方式嗎

不論是物理機還是虛擬機,大部分的程序代碼從開始編譯到最終轉化成物理機的目標代碼或虛擬機能執行的指令集之前,都會按照如下圖所示的各個步驟進行:

⑺ java關於this的編譯原理

java提供了一個this關鍵字,它是一個對象的默認引用,this關鍵字總是指向調用該方法的對象,根據this的出現位置不同,this作為對象的默認引用由兩種情形:
1.構造器中引用該構造器執行初始化
的對象;
2.在方法中引用調用引用該方法的對像;
this關鍵字最大的作用就是讓類中的一個方法,訪問該類的另一個方法或屬性。

⑻ 學習C、JAVA、資料庫要看哪些書

朋友,你好!
看到你無比誠懇的提問,就知道你是一位非常有上進心的人,從你的文筆,能感覺到你的邏輯思維很不錯,很有潛力。雖然本人不才,不過很想盡力回答你的問題,在這里發表一下我的看法,也麻煩你讀完它們。
首先我先吐槽一下樓上的回答,有答非所問的,有兩個說了N本書的人(那些書說實話,世界上找不到幾個人是全部看完了的,說白了,不適用,理論知識,你又不是考博士去的)。
進入正題:
你學了2個月左右,如果比較充實的話,你應該已經能自學各種編程語言和思維了,你現在不斷的思索未來是個好習慣,不過在這里先提醒你一下,不要誤入歧途:有遠見可以,不過請不要好高騖遠,不要浮躁,國人的一大缺陷就是浮躁,連復興國家這種大事都想在幾十年內搞定。。。扯遠了哈。

問題一,C語言學習程度:根據你的描述,現在正在學習C語言,我推薦你認真的學完這門語言。理由:所有的語言的文法(語法)幾乎都抄自這門語言,可以說一通百通,而這門語言又很容易學習,涉及面也是最廣的,從你手上帶的電子表(單片機)到你現在用的操作系統,還有你玩的電腦游戲,無一不涉及到C語言,因為早期的所有軟體系統骨架全是C語言寫的,人們捨不得丟棄這些比較「完美」的骨架,所以一直在這骨架上搭建其他的系統和軟體,最後無法舍棄這些骨架了,所以C語言可以火到現在。再次嘮叨,請認真學習這門語言,哪怕你工作以後永遠不使用它。
推薦書籍,「譚浩強的那本C語言書」,或者目錄相近的你覺得能看明白的就行了,書不用太挑剔,都是模仿過來模仿過去,而且這些書也都只是講講文法,並不涉及到實際應用,總之,一本足矣。
問題二,JAVA方向以及書籍:你自己說過,你肯定是走JAVA方向,我也這樣認為,現在JAVA方向和C#方向是國內主流,它們門檻都比較低,我也是JAVA方向的,所以這里能多給你點建議。學完C語言以後,你學習JAVA的文法(語法)就會很輕鬆了,除了面向對象思想要理解外,其他的都能很快吸收,你應該在學習文法的同時領會面向對象思想,你看完(自己提前看吧)你們的JAVA教材後,注意多看面向對象那幾章,熟悉以後,請馬上去買本(或者網上下電子版本)《Thinking in Java》(中文名JAVA編程思想),它能徹底讓你掌握面向對象思想。之後,你不要考慮用JAVA開發桌面應用程序(在國內工作幾乎用不到),你應該開始重新撿起HTML、javascript這些WEB相關的東西了,同時自己熟悉JSP以及配置TOMCAT服務端(自己沒有WEB包或者不會建立的話先去網上下載點JSP程序,TOMCAT主要是學習如何配置那些xml配置文檔),JSP的話一定要苦學,要找幾本書看(未來的工作啊),JSP書不好推薦,隨便找幾本看看吧,都一個模子造的,都挺好的,不存在經典不經典,就是學起來有點苦澀,而且實話有點難,都是學習的別人用JAVA建立好的規則上的(說白了你不是在學JAVA,也不是在學文法,是在學應用了哦,應用前人開發的容器、規則、介面、對象,以後會理解的)。WEB編程學習,前期沒有美工支持,自己頁面設計能力不行的話,你發現你做出來的例子都很沒用很醜陋,沒什麼成就感,請注意不要放棄。當你能獨立開發JSP程序部署JSP程序到TOMCAT上以後,你可以開始學習SSH框架了(找工作的敲門磚,你最應該學的東西),SSH即struts,spring,hibernate這三個傢伙,不知道請網路查一下,相關的書籍多如牛毛,找幾本自己喜歡的吧,比如封面好看,目錄排布好點的就可以(都是一個模子),然後再買本實例書籍,專門講實例的,比如開發圖書管理系統,購物系統的SSH書籍。學完了(自己能獨立開發WEB應用了)以後JAVA方向你已經可以出山了,完全可以找工作去了,前面提到JAVA方向門檻低,是事實,熟悉SSH的都能找到工作。
問題三,資料庫:不多說哦,上面說的那些東西學的時候自然要涉及到資料庫,你會參照書上的下載並使用的,簡單的說幾個流行的,sqlserver、oracle、access、mysql這四個很流行,mysql是免費的,停止升級了已經,其他的也有免費版本,不過不好使,必須學sqlserver,其他的看公司情況,進了公司,有一段磨合期足夠你學會一種新的資料庫了,也是一通百通的東西,書籍嘛,就是網路,不會的查詢語句,都能網路到,然後就是查看資料庫自帶的聯機幫助文檔。
問題四,入行以後干什麼:按要求辦事,前面有磨合期供你適應公司以及項目,多注意溝通同時充電就好了,同時寫博客記錄你在工作時學到的技巧和碰到的問題的解決方案,積少成多,10年成精。
問題五,升職:多去考點證書,學歷要有,自考也行,職稱證書要考,充電的時候多學習管理層次的書籍,軟體工程必學~~~其他的你自然會知道的,時間有限,而且多說無益,不要依賴,相信自己,感覺你是個潛力股,加油吧朋友!
希望我的回答符合你的需要(說不定我說多了偏題了,呵呵,不好意思了)

⑼ 簡述Java程序從編寫到運行的基本步驟,並說明Java的基本工作原理

Java編譯原理:
Java 虛擬機(JVM)是可運行Java 代碼的假想計算機。只要根據JVM規格描述將解釋器移植到特定的計算機上,就能保證經過編譯的任何Java代碼能夠在該系統上運行。
一.Java源文件的編譯、下載 、解釋和執行
Java應用程序的開發周期包括編譯、下載 、解釋和執行幾個部分。Java編譯程序將Java源程序翻譯為JVM可執行代碼?位元組碼。這一編譯過程同C/C++ 的編譯有些不同。當C編譯器編譯生成一個對象的代碼時,該代碼是為在某一特定硬體平台運行而產生的。因此,在編譯過程中,編譯程序通過查表將所有對符號的引用轉換為特定的內存偏移量,以保證程序運行。Java編譯器卻不將對變數和方法的引用編譯為數值引用,也不確定程序執行過程中的內存布局,而是將這些符號引用信息保留在位元組碼中,由解釋器在運行過程中創立內存布局,然後再通過查表來確定一個方法所在的地址。這樣就有效的保證了Java的可移植性和安全 性。

運行JVM位元組碼的工作是由解釋器來完成的。解釋執行過程分三部進行:代碼的裝入、代碼的校驗和代碼的執行。裝入代碼的工作由"類裝載器"(class loader)完成。類裝載器負責裝入運行一個程序需要的所有代碼,這也包括程序代碼中的類所繼承的類和被其調用的類。當類裝載器裝入一個類時,該類被放在自己的名字空間中。除了通過符號引用自己名字空間以外的類,類之間沒有其他辦法可以影響其他類。在本台計算機上的所有類都在同一地址空間內,而所有從外部引進的類,都有一個自己獨立的名字空間。這使得本地類通過共享相同的名字空間獲得較高的運行效率,同時又保證它們與從外部引進的類不會相互影響。當裝入了運行程序需要的所有類後,解釋器便可確定整個可執行程序的內存布局。解釋器為符號引用同特定的地址空間建立對應關系及查詢表。通過在這一階段確定代碼的內存布局,Java很好地解決了由超類改變而使子類崩潰的問題,同時也防止了代碼對地址的非法訪問。

隨後,被裝入的代碼由位元組碼校驗器進行檢查。校驗器可發現操作數棧溢出,非法數據類型轉化等多種錯誤。通過校驗後,代碼便開始執行了。

Java位元組碼的執行有兩種方式:
1.即時編譯方式:解釋器先將位元組碼編譯成機器碼,然後再執行該機器碼。
2.解釋執行方式:解釋器通過每次解釋並執行一小段代碼來完成Java位元組碼程 序的所有操作。
通常採用的是第二種方法。由於JVM規格描述具有足夠的靈活性,這使得將位元組碼翻譯為機器代碼的工作

具有較高的效率。對於那些對運行速度要求較高的應用程序,解釋器可將Java位元組碼即時編譯為機器碼,從而很好地保證了Java代碼的可移植性和高性能。

⑽ 現代編譯器的Java實現(第2版) 這本書如何求看過的評價!

寫的挺好;不過多評價;
沒基礎看起來就是天書;有基礎,不懂的也等於天書;
打字不易,望採納;樓主還是買一本來看看就是,[前提是開發過項目;有一定的JAVA理解能力;]

熱點內容
androidstudio插件 發布:2022-10-05 13:49:25 瀏覽:386
手機谷歌訪問助手下載 發布:2022-10-05 13:42:48 瀏覽:765
vb選擇文件夾路徑 發布:2022-10-05 13:37:27 瀏覽:22
存儲設備中數據傳輸率最低的是 發布:2022-10-05 13:35:58 瀏覽:975
curl訪問https 發布:2022-10-05 13:35:42 瀏覽:554
ftp訪問需要密碼 發布:2022-10-05 13:34:03 瀏覽:45
網易我的世界如何炸別人的伺服器 發布:2022-10-05 13:33:57 瀏覽:762
怎麼從壓縮包 發布:2022-10-05 13:18:53 瀏覽:546
手機日歷文件夾 發布:2022-10-05 13:17:41 瀏覽:161
怎麼玩別的伺服器 發布:2022-10-05 13:17:40 瀏覽:472