-
1 # 手機使用者78320221300
-
2 # 君He
通俗點說 c語言不是什麼編寫的 是一套規範和邏輯理論形成的一套語言 他的實現是透過這個規範和理論透過不同平臺的編譯器轉換具體的c語言程式碼為相應平臺的彙編程式碼 比如x86彙編 51彙編 之類的 然後彙編跟相應的機器(cpu記憶體等)緊密聯絡 最終還是機器程式碼 如果你是初學者 很容易會認為c語言就是IDE(整合開發環境)只不過是一套便利的開發工具 要分開看 其他語言同理 關鍵在於編譯器 如何去解釋你的程式碼
-
3 # Sier2017
用C語言寫的程式碼透過C語言的編譯器編譯成EXE,最早版本的C語言的編譯器是透過組合語言寫的編譯器編譯出來的,最早版本的組合語言編譯器是由機器語言寫的編譯器編譯出來的。舊版本的C語言編譯器可以用來編譯出新版本的編譯器程式。
-
4 # luotasha
嚴格地說應該問C語言的編譯器使用什麼編寫的,這個在不同平臺上實現應該不一樣,linux的gcc編譯器應該是彙編編寫的
-
5 # W4290
我不回答這個問題,只是糾正一下這個問題本身。這個問題應該這樣問:“C語言編譯器(compiler)是用什麼語言來程式設計的?”
-
6 # Hello程式設計世界
C程式語言是在20世紀70年代早期設計的,作為新興Unix作業系統的系統實現語言。它源於無型別語言BCPL。c編譯器最初期的版本,是在pdp-11機器上,用匯編語言編寫的,用其編寫人的名字縮寫命名,為dmr,在github上可以查詢legacy-cc,找到部分dmr的編譯器的原始碼。
最開始的c的程式碼,帖一部分在這裡,紀念一下。
/* C compiler
Copyright 1972 Bell Telephone Laboratories, Inc.
*/
ossiz 250;
ospace() {} /* fake */
init(s, t)
char s[]; {
extern lookup, symbuf, namsiz;
char symbuf[], sp[];
int np[], i;
i = namsiz;
sp = symbuf;
while(i--)
if ((*sp++ = *s++)=="\0") --s;
np = lookup();
*np++ = 1;
*np = t;
}
main(argc, argv)
int argv[]; {
.....
-
7 # 毛屬鼠
C語言之所以命名為C,是因為 C語言源自Ken Thompson發明的B語言,而 B語言則源自BCPL語言。
1967年,劍橋大學的Martin Richards對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Programming Language)語言。
20世紀60年代,美國AT&T公司貝爾實驗室(AT&T Bell Laboratory)的研究員Ken Thompson閒來無事,手癢難耐,想玩一個他自己編的,模擬在太陽系航行的電子遊戲Space Travel。他揹著老闆,找到了臺空閒的機器PDP-7。但這臺機器沒有作業系統,而遊戲必須使用作業系統的一些功能,於是他著手為PDP-7開發作業系統。後來,這個作業系統被命名為UNIX。
1970年,Ken Thompson以BCPL語言為基礎,設計出很簡單且很接近硬體的B語言(取BCPL的首字母),並且他用B語言寫了第一個UNIX作業系統。
1971年,同樣酷愛Space Travel的Dennis M.Ritchie為了能早點玩上游戲,加入了Thompson的開發專案,合作開發UNIX。他的主要工作是改造B語言,使其更成熟。
1972年,D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
1973年初,C語言的主體完成。Thompson和Ritchie迫不及待地開始用它完全重寫了UNIX。此時,程式設計的樂趣使他們已經完全忘記了那個Space Travel,一門心思地投入到了UNIX和C語言的開發中。隨著UNIX的發展,C語言自身也在不斷地完善。直到今天,各種版本的UNIX核心和周邊工具仍然使用C語言作為最主要的開發語言,其中還有不少繼承Thompson和Ritchie之手的程式碼。
在開發中,他們還考慮把UNIX移植到其他型別的計算機上使用。C語言強大的移植性(Portability)在此顯現。機器語言和組合語言都不具有移植性,為x86開發的程式,不可能在Alpha、SPARC和ARM等機器上執行。而C語言程式則可以使用在任意架構的處理器上,只要那種架構的處理器具有對應的C語言編譯器和庫,然後將C原始碼編譯、連線成目標二進位制檔案之後即可執行。
1977年,Dennis M.Ritchie發表了不依賴於具體機器系統的C語言編譯文字《可移植的C語言編譯程式》。
1982年,很多有識之士和美國國家標準協會為了使這個語言健康地發展下去,決定成立C標準委員會,建立C語言的標準。委員會由硬體廠商、編譯器及其他軟體工具生產商、軟體設計師、顧問、學術界人士、C語言作者和應用程式設計師組成。
1989年,ANSI釋出了第一個完整的C語言標準——ANSI X3.159—1989,簡稱C89,不過人們也習慣稱其為ANSI C。
C89在1990年被國際標準組織ISO(International Organization for Standardization)一字不改地採納,ISO官方給予的名稱為:ISO/IEC 9899,所以ISO/IEC9899: 1990也通常被簡稱為C90。
1999年,在做了一些必要的修正和完善後,ISO釋出了新的C語言標準,命名為ISO/IEC 9899:1999,簡稱C99。
2011年12月8日,ISO又正式釋出了新的標準,稱為ISO/IEC9899: 2011,簡稱為C11。
這就是C語言的前世今生,這麼久以來,C語言的地位從來沒有被撼動過,作為最底層的基礎開發語言,它顯得尤為重要。伴隨著程式語言的不斷髮展壯大,儘管會有新的更好的語言來代替舊的語言,但是,C語言作為基礎,是基本不可能被替換的。一如工程師設計房子,都會做好藍圖,而C語言就是程式語言這座大廈的藍圖。你說,沒有了C語言,這房子還能建起來嗎?
-
8 # 林辰愛學習
C的一個很小的核是組合語言編寫的,其它部分,包括龐大的庫函式都是用C編寫的。因此,我們稱呼C為自擴充套件語言。你如果對此感興趣,可以看看UNIX是如何生成的。
-
9 # 譚詩詩689
C語言是用計算機編寫出來的,廣泛用於開發,C語言的設計目標,是提供一種簡易的方式編譯,專門用來處理儲存器,產生少量的機器碼,不需要任何執行環境的支配,便能執行的一種程式語言,簡稱:C語言。c語言與C十十,Java,程式語言有所不同,主要有:dang,GCC,WlN一TC,SUBLlME,MSVC,TurboC。
回覆列表
C語言標準文件是 pdf 格式的,你可以在這裡下載 http://open-std.org/JTC1/SC22/WG14/www/docs/n1570.pdf 至於是什麼編寫的,因為很多文件編輯器都可以匯出 pdf,這個還真不好猜測。。。
如果你說的是 C 語言編譯器是什麼編寫的,當今三大主流 C 語言編譯器都是使用 C++ 語言編寫的。
1. 首先是Windows平臺的 cl(全稱叫 Microsoft (R) C/C++ 最佳化編譯器)。該編譯器是閉源的,但是從它的可執行檔案的匯入符號可以看出它是用 C++ 語言編寫的,並極有可能就是用自身編譯的。
2. 然後是在Linux平臺廣泛使用的 gcc。gcc 編譯器(平臺)最初是用 C 語言編寫的,但是在 2012 年 8 月,gcc 宣佈全面遷移至 C++ 語言,所以現在都是使用 C++ 語言編寫了。
3. 最後是在BSD系(包括蘋果系統)使用的 clang 編譯器,它屬於 LLVM 編譯器平臺,從誕生第一天起就是使用 C++ 語言編寫的。
其他還有很多小眾編譯器,多數是使用 C 或 C++ 語言編寫(C 語言居多),由於數量眾多這裡就不列舉了。
可以看到 cl 的引用了 C++ 語言編寫的函式