c語言寫編譯器
1. 為什麼c語言的編譯器可以用c語言來寫
所謂來C語言編譯器,就是把編程得自到的文件,比如.c,.h的文件,進行讀取,並對內容進行分析,按照C語言的規則,將其轉換成系統可以執行的二進制文件。
其本質在於對文件的讀入,分析,及處理。這些操作,C語言都是可以實現的。
所以用C語言來做C語言的編譯器是完全可行的。
但是,歷史上的第一個C語言編譯器,肯定不是C語言寫的,因為在沒有編譯器時,無法把C語言轉換成可執行文件。
只要有了第一版其它語言的編譯器,就可以用C語言寫編譯器了。
事實上,目前大多數的C語言編譯器,都是用C語言寫的。
2. C語言的編譯器是用什麼語言寫的
理論上,C語言的編譯器,用什麼語言寫都可以的
如果已經有一個不太好的C語言編譯器,那麼完全可以用c語言寫個更好的C語言的編譯器
不過,更大的可以是用另外的語言寫的,如匯編
3. 常見的C語言編譯器是什麼
目前最流行的C語言編譯器有以下幾種:
1、GNU Compiler Collection 或稱GCC
GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。
GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)點贊為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。
2、Microsoft C 或稱 MS C
Microsoft C 是c語言的一種IDE(集成開發環境),常見的還有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......
3、Borland Turbo C 或稱 Turbo C
Turbo C是美國Borland公司的產品,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。
(3)c語言寫編譯器擴展閱讀:
C編譯的整個過程很復雜,大致可以分為以下四個階段:
1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。
2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。
3、匯編階段將匯編語言翻譯成機器指令。
4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。
4. 第一個C語言編譯器是怎樣編寫的
任何一個抄功能
任何一個語言襲 都能實現
所以 關鍵的不在於語言 而在於 演算法
C語言被人設計出來
設計了它的語法和規則
然後 根據這個規則,用B語言(Ken Thompson發明的B語言,而 B語言則源自BCPL語言。) 加匯編 編寫了第一個C的編譯器
沒用多久
因為C語言更好用
於是 後續的C語言編譯器 都是C語言自己寫的了。
5. 我想做一個C語言編譯器……
沒什麼可不可取的,弄出來的話你的編程水平會有很大的提升,沒弄出來也會,除非你一開回始就放棄答.
首先不建議你搞x86架構的,當然想挑戰自己也行,因為x86架構的指令格式十分的操蛋.
建議寫arm架構的編譯器,因為指令結構簡單,而且你學了之後做嵌入式方向很有用
工作量相當的大,給你說一下你要點的技能點吧
*數據結構(編程必修)
*編譯原理(理論知識,沒有他你沒法下手)
*了解一種架構的匯編語言(不會的話你不知道怎麼該讓cpu去處理c的語句)
*了解你學的那種架構的匯編語言的指令格式(不翻譯成機器指令cpu咋跑)
*了解一種可執行文件的格式(windows就搜PE文件的格式,linux就搜elf文件的格式,不把編譯出來的東西組織成os能識別的格式咋運行)
*還有需要一定的英文閱讀能力(因為有的資料沒有中文)
還有一定要丟掉老掉牙的vc 6.0和tc,這倆傢伙用來應付考試還行,用他來實際開發你就找虐吧.
6. c語言編譯器是用什麼於語言寫的
第一個C語言編譯器應該是用匯編寫的,但是第一個成熟的C語言編譯器應該是由匯編專和C語言共同寫的屬。
編譯原理講到了「自舉編譯器」。大意就是先用底層語言(應該是匯編)寫一個能運行,但效率極低的C語言編譯器(底層語言不好優化),有了C語言的編譯器以後,就可以用C語言好好寫一個編譯器了,用之前那個運行沒問題,但效率低得編譯器編譯一下,就得到了可以使用的編譯器了。
7. 新手用什麼c語言編譯器
新手建議使用Turbo C
雖然用起來不是很方便,
但是他能鍛煉你寫代碼的能力
每一行代碼都親自敲出來
那是一種鍛煉
也是一種享受
在鍛煉中享受成功的喜悅吧!
Turbo C
新手的最佳選擇!
8. C語言編寫簡單的C語言編譯器急!謝謝大家
不太理解LZ說什麼,黑框里是輸入a的值還是a值還有公式
以下隨便寫回的
main(){
int a=0;
printf("請輸入一個整數答:");
scanf("%d",&a);
a++;
printf("a+1=%d\n",a);
}
9. 自己寫編譯器怎麼寫,我想為中國程序員做個編譯C語言的編譯器。
首先做這個東西的意義並不大,如果是想學習的話,看看這本書Modern Compiler by Andrew W. Appel
10. 怎樣去寫一個編譯器(用C語言寫C語言編譯器),需
這個需要考慮到很多的問題 各種錯誤的類型 以及可能出現的情況
這個可以先去看內看c編譯器的原容理(最好是源代碼) 然後可以自己試著 編寫其中一部分實現的原理 如果是簡單的查錯 也要分析錯誤的類型等 修正方法