『壹』 我想做一個C語言編譯器……
沒什麼可不可取的,弄出來的話你的編程水平會有很大的提升,沒弄出來也會,除非你一開始就放棄.
首先不建議你搞x86架構的,當然想挑戰自己也行,因為x86架構的指令格式十分的操蛋.
建議寫arm架構的編譯器,因為指令結構簡單,而且你學了之後做嵌入式方向很有用
工作量相當的大,給你說一下你要點的技能點吧
*數據結構(編程必修)
*編譯原理(理論知識,沒有他你沒法下手)
*了解一種架構的匯編語言(不會的話你不知道怎麼該讓cpu去處理c的語句)
*了解你學的那種架構的匯編語言的指令格式(不翻譯成機器指令cpu咋跑)
*了解一種可執行文件的格式(windows就搜PE文件的格式,linux就搜elf文件的格式,不把編譯出來的東西組織成os能識別的格式咋運行)
*還有需要一定的英文閱讀能力(因為有的資料沒有中文)
還有一定要丟掉老掉牙的vc 6.0和tc,這倆傢伙用來應付考試還行,用他來實際開發你就找虐吧.
『貳』 把計算機機器語言編寫成匯編語言的編譯器是怎麼製作出來的,它藉助什麼
如果理解不錯,你問的是反匯編程序吧,機器語言是二進制,不同的CPU架構有固定的語義,反匯編時根據語義來分析 二進制數的含義,然後轉換成匯編代碼。如果微軟平台,一般用C語言編寫的多些,其它如PASCAL,BASIC等也可
『叄』 自己寫編譯器怎麼寫,我想為中國程序員做個編譯C語言的編譯器。
首先做這個東西的意義並不大,如果是想學習的話,看看這本書Modern Compiler by Andrew W. Appel
『肆』 如何製作手機上的c語言編譯器
有一個應用叫做c4android
『伍』 如何實現 C 語言編譯器
匯編編譯器:把匯編語言源程序轉換為機器語言的程序,匯編編譯器也可以生成源代碼列表文件,其中包括行號,內存地址,源代碼語句,程序中使用的符號及變數,交叉引用列表.
在Windows/Dos 下可用的匯編編譯器有Microsoft宏匯編編譯器MASM,Borland Turbo Assember(TASM)和The NetWide Assembler(NASM),其中NASM是跨平台的編譯器可用於Windows/Dos/Linux下.他們的語法相近,都是Intel語法風格. 在Linux下可用的匯編編譯器有NASM,gas.NASM和gas的語法風格相去甚遠,NASM使用的是Intel 語法風格的匯編語法,而gas使用的是AT&T的匯編語法風格.
『陸』 java語言編譯器是怎樣編寫的,源代碼是什麼
編譯器本身就是一個應用程序,編譯器涉及到底層的一些操作,對執行要求比較高的地方使用匯編語言編寫的,主要的還是用C語言來編寫實現的,在Java的安裝路徑下的bin目錄下有很多的*.exe可執行文件,像jar.exe、javac.exe、java.exe等等,Java編譯器這東西它好像不是開源的,如果你對編譯器的實現感興趣的話,推薦你看一本《編譯原理》這本書,這本書對你了解編譯器的實現原理有很大的幫助的。
『柒』 易語言怎麼製作編譯器
易語言製作的軟體不能編譯出新的軟體,你可以用易語言製作兩個軟體,用一個軟體輸出另一個來達到目的,目前易語言製作的軟體生成器就是這個原理
『捌』 怎樣去寫一個編譯器(用C語言寫C語言編譯器),需要哪些知識做鋪墊,可以給一下相關網站和書籍的推薦嗎
寫編譯器重點就是設計並實現一些數據結構和演算法,語言特點太多的話,代碼寫起來不容易,建議你找一個小語言嘗試下,不要一開始就去嘗試成熟語言。否則你會在寫完語法分析程序以後,遭遇到很大的困難。多數人都是在寫語義分析程序的時候,突然發現自己設計的數據結構很爛,後邊越寫越要命。
如果你想入門編譯器的話,那麼可以看《編譯原理與實踐》,整本書先將編譯器理論,然後後邊教你一步步實現c-miuns(c的子集)的編譯器,包括lex,yacc,都在幾千行代碼左右。這本書講的比較簡單易懂一點
也可以學學斯坦福大學的編譯器設計公開課(aiken設計了一個叫cool的語言,專門用來教人寫編譯器),課程地址上面有人給了:Compilers。這門課以前有個實驗環境(據說已經給了,我以前寫的時候還是用的網上一個不完整的實驗環境),把和編譯器知識無關的內容都給你寫好了,你只需要在固定的地方填上你的內容就可以寫出你的編譯器(不要覺得很簡單哦,人家的代碼寫的很精巧的,讀完就發現寫個好編譯器還是很費腦子的),另外,這個實驗環境有個特點,就是在每一步都提供標准程序做對比,你可以在寫完一部分以後就同標准程序對比,及時發現錯誤。這種方式為寫編譯器又提供了很多幫助
先找個小的,慢慢研究,弄懂了整體的結構再說
『玖』 我想先用C語言做個C編譯器,然後再編譯其他C程序
可以採用自展的方法。當年的PASCAL語言編譯器就是這樣被創造出來的。
具體方法是:首先用其它任何一門語言寫一個非常精簡的C語言內核,可以只具備基本的功能。再用這個內核本身來編寫更大一點的內核。不斷重復以上的步驟就可以得到一個完整的C語言編譯環境,只是這樣做的難度太高了,做起來恐怕有困難。