<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網(wǎng)易首頁(yè) > 網(wǎng)易號(hào) > 正文 申請(qǐng)入駐

      C語(yǔ)言這么厲害,它自身又是用什么語(yǔ)言寫(xiě)的?

      0
      分享至

      換個(gè)角度來(lái)問(wèn),其實(shí)是:C語(yǔ)言在運(yùn)行之前,得編譯才行,那C語(yǔ)言的編譯器從哪里來(lái)?用什么語(yǔ)言來(lái)寫(xiě)的?如果是用C語(yǔ)言本身來(lái)寫(xiě)的,到底是先有蛋還是先有雞?

      1

      我們假設(shè)世界上不存在任何編譯器, 先從機(jī)器語(yǔ)言說(shuō)起,看看怎么辦。

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

      然后是匯編語(yǔ)言, 匯編語(yǔ)言雖然只是機(jī)器語(yǔ)言的助記符,但是也需要編譯成機(jī)器語(yǔ)言才能執(zhí)行,沒(méi)辦法只能用機(jī)器語(yǔ)言來(lái)寫(xiě)這第一個(gè)編譯器了(以后就不用了)。

      匯編語(yǔ)言的問(wèn)題解決了,就往前邁進(jìn)了一大步,這時(shí)候就可以用匯編語(yǔ)言去寫(xiě)C語(yǔ)言的編譯器,我們說(shuō)這是C編譯器的老祖宗。

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

      OK, 這么一層層上來(lái),終于得到了一個(gè)用C語(yǔ)言寫(xiě)的編譯器, 真是夠麻煩的。

      到這個(gè)時(shí)候,之前那個(gè)匯編寫(xiě)的C語(yǔ)言編譯器就可以拋棄了。

      當(dāng)然,如果在C語(yǔ)言之前,已經(jīng)出現(xiàn)了別的高級(jí)語(yǔ)言,例如Pascal,那就可以用Pascal來(lái)寫(xiě)一個(gè)C語(yǔ)言的編譯器。

      第一個(gè)Pascal的編譯器據(jù)說(shuō)使用Fortran寫(xiě)的。而做為第一個(gè)高級(jí)語(yǔ)言的Fortran,它的編譯器應(yīng)該是匯編語(yǔ)言寫(xiě)的。

      2

      關(guān)于編譯器,這里邊有個(gè)有趣的傳說(shuō):

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

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

      有人覺(jué)得可能是編譯器中有問(wèn)題,在編譯Unix的時(shí)候植入了后門, 于是他們又用C語(yǔ)言重新寫(xiě)了一個(gè)編譯器,用新的編譯器再次編譯了Unix, 這下總算天下太平了吧。

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

      后來(lái)Thompson 本人解開(kāi)了秘密,是第一個(gè)C 語(yǔ)言編譯器有問(wèn)題, 這個(gè)編譯器在編譯Unix源碼的時(shí)候,當(dāng)然會(huì)植入后門, 這還不夠,更牛的是,如果你用C 語(yǔ)言寫(xiě)了一個(gè)新編譯器,肯定也需要編譯成二進(jìn)制代碼啊,用什么來(lái)編譯,只有用Thompson寫(xiě)的那第一個(gè)編譯器來(lái)編譯,好了, 你寫(xiě)的這個(gè)編譯器就會(huì)被污染了,你的編譯器再去編譯Unix , 也會(huì)植入后門 :-)

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

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

      3

      可能有人問(wèn):我用匯編寫(xiě)一段Hello World都很麻煩,居然有人可以用它寫(xiě)復(fù)雜的編譯器?這可能嗎?

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

      對(duì)于編譯器來(lái)說(shuō),還可以采用“滾雪球”的方式來(lái)開(kāi)發(fā):

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

      然后用匯編語(yǔ)言寫(xiě)個(gè)編譯器,只搞定這個(gè)語(yǔ)言的子集C0,這樣寫(xiě)起來(lái)就容易不少。

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

      那C1這個(gè)語(yǔ)言的編譯器由誰(shuí)來(lái)寫(xiě)? 自然是C0。

      等到C1可以工作了,再次擴(kuò)展語(yǔ)言特性,用C1寫(xiě)編譯器,得到C2。

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

      這個(gè)過(guò)程被稱為bootstraping , 中文叫做自舉。

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

      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.

      相關(guān)推薦
      熱點(diǎn)推薦
      90后男生上門喂貓,春節(jié)前后20多天賺16萬(wàn),最多1天跑55單只睡3小時(shí),律師提醒:上門喂貓需提前明確責(zé)任

      90后男生上門喂貓,春節(jié)前后20多天賺16萬(wàn),最多1天跑55單只睡3小時(shí),律師提醒:上門喂貓需提前明確責(zé)任

      瀟湘晨報(bào)
      2026-02-18 16:28:53
      維穩(wěn)辦不能變成欺壓辦,孫玉良:真正的穩(wěn)定是讓弱勢(shì)群體揚(yáng)眉吐氣

      維穩(wěn)辦不能變成欺壓辦,孫玉良:真正的穩(wěn)定是讓弱勢(shì)群體揚(yáng)眉吐氣

      孫玉良
      2026-02-23 08:18:07
      怪發(fā)型,唇穿孔,冬奧花滑華裔冠軍叛逆征服了全世界!

      怪發(fā)型,唇穿孔,冬奧花滑華裔冠軍叛逆征服了全世界!

      ChicMyGeek
      2026-02-24 17:10:12
      75歲張藝謀再掀桌:比748萬(wàn)罰款更狠的,是陳婷留的這一手!

      75歲張藝謀再掀桌:比748萬(wàn)罰款更狠的,是陳婷留的這一手!

      手工制作阿殲
      2026-02-24 16:41:37
      巴拿馬政府強(qiáng)行接管長(zhǎng)和營(yíng)運(yùn)的兩個(gè)港口,中方回應(yīng):將堅(jiān)決維護(hù)企業(yè)的正當(dāng)合法權(quán)益!

      巴拿馬政府強(qiáng)行接管長(zhǎng)和營(yíng)運(yùn)的兩個(gè)港口,中方回應(yīng):將堅(jiān)決維護(hù)企業(yè)的正當(dāng)合法權(quán)益!

      每日經(jīng)濟(jì)新聞
      2026-02-24 18:05:18
      母親獨(dú)自農(nóng)村過(guò)年,女兒打開(kāi)監(jiān)控淚目了,客廳堆滿柴卻沒(méi)一點(diǎn)聲音

      母親獨(dú)自農(nóng)村過(guò)年,女兒打開(kāi)監(jiān)控淚目了,客廳堆滿柴卻沒(méi)一點(diǎn)聲音

      子芫伴你成長(zhǎng)
      2026-02-24 08:10:06
      當(dāng)因殺死毒販,而讓半個(gè)國(guó)家燃起戰(zhàn)火后,終于理解了墨西哥的絕望

      當(dāng)因殺死毒販,而讓半個(gè)國(guó)家燃起戰(zhàn)火后,終于理解了墨西哥的絕望

      閱微札記
      2026-02-24 17:06:05
      中美俄意見(jiàn)一致,寧可讓日本從地球上消失,也堅(jiān)決不允許它擁核!

      中美俄意見(jiàn)一致,寧可讓日本從地球上消失,也堅(jiān)決不允許它擁核!

      老范談史
      2026-02-23 20:33:48
      別再吹天生混血臉了,谷愛(ài)凌那一頭標(biāo)志性的金發(fā)藏不住天然的黑發(fā)

      別再吹天生混血臉了,谷愛(ài)凌那一頭標(biāo)志性的金發(fā)藏不住天然的黑發(fā)

      西樓知趣雜談
      2026-02-24 16:14:33
      戲子誤國(guó)!2026年剛開(kāi)年,就有3位明星相繼塌房,個(gè)個(gè)荒唐

      戲子誤國(guó)!2026年剛開(kāi)年,就有3位明星相繼塌房,個(gè)個(gè)荒唐

      林輕吟
      2026-02-24 07:14:49
      明星卸妝后,曾黎臉蠟黃,王子文像老阿姨,看到王一博后我驚呆了

      明星卸妝后,曾黎臉蠟黃,王子文像老阿姨,看到王一博后我驚呆了

      最美的開(kāi)始
      2026-02-24 19:00:14
      村里紅白事從不回,男子母親離世,鄰居等著看笑話,結(jié)果長(zhǎng)了見(jiàn)識(shí)

      村里紅白事從不回,男子母親離世,鄰居等著看笑話,結(jié)果長(zhǎng)了見(jiàn)識(shí)

      子芫伴你成長(zhǎng)
      2026-02-23 12:21:40
      A股:今天上沖到4131后回落,種種跡象表明,明天或出現(xiàn)巨變大行情

      A股:今天上沖到4131后回落,種種跡象表明,明天或出現(xiàn)巨變大行情

      股市皆大事
      2026-02-24 16:08:16
      “茶幾”正在退出中國(guó)家庭,學(xué)廣東人這樣做,實(shí)用性讓人大開(kāi)眼界

      “茶幾”正在退出中國(guó)家庭,學(xué)廣東人這樣做,實(shí)用性讓人大開(kāi)眼界

      室內(nèi)設(shè)計(jì)師有料兒
      2026-02-19 11:17:18
      從全球第一到業(yè)績(jī)腰斬!公牛集團(tuán)被房地產(chǎn)拖垮,十幾億準(zhǔn)備跑路

      從全球第一到業(yè)績(jī)腰斬!公牛集團(tuán)被房地產(chǎn)拖垮,十幾億準(zhǔn)備跑路

      小熊侃史
      2026-01-08 07:55:06
      OpenClaw刪光Meta安全總監(jiān)郵箱!連喊3次停手都沒(méi)用,她狂奔去拔網(wǎng)線

      OpenClaw刪光Meta安全總監(jiān)郵箱!連喊3次停手都沒(méi)用,她狂奔去拔網(wǎng)線

      新智元
      2026-02-24 12:33:20
      同樣煮餃子,“蓋蓋煮”和“不蓋蓋煮”區(qū)別大,難怪煮出來(lái)不一樣

      同樣煮餃子,“蓋蓋煮”和“不蓋蓋煮”區(qū)別大,難怪煮出來(lái)不一樣

      阿龍美食記
      2026-02-23 17:00:18
      新加坡大滿貫賽:大捷報(bào)!林詩(shī)棟3:0大獲全勝,王皓起身鼓掌加油

      新加坡大滿貫賽:大捷報(bào)!林詩(shī)棟3:0大獲全勝,王皓起身鼓掌加油

      國(guó)乒二三事
      2026-02-24 14:02:13
      京東上的假貨,為何如此招搖?

      京東上的假貨,為何如此招搖?

      呦呦鹿鳴
      2026-02-22 21:20:32
      全球頭號(hào)毒販被斃,墨西哥的天正在晴,也基本順特朗普了

      全球頭號(hào)毒販被斃,墨西哥的天正在晴,也基本順特朗普了

      邵旭峰域
      2026-02-24 10:49:17
      2026-02-24 22:48:49
      碼農(nóng)翻身 incentive-icons
      碼農(nóng)翻身
      有趣且硬核的技術(shù)文章
      228文章數(shù) 627關(guān)注度
      往期回顧 全部

      科技要聞

      宇樹(shù)科技發(fā)布四足機(jī)器人Unitree As2

      頭條要聞

      白宮答伊朗問(wèn)題:特朗普首選是外交 必要時(shí)也愿用武力

      頭條要聞

      白宮答伊朗問(wèn)題:特朗普首選是外交 必要時(shí)也愿用武力

      體育要聞

      蘇翊鳴總結(jié)米蘭征程:我仍是那個(gè)熱愛(ài)單板滑雪的少年

      娛樂(lè)要聞

      汪小菲官宣三胎出生:承諾會(huì)照顧好3個(gè)孩子

      財(cái)經(jīng)要聞

      縣城消費(fèi)「限時(shí)繁榮」了十天

      汽車要聞

      入門即滿配 威蘭達(dá)AIR版上市 13.78萬(wàn)元起

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

      時(shí)尚
      健康
      本地
      家居
      藝術(shù)

      闊腿褲失寵了?這4條褲子承包你整個(gè)春天的時(shí)髦!

      轉(zhuǎn)頭就暈的耳石癥,能開(kāi)車上班嗎?

      本地新聞

      春花齊放2026:《駿馬奔騰迎新歲》

      家居要聞

      本真棲居 愛(ài)暖伴流年

      藝術(shù)要聞

      2025年第八屆全國(guó)青年美展 | 油畫(huà)作品選刊

      無(wú)障礙瀏覽 進(jìn)入關(guān)懷版