當前位置:首頁 » 編程語言 » c語言寫編譯器

c語言寫編譯器

發布時間: 2022-04-14 12:28:59

『壹』 為什麼c語言編譯器可以用c語言來寫

所謂C語言編譯器,就是把編程得到的文件,比如.c,.h的文件,進行讀取,並對內容進行分析,按照C語言的規則,將其轉換成系統可以執行的二進制文件。
其本質在於對文件的讀入,分析,及處理。這些操作,C語言都是可以實現的。
所以用C語言來做C語言的編譯器是完全可行的。

但是,歷史上的第一個C語言編譯器,肯定不是C語言寫的,因為在沒有編譯器時,無法把C語言轉換成可執行文件。
只要有了第一版其它語言的編譯器,就可以用C語言寫編譯器了。
事實上,目前大多數的C語言編譯器,都是用C語言寫的。

『貳』 c語言用什麼編譯器比較好

編譯器不是最重要的,重要的是你想在哪個平台上開發代碼,以及你想要實現的功能是什麼。一般嵌入式編程大多使用gcc編譯器,尤其是gcc交叉編譯工具,比如arm-linux-gcc、csky-linux-gcc等,編譯器版本根據實際開發需求來選擇。一般基於windows平台的應用程序、伺服器開發,用得多的是visual
c/c++,當然還有其他開發語言和編譯器,如phython、html等。

『叄』 c語言編譯器哪個好

1.
GCC
大名鼎鼎的GNU的C/C++/Obj-C編譯器,
當前版本是2.8.1,
但據說與2.7.*有兼容性
問題.
而使用較廣的是gcc
2.7.2系列,
如RedHat5中帶的就是gcc
2.7.2.3
有時候在Cyrix上用gcc會有些問題,
因此有一套針對Cyrix特點的gcc
2.7.2.3
我這里有RedHat5的rpms
ftp://166.111.68.98/pub/Warez-CD/Huricane-contrib
(Cyrix
2.7.2.3
&
2.8.1)
其基本結構就是一個front
end和back
end,
/usr/bin/gcc
就是個front
end,
其kernel東西都放在
/usr/lib/gcc-lib下面,
cpp是C預處理器,
cc1*的1M多的就是編譯器的核心模塊了
cc1
C
compiler
cc1plus
C++
compiler
cc1obj
Object-C
compiler
但gcc並沒有集成Fortran的compiler,
一般要用f2c轉成C後才用gcc編譯
好象也還有個g77
Fortran
compiler吧?
gcc的不斷發展完善使許多commercial
compiler都相形見絀,
那當然,
gcc/emacs
都由GNU創始人Richard
Stallman手創,
是GNU的旗艦產品,
質量當然沒得說了:-)
由於
Unix平台的高度可移植性,
gcc幾乎在各種常見的Unix平台上都有,
即使是
Win32/DOS也有gcc的port.
比如說該死的Solaris普通版本連compiler都沒有,

就只好用gcc了...
2.
EGCS(Experimental/Enhanced
GNU
Compiler
System)
這是gcc的發展方向,
把fortran等編譯器集成進來,
也許還會有Pascal?
它的構造很清晰,
把對gcc的各種改進/port都集成回去.
如gcc
2.7系列據說是
沒有對Pentium進行優化的,
而egcs則把pgcc對Pentium的一些優化集成進去了
現在gcc的開發工作主要就是egcs,
由Cygnus公司領導(?),
這Cygnus公司還是很
不錯的,
還出了GNU-Win32,
SourceNavigator等,
是GNU的堅實擁護者:-))
http://egcs.cygnus.com
包括了C/C++/Obj-C/Fortran
編譯器,
當前最新版本1.0.2,
還在不斷開發中
昨天download發現KDE
Beta4都用egcs編譯了
:-)
Fortran集成進來後在/usr/lib/gcc-lib下又多了個f771的back
end,
當然
還是g77/f77
編譯
我這里有egcs
1.0.2
的rpm
在RH5-CD/collect下面
3.
PGCC(Pentium
GCC)
http://www.gcc.ml.org
針對Pentium
CPU進行了編譯器優化的compiler
pgcc據說用JPEG壓縮解壓縮測試最快可比gcc快
30%!
新版的pgcc都是基於egcs的,
以一個patch的形式release

『肆』 C語言編寫好代碼後,怎麼編譯,最後生成可執行文件

材料/工具:vc6.0

1、打開c語言編輯工具,在工具中寫入程序的源代碼。

『伍』 編寫C語言用哪個編譯器比較好

visual C++很好很強大,我的電腦用的是 6.0的版本,支持中文。學校用的是英文版的,也支持中文。這里說的支持中文,意思是,比如說,printf語句可以輸出中文內容,運行窗口可以有中文出現。

『陸』 c語言編譯器的選擇

關於C語言編譯器的選擇(Tc2.0,Tc3.0,Vc6.0等)
我們在學習C語言時通常會面臨C語言編譯器的選擇,事實上C語言編譯器可以分為C和C++兩大類,其中C++是C的超集,均向下支持C。主要的C語言編譯器及特點分別如下:
(1)TC 2.0DOS平台軟體。最經典的C語言編譯器,系統體積小,簡單易學,容易上手,而且很多前人或書籍的程序均基於該編譯器,是學習C語言的首選。不過它不支持滑鼠,但讀者如果掌握幾個快捷鍵,操作時對滑鼠可能就不怎麼需要了,如:F2 存檔 F3 打開程序 Alt+F3在最近打開的文件之間切換 Alt+F5觀察運行結果F9 編譯製作EXE Ctrl+F9編譯並運行Ctrl+Y 刪除當前行 Ctrl+KB定義塊首 Ctrl+KK 定義塊尾 Ctrl+KC復制塊 Ctrl+KY刪除塊Ctrl+KV 移動塊
(2)Tc3.0DOS平台軟體。目前比較不錯的C/C++語言編譯器,支持滑鼠,語法著色,多文檔,錯誤跟蹤也很好,操作與TC2.0有很多類似,TC2.0會用那麼TC3.0也很快會用,缺點是以前很多代碼是用TC2.0設計的,而由於TC3.0語法要求的嚴格性,如要求函數必須定義類型,所以向下存在一定的兼容性問題,所以對於初學者選擇起來很矛盾,建議先學會使用TC2.0,而把TC3.0作為能力的補充和平時工具之用。目前有的教材已經選用該編譯器,不過需要一個較長的調整期,因為很多源代碼需要過渡過來才行,雖然性能上比TC2.0有所提高,但對於初學者沒有質的變化,選擇時需要注意。
(3)VC++ 6.0Windows平台。目前主流的C/C++語言編譯器,包含強大的類和內嵌WinAPI的MFC,具有可視化的編程界面。對於TC等的作品也具有向下兼容的特點,建議讀者選用作為C語言過渡到Windows平台編程的首選工具。當然,作為學習,該系統顯得有點龐大,不過通過入門的學習,調試舊的Tc程序也可以。還有其他的編譯器,例如Win tc、gcc、lcc、BC 3.1等等,事實上,編譯器的選擇不是最重要的,他們都可以完成基本的C語言編譯,不過面向考試的時候,還是根據考試的要求,因為編譯器的編譯結果存在著一定的差別,特別在一些復雜語法的語句編譯上。從目前的形勢看,對於從未學習過計算機程序設計的讀者來說,學習C語言時,建議開始選擇Tc2.0,雖然不能使用滑鼠,但幾個快捷鍵的熟練運用基本上可以解決操作的問題,當然有時間的時候了解使用TC3.0就更好了;對於學習過TC2.0的讀者來說,平時完全可以在TC3.0或VC 6.0下調試程序,但考試的時候如果要求必須在TC2.0下,那最好上機練習時在TC2.0下。當然,使用如記事本等文本編輯器編輯程序,然後用TC來調試也不失為一種好方法。另外,DOS平台的Tc2.0或Tc3.0都存在某些機器運行時鍵盤響應遲緩或停頓的問題,Tc3.0可能這種現象要多一點,這主要是由DOS基本內存的不足造成的。可以安裝水平考試課題組提供的DOS模擬器來解決問題,該模擬器重新劃分更多的內存,效果不錯。
新的類似軟體平台也需要讀者關注,那就是java和Viusal C#,因為從發展的眼光來看,目前軟體設計平台有一定的趨同趨勢。例如:java和C#,都來自於C和C++,都作了不錯的擴展和優化。對於深入學習C語言的同學,未來幾年請務必學習VisualStudio.Net或者Java,因為這二者代表了現在的軟體設計主流。他們的主要特點是:優秀的IDE設計環境,強大的WEB服務設計功能,對C++的優化和擴充,基於虛擬機的運行模式,優秀的面向系統開發,可視化的較為成熟的面向對象的程序設計機制等等.

『柒』 C語言的編譯器是用什麼語言寫的

C語言的原型ALGOL 60語言。(也稱為A語言)

1963年,劍橋大學將ALGOL 60語言發展成為CPL(Combined Programming Language)語言。

1967年,劍橋大學的Matin Richards 對CPL語言進行了簡化,於是產生了BCPL語言。

1970年,美國貝爾實驗室的Ken Thompson將BCPL進行了修改,並為它起了一個有趣的名字「B語言」。意思是將CPL語言煮干,提煉出它的精華。並且他用B語言寫了第一個UNIX操作系統。

而在1973年,B語言也給人「煮」了一下,美國貝爾實驗室的D.M.RITCHIE在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。

看到了不 最早的C編譯器當然是B語言寫的了

『捌』 常見的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, 這些軟體很受用戶歡迎。

(8)c語言寫編譯器擴展閱讀:

C編譯的整個過程很復雜,大致可以分為以下四個階段:

1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。

2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。

3、匯編階段將匯編語言翻譯成機器指令。

4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。

『玖』 c語言編譯器如何運行

編譯共分為四個階段:預處理階段、編譯階段、匯編階段、鏈接階段。

1、預處理階段:

主要工作是將頭文件插入到所寫的代碼中,生成擴展名為「.i」的文件替換原來的擴展名為「.c」的文件,但是原來的文件仍然保留,只是執行過程中的實際文件發生了改變。(這里所說的替換並不是指原來的文件被刪除)

2、匯編階段:

插入匯編語言程序,將代碼翻譯成匯編語言。編譯器首先要檢查代碼的規范性、是否有語法錯誤等,以確定代碼的實際要做的工作,在檢查無誤後,編譯器把代碼翻譯成匯編語言,同時將擴展名為「.i」的文件翻譯成擴展名為「.s」的文件。

3、編譯階段:

將匯編語言翻譯成機器語言指令,並將指令打包封存成可重定位目標程序的格式,將擴展名為「.s」的文件翻譯成擴展名為「.o」的二進制文件。

4、鏈接階段:

在示例代碼中,改代碼文件調用了標准庫中printf函數。而printf函數的實際存儲位置是一個單獨編譯的目標文件(編譯的結果也是擴展名為「.o」的文件),所以此時主函數調用的時候,需要將該文件(即printf函數所在的編譯文件)與hello world文件整合到一起,此時鏈接器就可以大顯神通了,將兩個文件合並後生成一個可執行目標文件。

『拾』 C語言編譯器

目前比較流行的包括微軟的Visual C++,GCC, Turbo C等。

個人比較推薦GCC,對於初學者而言,雖然Visual C++比較快上手,它幫助開發人員快速新建工程,並添加工程相關代碼,只需要在這個平台之上直接開發代碼即可,但是這個平台把C語言的一些很關鍵的東西給省略了,例如Makefile,例如一些基本的庫函數的引用之類的。

GCC能讓開發人員從編譯器的角度出發,把程序的編譯,鏈接等一步一步都完全展示出來,而且也是建立的ANSI C的基礎上的,推薦GCC。開發者可以利用一些簡單的文本編輯器進行程序的編寫,然後通過GCC來編譯,這樣可以在起步就不收到包括Visual C++的限制,讓初學者可以更關注與整個程序的編譯過程。

當然如果說到調試方法的話,建議採用Visual C++,它提供的單步跟蹤功能確實非常好,不過在GCC下也可以用GDB進行操作,一起看個人的喜好。

熱點內容
電腦彈出腳本錯誤還能繼續使用嗎 發布:2025-01-20 21:42:29 瀏覽:585
安卓私密照片在哪裡 發布:2025-01-20 21:41:05 瀏覽:4
同濟復試編譯原理 發布:2025-01-20 21:33:54 瀏覽:309
c語言判斷字母 發布:2025-01-20 21:31:09 瀏覽:423
ftp伺服器搭建linux 發布:2025-01-20 21:26:05 瀏覽:334
安卓手機瀏覽器如何翻譯英文網頁 發布:2025-01-20 21:21:01 瀏覽:422
刺客信條梟雄怎麼調成低配置 發布:2025-01-20 21:20:51 瀏覽:709
nss存儲 發布:2025-01-20 21:04:47 瀏覽:35
下載了怎麼解壓 發布:2025-01-20 20:55:22 瀏覽:180
c語言第八章答案 發布:2025-01-20 20:55:17 瀏覽:697