c編譯器原理
C語言編譯器目前主要有VC++、dev-C++、C-Free、win-TC、TC 2.0等等。
其中比較經典的VC++,微軟的產品,編譯器,鏈接器,運行,調試等功能於一體的強大開發工具,特點是功能十分強大,對於新手來說需要一段時間去摸索。
dev-C++是windows下一款開發c/c++的開發環境,使用gcc為編譯器,遵循標准,功能比較強大,語法高量,可以進行單步調試(這對排除錯誤很重要),進行斷點設置等功能,遵循C標准,是一款很強大的開發工具。
C-Free是一款支持多種編譯器的專業化C/C++集成開發環境(IDE)。利用C-Free,使用者可以輕松地編輯、編譯、連接、運行、調試C/C++程序。
TC 2.0:Borland公司的產品,在dos界面下編譯運行,小巧、靈活,但是不能使用滑鼠。
win-TC:在tc2.0的基礎上加上了界面,能夠使用滑鼠,具有語法高量,可以嵌入匯編等特點,對新手一些,拜託了不能用滑鼠的困難。
編譯器,簡單講,就是將「一種語言(通常為高級語言)」翻譯為「另一種語言(通常為低級語言)」的程序。一個現代編譯器的主要工作流程:源代碼 (source code) → 預處理器 (preprocessor) → 編譯器 (compiler) → 目標代碼 (object code) → 鏈接器(Linker) → 可執行程序 (executables)。
B. 為什麼c語言的編譯器可以用c語言來寫
我是這樣想的,第一個編譯器肯定不是C語言,但是有了C編譯器就可以編譯C語言啦,編譯器也是程序對吧,二進制代碼,可以運行,然後又用C語言寫更好的編譯器用現在的編譯器編成可執行代碼。我是這樣想的呵呵,好比地球上有了第一個生命,然後這個生命又孕育出了新的生命。
C. C/C++ 的預編譯原理是什麼為什麼要用預編譯
為了防止程序在實際應用當中出現錯誤
D. c語言編譯器是用什麼於語言寫的
第一個C語言編譯器應該是用匯編寫的,但是第一個成熟的C語言困敬編譯器應該是由匯編和C語言共同寫的。枝肢
編譯原理講到了「自舉編譯器」。大意就是先用底層語言(應該是匯編)寫一個能運行,但效率極低的C語言編譯器(底層語言不好優化),有了C語言的編譯器以後,就可以用C語言好好寫一個編譯器了,用之前那個運行沒汪搭慎問題,但效率低得編譯器編譯一下,就得到了可以使用的編譯器了。
E. 第一個 C 語言編譯器是用什麼語言編寫的
第一個C語言編譯器(簡單的編譯器)是用匯編完成的,後來的完整C語言編譯器是用C語言編寫的(也就是由簡單的編譯器編譯)。
F. C語言工作原理
作為一種編程語言,本身是談不上工作原理的,實際上C語言所有的語法,正是C語言編譯器的工作原理或者工作機制的具體實現。要細致的討論起來是不可能,但是作為C語言程序員,必須了解這個大致的流程。一個程序,從C語言源碼,到系統可執行的文件,一般經歷四個過程。
1、預處理階斷,這個階斷是文本處理階斷,有預處理器來完成,會將源碼中的帶"#"開頭的預處理命令進行相應的處理,在Linux上C語言的預處理器程序是cp命令。
2、編譯階斷,這個階斷是有C語言編譯階斷,在Linux上C語言的編譯器是cc命令,它將C語言源碼轉換成匯編指令。
3、匯編階斷,這個階斷是匯編編譯階斷,在Linux上C語言的匯編器是as命令,這個階斷會將匯編指令編譯成二進制機器碼。
4、鏈接階斷,這個階斷是會將匯編階斷生成的機器碼目標文件,裝載成一個系統可執行的文件,在Linux平台以ELF格式進行組裝,在Windows平台上以PE格式進行組裝。在Linux平台上的鏈接器命令為ld,在windows平台上的鏈接器命令為linker。
G. C編譯器和C++編譯器的異同
c++的設計者說過,c++的設計目標是保留c語言的長處銷蘆如:系統編程特性,執行快速快等,再添加上面向對跡扒象特性。
語虧州帶言的特性決定編譯器的特點。核心的區別也就上面一句話,具體的差別那得幾本書來說明。c編譯器通常只編譯c文件,c++編譯器可以同時編譯c和c++文件。
H. C語言是用什麼編寫出來的
C語言通過語言開發出來的。
C語言是Dennis Ritchie 在1972年通過Thompson的B語言的基礎之上開發出來的。C是作為從事實際編程工作的程序的一種工具而出現的,所以其主要目標是成為一種有用的語言。同時, C 也是為編程人員開發的語言,這使得它成為當今人們首先的編程語言之一。
C已經成為最重要和流行的編程語言之一。它之所以得到發展,是因為人們嘗試使用它後喜歡它。過去10年中,許多人從C轉而使用更強大的C++語言,但C有其自身的優勢,仍然是一種重要的語言,而且它還是通往C++的必由之路。
(8)c編譯器原理擴展閱讀
C語言特點
1、設計特性:C是一種融合了控制特性的現代語言,而我們已發現在計算機科學的理論和實踐中,控制特性是很重要的。
2、高效性: C是一種高效的語言。 在設計上它充分利用了當前計算機在能力上的優點。C程序往往很緊湊且運行速度快。
3、可移植性:C是一種可移植語言。在一個系統上編寫的C程序經過很少改動或不經修改就可以其他系統上運行。
I. VC++6.0編譯器是如何編譯C語言程序的
編譯過程如下:
1.預處理階段,主要是宏替換和庫的引入
2.匯編階段,將1步驟的.c文件通過匯編器生成匯編文件.asm
3.編譯階段,將2步驟的文件通過c編譯器,生成目標文件.obj
4.鏈接階段,將3步驟的.obj文件通過鏈接庫和其他目標文件,生成可執行文件.exe
J. C語言中編譯程序和連接程序的作用和原理是什麼關鍵是原理,越詳細越好,謝了~
詳細了你也不一定能理解,你對底層的了解程度如何?
簡單的來說編譯就是生成語言無關的obj文件,連接就是將所有的obj文件連接起來,查找裡面的符號按照COFF文件的標准生成dll或EXE。