Ⅰ 什麼自編譯過程要在某一台機器上為某種語言構造一個編譯程序,必須掌握哪些方面的內容
最基本的啦
函數
Ⅱ 用c++寫c語言編譯器(輸出匯編語言)有多難{自學成才}
中國從編程流傳進來到現在還沒寫出過一款自己的編譯器,難度由此可見
Ⅲ 匯編語言編譯器是怎麼編寫的
編譯器自舉!搜索這個關鍵字
程序都是編譯器編譯的。這個是肯定的
至於第一款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等動態語言
虎書中也有描述。當然看自己功力了
Ⅳ 匯編語言編譯器是怎麼編寫的
最開始的編譯器是機器語言寫的,然後寫出來支持部分之後,就可以用這部分繼續編譯其他部分的。
Ⅳ 如何用vc6.0做c語言的編譯器阿
VC本身就是C的編譯器。好長時間不用。記得存的時候存聲C SOURCE FILE就可以了吧
Ⅵ 在Windows下只用VBS或者是JS或者BAT怎麼做編譯器(任何語言都可以,包括機器碼和匯編)
編譯器原理通常很復雜,常見的比如vs,delphi編譯器等,一般底層是匯編,然後是C語言嫁接在上邊,一時半會根本說不清楚,好好買書來看吧,豆瓣和知乎都有人推薦比較好的書目。
Ⅶ 把計算機機器語言編寫成匯編語言的編譯器是怎麼製作出來的,它藉助什麼
如果理解不錯,你問的是反匯編程序吧,機器語言是二進制,不同的CPU架構有固定的語義,反匯編時根據語義來分析 二進制數的含義,然後轉換成匯編代碼。如果微軟平台,一般用C語言編寫的多些,其它如PASCAL,BASIC等也可
Ⅷ 求助關於:簡單的自定義語言的編譯器
用VB6.0就有。
Ⅸ 如何編寫機器語言到匯編語言編譯器...
用機器語言寫!
Ⅹ 怎麼傻瓜式建立自己的編程語言和編譯器
因為做起來實在是很麻煩的,首先需要弄懂底層的邏輯,計算機執行代碼的方式,或者可以在其他語言的基礎上去改,但是很浪費時間,還不一定有別人的好。