<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)易首頁 > 網(wǎng)易號 > 正文 申請入駐

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

      0
      分享至

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

      1

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

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

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

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

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

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

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

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

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

      2

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

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

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

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

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

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

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

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

      3

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

      當(dāng)然可能,在開發(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ā)布,本平臺僅提供信息存儲服務(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)推薦
      熱點推薦
      中央軍委全力反腐敗,說明中國人民解放軍將要擔(dān)大任,干大事!

      中央軍委全力反腐敗,說明中國人民解放軍將要擔(dān)大任,干大事!

      安安說
      2026-01-29 09:33:17
      干飯人的“天”真的塌了,顧客吃牛蛙天花板掉出一條人腿,店家:樓上裝修導(dǎo)致,掉下來的員工沒事

      干飯人的“天”真的塌了,顧客吃牛蛙天花板掉出一條人腿,店家:樓上裝修導(dǎo)致,掉下來的員工沒事

      環(huán)球網(wǎng)資訊
      2026-03-22 14:10:21
      一克就有五億霉菌,喝普洱就是在喝臟水?普洱茶真的細(xì)菌爆表嗎?

      一克就有五億霉菌,喝普洱就是在喝臟水?普洱茶真的細(xì)菌爆表嗎?

      醫(yī)學(xué)科普匯
      2026-03-21 16:56:45
      5連勝奪冠!中國女網(wǎng)24歲1米82王牌復(fù)活:教練曾奪青少年世界第1

      5連勝奪冠!中國女網(wǎng)24歲1米82王牌復(fù)活:教練曾奪青少年世界第1

      李喜林籃球絕殺
      2026-03-23 14:08:39
      超136萬手封單,半導(dǎo)體龍頭“一字”跌停!腦機接口加快走入現(xiàn)實,多只概念股已砸出“深坑”

      超136萬手封單,半導(dǎo)體龍頭“一字”跌停!腦機接口加快走入現(xiàn)實,多只概念股已砸出“深坑”

      數(shù)據(jù)寶
      2026-03-23 11:55:15
      更新:伊朗導(dǎo)彈命中核工業(yè)城防空洞,傷亡萬人?

      更新:伊朗導(dǎo)彈命中核工業(yè)城防空洞,傷亡萬人?

      勝研集
      2026-03-22 12:59:44
      1991年蘇聯(lián)解體,叛逃少將馬爾果夫申請回國,我國做出了什么決定

      1991年蘇聯(lián)解體,叛逃少將馬爾果夫申請回國,我國做出了什么決定

      嘮叨說歷史
      2026-03-18 15:22:11
      12GB!蘋果新機曝光:9月正式發(fā)布

      12GB!蘋果新機曝光:9月正式發(fā)布

      高科技愛好者
      2026-03-22 23:05:20
      毛新宇少將擔(dān)任副部長!妻子劉濱擔(dān)任扇子協(xié)會會長

      毛新宇少將擔(dān)任副部長!妻子劉濱擔(dān)任扇子協(xié)會會長

      李昕言溫度空間
      2025-11-09 14:50:17
      中東局勢最新動態(tài):3月23日下午重要消息

      中東局勢最新動態(tài):3月23日下午重要消息

      第一校尉
      2026-03-23 16:13:47
      二野選兵團司令,劉伯承掰著手指頭數(shù)了三人,卻唯獨落下一員猛將

      二野選兵團司令,劉伯承掰著手指頭數(shù)了三人,卻唯獨落下一員猛將

      海佑講史
      2026-03-23 16:05:06
      5分鐘開通國家免費電視!不用機頂盒、不連網(wǎng),永久免費

      5分鐘開通國家免費電視!不用機頂盒、不連網(wǎng),永久免費

      叮當(dāng)當(dāng)科技
      2026-03-20 03:29:51
      中國石化:2025年營收2.78萬億同比下降9.5%

      中國石化:2025年營收2.78萬億同比下降9.5%

      IT之家
      2026-03-22 17:09:07
      大門緊閉!中國拒絕邀請日本出席高層會議,日本企業(yè)慌了!

      大門緊閉!中國拒絕邀請日本出席高層會議,日本企業(yè)慌了!

      阿龍聊軍事
      2026-03-23 14:56:49
      凈利潤暴跌90%!理想的銷量神話破滅

      凈利潤暴跌90%!理想的銷量神話破滅

      大佬灼見
      2026-03-13 12:23:26
      張靚穎自曝醫(yī)美失敗臉僵笑不出來,網(wǎng)友:娛樂圈最高級的公關(guān)

      張靚穎自曝醫(yī)美失敗臉僵笑不出來,網(wǎng)友:娛樂圈最高級的公關(guān)

      師維
      2026-03-22 23:02:13
      特朗普:臺灣屬于中國,中方武統(tǒng)是自由,但一動手美國會不高興

      特朗普:臺灣屬于中國,中方武統(tǒng)是自由,但一動手美國會不高興

      紀(jì)中百大事
      2026-03-23 09:57:51
      《逐玉》捧紅一位外國演員,長得帥、中文好,隊友都不知他是老外

      《逐玉》捧紅一位外國演員,長得帥、中文好,隊友都不知他是老外

      觀察鑒娛
      2026-03-23 09:20:36
      中國重型旅轉(zhuǎn)型全域旅,原有裝備不能全部淘汰

      中國重型旅轉(zhuǎn)型全域旅,原有裝備不能全部淘汰

      全球直擊
      2026-03-23 09:53:54
      66歲中將被除名:任核試驗基地司令,最后露面照曝出詳細(xì)過程披露

      66歲中將被除名:任核試驗基地司令,最后露面照曝出詳細(xì)過程披露

      博士觀察
      2026-03-21 14:05:14
      2026-03-23 17:03:00
      碼農(nóng)翻身 incentive-icons
      碼農(nóng)翻身
      有趣且硬核的技術(shù)文章
      239文章數(shù) 635關(guān)注度
      往期回顧 全部

      科技要聞

      裁掉2萬多名員工后,扎克伯格對自己下手了

      頭條要聞

      特朗普向伊朗發(fā)出48小時"最后通牒" 中方表態(tài)

      頭條要聞

      特朗普向伊朗發(fā)出48小時"最后通牒" 中方表態(tài)

      體育要聞

      不敢放手一搏,你拿什么去爭冠?

      娛樂要聞

      劉燁47歲生日,安娜曬全家福為其慶生

      財經(jīng)要聞

      滬指險守3800點 全市場超百股跌停

      汽車要聞

      "拒絕"豪車稅 新款Panamera盡享版99.8萬元起精準(zhǔn)入局

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

      數(shù)碼
      手機
      本地
      旅游
      公開課

      數(shù)碼要聞

      哈趣Ace1耳夾式耳機:百元預(yù)算撬動全能體驗

      手機要聞

      華為暢享90系列發(fā)布:全系搭載自研麒麟芯片,售價1299元起

      本地新聞

      這里是寶雞 嫽滴很!

      旅游要聞

      寧德中心城區(qū)黃花風(fēng)鈴木盛放 市民打卡醉享金色春光

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關(guān)懷版