<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語言編譯器就可以拋棄了。

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

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

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

      3

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

      當然可能,在開發(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)推薦
      熱點推薦
      大起大落!黃金、白銀價格跳水;多家銀行金條缺貨,專家:不要“賭博式投資”

      大起大落!黃金、白銀價格跳水;多家銀行金條缺貨,專家:不要“賭博式投資”

      每日經(jīng)濟新聞
      2026-01-30 22:48:42
      賀希寧:軍人家庭出身的我非常熱愛祖國,為國效力是我的夢想

      賀希寧:軍人家庭出身的我非常熱愛祖國,為國效力是我的夢想

      懂球帝
      2026-01-30 23:31:14
      金晨拿出手術(shù)記錄,給不相信的人看看,娛樂圈不是沒有先例

      金晨拿出手術(shù)記錄,給不相信的人看看,娛樂圈不是沒有先例

      樂悠悠娛樂
      2026-01-31 11:19:14
      精準狙擊!牢A立下大功!以一人之力,砸爛一個萬億產(chǎn)業(yè)鏈

      精準狙擊!牢A立下大功!以一人之力,砸爛一個萬億產(chǎn)業(yè)鏈

      墨印齋
      2026-01-30 15:59:10
      深交所:部分投資者在“國投白銀LOF”等基金產(chǎn)品交易過程中存在影響基金正常交易秩序的異常交易行為 對相關(guān)投資者采取了暫停交易等自律監(jiān)管措施

      深交所:部分投資者在“國投白銀LOF”等基金產(chǎn)品交易過程中存在影響基金正常交易秩序的異常交易行為 對相關(guān)投資者采取了暫停交易等自律監(jiān)管措施

      財聯(lián)社
      2026-01-30 20:12:10
      女子上大學(xué)時手機失竊,9年后接到法院來電:案件早已告破,退賠1100元

      女子上大學(xué)時手機失竊,9年后接到法院來電:案件早已告破,退賠1100元

      極目新聞
      2026-01-31 12:39:31
      你有“洗屁股”的習(xí)慣嗎?忠告:經(jīng)常清洗肛門,或可帶來4種好處

      你有“洗屁股”的習(xí)慣嗎?忠告:經(jīng)常清洗肛門,或可帶來4種好處

      DrX說
      2026-01-29 14:09:02
      1-2被逆轉(zhuǎn)!中國隊2026年遭首敗,輸球原因曝光,還暴露最大短板

      1-2被逆轉(zhuǎn)!中國隊2026年遭首敗,輸球原因曝光,還暴露最大短板

      侃球熊弟
      2026-01-30 23:30:32
      1983年嚴打后,重刑犯都被遣送大西北,最終是什么結(jié)局?

      1983年嚴打后,重刑犯都被遣送大西北,最終是什么結(jié)局?

      觀史搜尋著
      2025-12-03 22:30:28
      國務(wù)院國資委點名中國移動、中國電信!

      國務(wù)院國資委點名中國移動、中國電信!

      通信頭條
      2026-01-29 21:46:37
      “梅姨案”被拐兒童申聰將結(jié)婚,婚禮在周口老家舉行,父親申軍良:五年時間恍然如昨日

      “梅姨案”被拐兒童申聰將結(jié)婚,婚禮在周口老家舉行,父親申軍良:五年時間恍然如昨日

      瀟湘晨報
      2026-01-31 13:30:45
      “賀嬌龍廳”,即將開放

      “賀嬌龍廳”,即將開放

      極目新聞
      2026-01-31 10:27:52
      大S沉冤得雪!平反之作拿獎,原來床墊才2萬多,撫養(yǎng)費少得可憐!

      大S沉冤得雪!平反之作拿獎,原來床墊才2萬多,撫養(yǎng)費少得可憐!

      古希臘掌管月桂的神
      2026-01-30 15:36:09
      高人預(yù)測:如果不出意外,2026年樓市將迎來3個“趨勢”,太真實

      高人預(yù)測:如果不出意外,2026年樓市將迎來3個“趨勢”,太真實

      蜉蝣說
      2026-01-31 15:04:33
      浙江衛(wèi)視炸了!7000萬網(wǎng)紅怒懟評委:你15年沒歌憑啥說我?

      浙江衛(wèi)視炸了!7000萬網(wǎng)紅怒懟評委:你15年沒歌憑啥說我?

      不寫散文詩
      2026-01-30 12:16:42
      故宮為何一到下午5點就早早關(guān)門?1959年的沉痛教訓(xùn),至今不能忘

      故宮為何一到下午5點就早早關(guān)門?1959年的沉痛教訓(xùn),至今不能忘

      云霄紀史觀
      2026-01-31 11:03:46
      女子剛買新能源車,70公里充了3次電,4S店:沒問題,就電沒充滿

      女子剛買新能源車,70公里充了3次電,4S店:沒問題,就電沒充滿

      奇思妙想草葉君
      2026-01-30 23:41:29
      泰倫盧提前4分18秒投降!哈登三節(jié)25+9苦撐 小卡低頭沮喪下場觀賽

      泰倫盧提前4分18秒投降!哈登三節(jié)25+9苦撐 小卡低頭沮喪下場觀賽

      顏小白的籃球夢
      2026-01-31 12:22:42
      貴州老人山東旅游時被民宿瓷磚砸傷腳沒索賠,半年后收到民宿老板寄來一大箱海產(chǎn),當事人女兒:感受到了“好客山東”,已寄出本地特產(chǎn)回禮

      貴州老人山東旅游時被民宿瓷磚砸傷腳沒索賠,半年后收到民宿老板寄來一大箱海產(chǎn),當事人女兒:感受到了“好客山東”,已寄出本地特產(chǎn)回禮

      極目新聞
      2026-01-30 20:01:44
      別慌,這次不一樣!專家解析黃金、白銀史詩級暴跌背后

      別慌,這次不一樣!專家解析黃金、白銀史詩級暴跌背后

      鳳凰網(wǎng)財經(jīng)
      2026-01-31 15:09:38
      2026-01-31 15:35:00
      碼農(nóng)翻身 incentive-icons
      碼農(nóng)翻身
      有趣且硬核的技術(shù)文章
      224文章數(shù) 620關(guān)注度
      往期回顧 全部

      科技要聞

      中國車企和特斯拉的下一戰(zhàn),戰(zhàn)場已定

      頭條要聞

      鄭麗文:國民黨若重返執(zhí)政 將推動簽署"兩岸和平框架"

      頭條要聞

      鄭麗文:國民黨若重返執(zhí)政 將推動簽署"兩岸和平框架"

      體育要聞

      “假賭黑”的子彈,還要再飛一會兒嗎?

      娛樂要聞

      成龍入駐小紅書,懟臉近照沒有老年斑

      財經(jīng)要聞

      白銀,暴跌!黃金,40年最大跌幅!

      汽車要聞

      新款賓利歐陸GT S/GTC S官圖發(fā)布 V8混動加持

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

      房產(chǎn)
      旅游
      本地
      公開課
      軍事航空

      房產(chǎn)要聞

      藏不住的小城大事,海澄新城執(zhí)掌自貿(mào)港風口,進階兌現(xiàn)美好生活新篇

      旅游要聞

      棗莊:冬霧鎖翠巒 深林藏野趣

      本地新聞

      云游中國|撥開云霧,巫山每幀都是航拍大片

      公開課

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

      軍事要聞

      轟-6k在黃巖島戰(zhàn)備警巡示意圖公布

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