虎書編譯
『壹』 請問學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等動態語言
虎書中也有描述。當然看自己功力了
『貳』 推薦幾本經典的編譯原理書,什麼出版社,作者(越厚越好)
看外文,樓主好強!
編譯原理當然是龍、虎、鯨三本經典了。
1.龍書(Dragon book)
書名是Compilers: Principles,Techniques,and Tools
作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman
國內所有的編譯原理教材都是抄的它的,而且只是抄了最簡單的前端的一些內容。
2.鯨書(Whale book)
書名是:Advanced Compiler Design and Implementation
作者是:Steven S.Muchnick
也就是高級編譯原理,象什麼陳疑雲之類的估計也就是這個水平不錯了
3.虎書(Tiger book)
書名是:Modern Compiler Implementation in Java/C++/ML,Second Edition
作者是:Andrew W.Appel,with Jens Palsberg
這本書是3本書中最薄的一本,也是最最牛的一本!
龍書機械出版社有原版,中文是李建中教授翻譯的;
虎書是電子工業出版社出的,有中文版,沒看到原版;
鯨書貌似中英文版國內都沒有
『叄』 「龍書」虎書「鯨書」有什麼區別要不要全都看完是不是全部看完了就會設計語言了
如果是有了一定的編譯器學習基礎,可以看虎書。 但是入門的話,龍書更基礎,同時一個更詳細。
『肆』 編譯原理虎書 java版紙質書怎麼買
學Java必看書籍:Java編程規范,Effective Java第二版,Java並發編程實踐,Java解惑,ROBUST Java 中文版-Java異常處理、測試與調試
另外我也有學Java的課程老師給我們:Java面向對象編程
『伍』 匯編語言編譯器是怎麼編寫的
編譯器自舉!搜索這個關鍵字
程序都是編譯器編譯的。這個是肯定的
至於第一款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等動態語言
虎書中也有描述。當然看自己功力了
『陸』 有什麼好的編譯原理的書籍
編譯原理方面比較好的書有三本,分別是龍書、虎書、鯨書,
這三本書是編譯原理方面很權威的三本書,以動物命名是因為他們三本的封面上分別印了這三種動物。
這三本書的全名如下:
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
至於翻譯過來的中文本你去網上搜一下
『柒』 求虎書《現代編譯原理C語言描述》中文電子版
你試試我愛讀電子書搜索下吧
『捌』 我自己編寫了一個程序,但要求帶有編譯器,如何實現
自己寫編譯器啊,你可以去圖書館借本《龍書》《鯨書》《虎書》,通讀。
然後用C\C++編寫詞法分析器、語法分析器、語義分析器、以及中間代碼生成器
學習匯編語言,學會後,用C\C++和匯編編寫目標代碼生成器和代碼優化器。
這樣你就能成功編寫一個編譯器了。以你現在的水平,至少半年或者一年吧……
其實這玩意做出來可以當畢業設計了,並且可能還能拿優。
你確定你們老師是讓你寫個編譯器?還是寫個makefile...
『玖』 學編譯原理有什麼好書
我覺得龍書會被首推為學編譯原理的書是因為它出版的早(1986年第一版,應該是編譯原理書的鼻祖),幾乎所有編譯原理相關資料的參考資料都會引用它。個人覺得龍書對於初學者來說寫的很不好懂,大家看這本書基本都是看得雲里霧里。在看過一些資料之後硬著頭皮寫編譯器(解釋器)之後再看書會好很多。我目前看過的幾本編譯原理書裡面,《Engineering a Compiler》是寫的最好的,基本概念都講解的很清晰,不會像看龍書那樣似懂非懂。總的來說,編譯原理沒有一本書是TheOne,多看幾本書相互參考比較好。虎書以例子貫穿,鯨書主講後端,《Parsing Techniques》講前端,都是很好的參考。