當前位置:首頁 » 編程軟體 » 編譯器鯨書

編譯器鯨書

發布時間: 2022-09-14 23:40:06

Ⅰ 「龍書」虎書「鯨書」有什麼區別要不要全都看完是不是全部看完了就會設計語言了

如果是有了一定的編譯器學習基礎,可以看虎書。 但是入門的話,龍書更基礎,同時一個更詳細。

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

計算機科學與技術專業課程不完全解析
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.情報檢索與利用

Ⅲ 龍書虎書鯨書先看哪一本

都行,可以根據個人喜好。
龍書,虎書,鯨書,主要內容包括基礎應用、實用技巧、原理機制等方面,這些書的別名主要根據封面、作者姓名首字母、書名首字母來命名的。
「龍書」的由來:1977年的封面是一個騎士和一隻恐龍,因此第一次被人們叫做龍書,而且那條龍是綠色的,所以又叫綠龍書。再次之後隨著不斷的改版,又相繼出現了紅龍書、紫龍書。在編譯領域,「虎書」和「龍書」齊名,虎書出版的比較晚,與「龍書」相比,內容上增加了數據流分析、循環優化、內存管理等內容。對於鯨書來說,出版的時間比「龍書」和「虎書」晚,它不但包含了起那兩本書的內容,而且還涵蓋其中包含了一些比較高級的編譯器的設計和實現,是針對有一定基礎的人群來學習的。

Ⅳ 編譯原理「龍書」「虎書」「鯨書」的書名是什麼

1.龍書(Dragon book) 書名是Compilers: Principles,Techniques,and Tools 2.鯨書(Whale book) 書名是:Advanced Compiler Design and Implementation 3.虎書(Tiger book) 書名是:Modern Compiler Implementation in Java/C++/ML,Second Edition

Ⅳ 機器語言和編程之間的轉換

就是你說的,你寫的代碼經過編譯器編譯,最終生成機器語言
過程大致是這樣:人寫的代碼->詞法分析->語法分析->語義分析->代碼優化->代碼生成
我說的是大概的,具體的你可以去看編譯方面的數據,如龍書,虎書,鯨書,是這方面的經典
沒有點基礎的人要看懂還是比較困難的,想實現編譯器的製作的話就更難了
建議可以藉助第三方工具:flex和bison

Ⅵ 學習編譯原理哪本書好

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

下面的資料請作參考:

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

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

Ⅶ 學編譯原理有什麼好書

我覺得龍書會被首推為學編譯原理的書是因為它出版的早(1986年第一版,應該是編譯原理書的鼻祖),幾乎所有編譯原理相關資料的參考資料都會引用它。個人覺得龍書對於初學者來說寫的很不好懂,大家看這本書基本都是看得雲里霧里。在看過一些資料之後硬著頭皮寫編譯器(解釋器)之後再看書會好很多。我目前看過的幾本編譯原理書裡面,《Engineering a Compiler》是寫的最好的,基本概念都講解的很清晰,不會像看龍書那樣似懂非懂。總的來說,編譯原理沒有一本書是TheOne,多看幾本書相互參考比較好。虎書以例子貫穿,鯨書主講後端,《Parsing Techniques》講前端,都是很好的參考。

Ⅷ 求C++ 網路編程最好的書籍 謝謝了

學習編程基礎也很重要的,路要一步一步地走。不要老是想到看一本書就成為高手。我給你推薦一些書吧,你可以選一些看。其中很多都是經典之作。C++是以C為基礎的,所以你最好看一下C語言,網路方面,《計算機網路》和《TCP/IP詳解》是必看的。望採納。
1、演算法
計算機程序設計藝術-------Donald.E.Knuth----------演算法「倚天屠龍」雙劍
演算法導論-----------------Thomas H. Cormen--------演算法「倚天屠龍」雙劍
離散數學及其應用----------Kenneth H.Rosen
具體數學—計算機科學基礎--------Donald.E.Knuth
2、數據結構
數據結構 C++
數據結構演算法與應用
3、C語言
C程序設計語言(第2版·新版)---C語言「倚天屠龍雙劍」---Brian W.Kernighan「C語言之父」
C Primer Plus中文版(第五版)--------C語言「倚天屠龍雙劍」---Stephen Prata
C程序設計(第三版)---------------------------譚浩強
C語言大全(第四版)---------------------------HERBERT SCHILDT
C語言介面與實現:創建可重用軟體的技術-------------DAVID R.HANSON
C語言參考手冊(原書第5版)--------------------------Samuel P.Harbison
C程序設計教程---------------------------------H.M.Deitel/P.J.Deitel
C陷阱與缺陷-----------------------------------Andrew Koenig
5、C++
C++程序設計語言(特別版)---c++八大金剛----Bjarne Stroustrup「C++之父」
C++ Primer (第3版)中文版----c++八大金剛---Stanley B.Lippman
C++ Primer (第4版)中文版----c++八大金剛---Stanley B.Lippman
C++標准程序庫—自修教程與參考手冊--c++八大金剛--Nicolai M.Josuttis
C++語言的設計和演化-----c++八大金剛----Bjarne Stroustrup「C++之父」
深度探索C++對象模型---c++八大金剛----Stanley B.Lippman
Essential C++中文版---c++八大金剛---Stanley B.Lippman
Effective C++中文版 2nd Edition-----c++八大金剛------Scott Meyers
More Effective C++中文版----c++八大金剛------Scott Meyers
C++編程思想(第2版) 第1卷:標准C++導引--------Bruce Eckel
C++編程思想(第2版)第2卷:實用編程技術 --------Bruce Eckel
C++程序設計--------------------------譚浩強
C++ 程序設計教程(第2版)--------------錢能
C++ Primer Plus(第五版)中文版---Stephen Prata

6、操作系統
深入理解計算機系統(修訂版)-------RANDAL E.BRYANT
計算機操作系統(第六版)
7、編譯原理
跟我一起寫makefile
《編譯原理技術和工具》------- Alfred ------- 龍書
《現代編譯原理-C語言描述》 ----------- Andrew W. Appel ----------- 虎書
《高級編譯器設計與實現》 ----------- Steven S.Muchnick ----------- 鯨書
8、網路
計算機網路第四版中文版-----------Andrew S.Tanenbaum -------網路編程三劍客
TCP/IP詳解3卷本--------------------Richard Stevens----網路編程三劍客
UNIX網路編程2卷本--------------------Richard Stevens----網路編程三劍客
用TCP/IP進行網際互聯-----------Douglas E. Comer
高級TCP/IP編程-------------------Jon C. Snader
C++網路編程-----------------------Douglas Schmidt
UNIX環境高級編程(第2版)--------------------Richard Stevens
9、Linux
Linux內核設計與實現
Linux內核完全注釋
LINUX內核分析及編程

Ⅸ 匯編語言編譯器是怎麼編寫的

編譯器自舉!搜索這個關鍵字
程序都是編譯器編譯的。這個是肯定的
至於第一款X語言編譯器是不是直接1010101010自己寫的那就不知道啦

一般開發編譯器的話。有兩條路選擇
1.利用yacc(或者其變種)&lex(詞法分析)-等工具自己生成語法模板
詞法語法都可以使用這些工具自己生成
然後自己編寫生成的中間碼和生成的機器碼就可以了
一般做編譯原理類似試驗都是如此的。許多編譯器也的確是這樣

2.自己寫詞法分析和語法分析。可以參考一些開源的編譯器
lcc-這個是ANSI C99標準的編譯器是開源的
或者nasm,watcom等編譯器到www.sf.net上不少開源的編譯器

總的來說。高級語言編譯器比較難寫
如果想快速寫出一個的話
可以採用第一種做法。利用工具生成語法詞法模板
先寫一個簡單的匯編編譯器比較簡單
開源的有nasm,jwasm(支持masm語法開源的編譯器)
http://www.japheth.de/JWasm.html
fasm(這款編譯器是自舉的.就是自己可以編譯自己),
http://flatassembler.net/

剩下的就是自己做好語言規則關鍵字map
引用高手的話。語言map做好了你的編譯器也做好一半了
剩下的都是機械性的工作了。
生成x86或者arm指令。

優化工作這個很難解釋.根據你所需要的做吧
畢竟可以做出一個無錯,又XX的編譯器已經很難得

你可以選擇使用現有的編譯器開發自己的編譯器
然後等到你的編譯器支持相當數量指令和成熟度的時候
使用自己的語法重新寫一遍編譯器.
這樣你就可以用自己的編譯器開發自己的編譯器了(是不是很邪惡?)

另外舉幾個例子
Delphi的編譯器是C++ Builder開發的。
而C++ Builder的IDE是Delphi開發的
C++ Builder的編譯器是C++ Builder開發的-這個就是編譯器自舉了。。Delphi和C++ Builder共享一個後端化優化器。
Delphi 早期的版本的編譯器是tasm直接編譯的。可見Anders的匯編功力多強悍(Anders也就是後來VJ++,C#,.NET工程的核心架構師.最關鍵的靈魂級人物)

VC++的編譯器是VC++開發的。很明顯這都說明了編譯器自舉
自己開發自己。如果一個編譯器可以做到自己編譯自己。那基本上就可以實現任何功能了。

關於編譯器開發的書籍可以看一下
龍書《編譯原理(第二版)》
虎書《現代編譯原理-C語言描述》
鯨書《高級編譯器設計與實現》
建議從鯨書看起。然後是龍書
再來是虎書--虎書裡面描述了許多現代編譯器(正如其名)技術
例如面向對象啦,優化,垃圾回收等等.
鯨書看完基本上就可以實現一個簡單的Tiny C編譯器了
然後在龍書鞏固,讀一下語言規范,自己看一些開源的匯編編譯器代碼
自己就可以嘗試做一個匯編語言編譯器了.等到技術提高了
在嘗試做一些高級語法識別,參考LCC代碼做一下ANSI C99的
C語言編譯器。再來就看你自己的興趣和領悟度拉
如果想支持C++的話就得要對編譯器做許多方便的研究

類似Java那種跨平台或者Ruby,Python等動態語言
虎書中也有描述。當然看自己功力了

Ⅹ 請問學x86匯編語言用什麼編譯器

編譯器自舉!搜索這個關鍵字
程序都是編譯器編譯的。這個是肯定的
至於第一款X語言編譯器是不是直接1010101010自己寫的那就不知道啦

一般開發編譯器的話。有兩條路選擇
1.利用yacc(或者其變種)&lex(詞法分析)-等工具自己生成語法模板
詞法語法都可以使用這些工具自己生成
然後自己編寫生成的中間碼和生成的機器碼就可以了
一般做編譯原理類似試驗都是如此的。許多編譯器也的確是這樣

2.自己寫詞法分析和語法分析。可以參考一些開源的編譯器
lcc-這個是ANSI C99標準的編譯器是開源的
或者nasm,watcom等編譯器到上不少開源的編譯器

總的來說。高級語言編譯器比較難寫
如果想快速寫出一個的話
可以採用第一種做法。利用工具生成語法詞法模板
先寫一個簡單的匯編編譯器比較簡單
開源的有nasm,jwasm(支持masm語法開源的編譯器)

fasm(這款編譯器是自舉的.就是自己可以編譯自己),

剩下的就是自己做好語言規則關鍵字map
引用高手的話。語言map做好了你的編譯器也做好一半了
剩下的都是機械性的工作了。
生成x86或者arm指令。

優化工作這個很難解釋.根據你所需要的做吧
畢竟可以做出一個無錯,又XX的編譯器已經很難得

你可以選擇使用現有的編譯器開發自己的編譯器
然後等到你的編譯器支持相當數量指令和成熟度的時候
使用自己的語法重新寫一遍編譯器.
這樣你就可以用自己的編譯器開發自己的編譯器了(是不是很邪惡?)

另外舉幾個例子
Delphi的編譯器是C++ Builder開發的。
而C++ Builder的IDE是Delphi開發的
C++ Builder的編譯器是C++ Builder開發的-這個就是編譯器自舉了。。Delphi和C++ Builder共享一個後端化優化器。
Delphi 早期的版本的編譯器是tasm直接編譯的。可見Anders的匯編功力多強悍(Anders也就是後來VJ++,C#,.NET工程的核心架構師.最關鍵的靈魂級人物)

VC++的編譯器是VC++開發的。很明顯這都說明了編譯器自舉
自己開發自己。如果一個編譯器可以做到自己編譯自己。那基本上就可以實現任何功能了。

關於編譯器開發的書籍可以看一下
龍書《編譯原理(第二版)》
虎書《現代編譯原理-C語言描述》
鯨書《高級編譯器設計與實現》
建議從鯨書看起。然後是龍書
再來是虎書--虎書裡面描述了許多現代編譯器(正如其名)技術
例如面向對象啦,優化,垃圾回收等等.
鯨書看完基本上就可以實現一個簡單的Tiny C編譯器了
然後在龍書鞏固,讀一下語言規范,自己看一些開源的匯編編譯器代碼
自己就可以嘗試做一個匯編語言編譯器了.等到技術提高了
在嘗試做一些高級語法識別,參考LCC代碼做一下ANSI C99的
C語言編譯器。再來就看你自己的興趣和領悟度拉
如果想支持C++的話就得要對編譯器做許多方便的研究

類似Java那種跨平台或者Ruby,Python等動態語言
虎書中也有描述。當然看自己功力了

熱點內容
如何配置一台長久耐用的電腦 發布:2025-07-12 11:43:03 瀏覽:601
昆明桃源碼頭 發布:2025-07-12 11:38:45 瀏覽:568
大司馬腳本掛機 發布:2025-07-12 11:38:35 瀏覽:458
資料庫實時監控 發布:2025-07-12 11:31:33 瀏覽:743
vb6反編譯精靈 發布:2025-07-12 11:23:12 瀏覽:997
模擬存儲示波器 發布:2025-07-12 11:10:58 瀏覽:814
怎麼查看安卓真實運行內存 發布:2025-07-12 11:08:39 瀏覽:883
鏈接直接訪問 發布:2025-07-12 11:03:37 瀏覽:950
安卓如何把備忘錄轉為文檔 發布:2025-07-12 10:48:15 瀏覽:702
無法連接ftp主機 發布:2025-07-12 10:47:33 瀏覽:345