国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

C語言這么厲害,它自身又是用什么語言寫的?

0
分享至

換個角度來問,其實是:C語言在運行之前,得編譯才行,那C語言的編譯器從哪里來?用什么語言來寫的?如果是用C語言本身來寫的,到底是先有蛋還是先有雞?

1

我們假設世界上不存在任何編譯器, 先從機器語言說起,看看怎么辦。

機器語言可以直接被CPU執(zhí)行,不需要編譯器。

然后是匯編語言, 匯編語言雖然只是機器語言的助記符,但是也需要編譯成機器語言才能執(zhí)行,沒辦法只能用機器語言來寫這第一個編譯器了(以后就不用了)。

匯編語言的問題解決了,就往前邁進了一大步,這時候就可以用匯編語言去寫C語言的編譯器,我們說這是C編譯器的老祖宗。

有了這個老祖宗,就可以編譯任意的C語言程序了,那是不是可以用C語言本身寫一個編譯器?只要用老祖宗編譯一下就可以了。

OK, 這么一層層上來,終于得到了一個用C語言寫的編譯器, 真是夠麻煩的。

到這個時候,之前那個匯編寫的C語言編譯器就可以拋棄了。

當然,如果在C語言之前,已經(jīng)出現(xiàn)了別的高級語言,例如Pascal,那就可以用Pascal來寫一個C語言的編譯器。

第一個Pascal的編譯器據(jù)說使用Fortran寫的。而做為第一個高級語言的Fortran,它的編譯器應該是匯編語言寫的。

2

關于編譯器,這里邊有個有趣的傳說:

傳說Unix 發(fā)明人之一的 Ken Thompson在貝爾實驗室,大搖大擺的走到任何一臺Unix機器前,輸入自己的用戶名和密碼,就能以root的方式登錄!

貝爾實驗室人才濟濟,另外一些大牛發(fā)誓要把這個漏洞找出來,他們通讀了Unix的C源碼,終于找到了登錄的后門, 清理后門以后編譯Unix , 運行, 可是Thompson 還是能夠登錄進去。

有人覺得可能是編譯器中有問題,在編譯Unix的時候植入了后門, 于是他們又用C語言重新寫了一個編譯器,用新的編譯器再次編譯了Unix, 這下總算天下太平了吧。

可是仍然不管用, Thompson 依然可以用root登錄,真是讓人崩潰 !

后來Thompson 本人解開了秘密,是第一個C 語言編譯器有問題, 這個編譯器在編譯Unix源碼的時候,當然會植入后門, 這還不夠,更牛的是,如果你用C 語言寫了一個新編譯器,肯定也需要編譯成二進制代碼啊,用什么來編譯,只有用Thompson寫的那第一個編譯器來編譯,好了, 你寫的這個編譯器就會被污染了,你的編譯器再去編譯Unix , 也會植入后門 :-)

說到這里我就想起了多年前的XcodeGhost 事件,簡單來說就是在Xcode(非官方渠道下載的)中植入了木馬,這樣XCode編譯出的ios app都被污染了,這些app就可以被黑客利用做非法之事。

雖然這個XCodeGhost和Thompson的后面相比差得遠,但是提醒我們,下載軟件的時候要走正規(guī)渠道,從官方網(wǎng)站下載,認準網(wǎng)站的HTTPS標準,甚至可以驗證一下checksum。

3

可能有人問:我用匯編寫一段Hello World都很麻煩,居然有人可以用它寫復雜的編譯器?這可能嗎?

當然可能,在開發(fā)第一代Unix的時候,連C語言都沒有, Ken Thompson 和 Dennis Ritchie 可是用匯編一行行把Unix敲出來的。 WPS第一版是求伯君用匯編寫出來的, Turbo Pascal 的編譯器也是Anders 用匯編寫出來的,大神們的能力不是普通人能想象得到的。

對于編譯器來說,還可以采用“滾雪球”的方式來開發(fā):

還是以C語言為例,第一個版本可以先選擇C語言的一個子集,例如只支持基本的數(shù)據(jù)類型,流程控制語句,函數(shù)調(diào)用...... 我們把這個子集稱為C0。

然后用匯編語言寫個編譯器,只搞定這個語言的子集C0,這樣寫起來就容易不少。

C0這個語言可以工作了,然后我們擴展這個子集,例如添加struct,指針...... ,把新的語言稱為C1。

那C1這個語言的編譯器由誰來寫? 自然是C0。

等到C1可以工作了,再次擴展語言特性,用C1寫編譯器,得到C2。

然后是C3, C4...... 最后得到完整的C語言。

這個過程被稱為bootstraping , 中文叫做自舉。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關推薦
熱點推薦
最高黨報:青年考公,是認可責任與擔當

最高黨報:青年考公,是認可責任與擔當

家傳編輯部
2026-03-04 16:27:41
1-2,曼聯(lián)遭世界波絕殺,現(xiàn)場視角還原曼聯(lián)遭絕殺過程,揪出2罪人

1-2,曼聯(lián)遭世界波絕殺,現(xiàn)場視角還原曼聯(lián)遭絕殺過程,揪出2罪人

側身凌空斬
2026-03-05 07:22:00
獨家|阿里千問大模型核心掌舵者宣布離職,高層出面挽留

獨家|阿里千問大模型核心掌舵者宣布離職,高層出面挽留

鳳凰網(wǎng)科技
2026-03-04 14:37:17
美國伊朗打仗,我采訪了滯留迪拜的朋友!現(xiàn)場竟是這樣...

美國伊朗打仗,我采訪了滯留迪拜的朋友!現(xiàn)場竟是這樣...

畢導
2026-03-04 17:04:19
“中國人民決不允許”!

“中國人民決不允許”!

農(nóng)民日報
2026-03-04 13:31:41
幫不幫伊朗渡過難關?原因沒有你想象中的那么簡單

幫不幫伊朗渡過難關?原因沒有你想象中的那么簡單

清哲木觀察
2026-03-04 16:43:56
央視元宵晚會3位女主持全未婚:龍洋37歲劉心悅39歲馬凡舒33歲

央視元宵晚會3位女主持全未婚:龍洋37歲劉心悅39歲馬凡舒33歲

師維
2026-03-04 22:39:41
原來劉燁當初沒撒謊,多方曝謝娜夫婦猛料,網(wǎng)友擔憂的事還是發(fā)生

原來劉燁當初沒撒謊,多方曝謝娜夫婦猛料,網(wǎng)友擔憂的事還是發(fā)生

白面書誏
2026-03-04 13:59:52
戰(zhàn)事升級,伊朗打法變了,魯比奧承認一個事實,中國迎來戰(zhàn)略機遇

戰(zhàn)事升級,伊朗打法變了,魯比奧承認一個事實,中國迎來戰(zhàn)略機遇

梁訊
2026-03-05 01:02:18
霍梅尼,伊朗神權統(tǒng)治的奠基者,西方左派曾盲目力捧,掌權后遭其背刺

霍梅尼,伊朗神權統(tǒng)治的奠基者,西方左派曾盲目力捧,掌權后遭其背刺

齊天候
2026-03-04 16:01:44
越來越多孩子“腦腐”了,玩手機排第二,排第一竟然是……

越來越多孩子“腦腐”了,玩手機排第二,排第一竟然是……

新東方家庭教育
2026-03-03 14:49:40
豪門悲喜夜:曼聯(lián)1-2,曼城爆大冷2-2,阿森納1-0,切爾西4-1

豪門悲喜夜:曼聯(lián)1-2,曼城爆大冷2-2,阿森納1-0,切爾西4-1

側身凌空斬
2026-03-05 06:24:36
亂攔亂罰終結了!國務院825號令生效,除4種情況外交警不得攔車!

亂攔亂罰終結了!國務院825號令生效,除4種情況外交警不得攔車!

今朝牛馬
2026-03-04 22:19:49
中東被困明星又添新成員,炸出一堆“牛鬼蛇神”,荒唐的事發(fā)生了

中東被困明星又添新成員,炸出一堆“牛鬼蛇神”,荒唐的事發(fā)生了

車窗起霧q
2026-03-05 04:42:47
伊軍襲擊以國防部大樓與本·古里安國際機場 摧毀7套雷達系統(tǒng)

伊軍襲擊以國防部大樓與本·古里安國際機場 摧毀7套雷達系統(tǒng)

財聯(lián)社
2026-03-05 05:04:07
美以聯(lián)軍這波操作太狠了

美以聯(lián)軍這波操作太狠了

難得君
2026-03-05 00:05:25
曝伊朗已悄悄聯(lián)系美國,希望進行談判以結束戰(zhàn)爭,特朗普:太晚了

曝伊朗已悄悄聯(lián)系美國,希望進行談判以結束戰(zhàn)爭,特朗普:太晚了

爆角追蹤
2026-03-04 21:23:12
伊朗軍方在沖突中首次使用“哈迪德110”高速無人機

伊朗軍方在沖突中首次使用“哈迪德110”高速無人機

環(huán)球網(wǎng)資訊
2026-03-05 06:23:08
哈梅死了5天,內(nèi)賈德卻滿血復生,外媒發(fā)現(xiàn)不對勁:中國被騙了?

哈梅死了5天,內(nèi)賈德卻滿血復生,外媒發(fā)現(xiàn)不對勁:中國被騙了?

像風走了八萬里不問歸期
2026-03-04 21:53:04
沖突進入第6天,伊朗襲擊以國防部大樓,美稱暫無派遣地面部隊計劃

沖突進入第6天,伊朗襲擊以國防部大樓,美稱暫無派遣地面部隊計劃

齊魯壹點
2026-03-05 07:42:07
2026-03-05 08:51:00
碼農(nóng)翻身 incentive-icons
碼農(nóng)翻身
有趣且硬核的技術文章
231文章數(shù) 631關注度
往期回顧 全部

科技要聞

4599元起!MacBook Neo發(fā)布:搭載A18 Pro

頭條要聞

牛彈琴:美國開始借刀殺人 找到了顛覆伊朗的"馬前卒"

頭條要聞

牛彈琴:美國開始借刀殺人 找到了顛覆伊朗的"馬前卒"

體育要聞

2026年中超,為什么值得你多看一眼?

娛樂要聞

謝謝謝娜 貢獻出26年內(nèi)娛的第一個笑話

財經(jīng)要聞

陸銘:減少過度加班 按規(guī)定支付加班工資

汽車要聞

鴻蒙智行首款獵裝車 尚界Z7/Z7T首發(fā)

態(tài)度原創(chuàng)

時尚
本地
健康
親子
房產(chǎn)

打底衫,條紋的最適合春天!

本地新聞

食味印象|一口入魂!康樂烤肉串起千年絲路香

轉頭就暈的耳石癥,能開車上班嗎?

親子要聞

兒科醫(yī)生教你聽咳嗽辨疾病

房產(chǎn)要聞

400組,30套!聚億·椰海錦程為何能在春節(jié)火出圈?

無障礙瀏覽 進入關懷版