欧美不卡高清一区二区三区,xxxxx做受大片在线观看免费,一本之道高清无码视频,亚洲爆乳成人无码AAA片漫画

聊城共贏網(wǎng)絡(luò),聊城網(wǎng)站建設(shè)
我們專注:聊城做網(wǎng)站,聊城建網(wǎng)站,聊城網(wǎng)站建設(shè),網(wǎng)站制作,虛擬主機(jī),域名注冊(cè),網(wǎng)站推廣等。聯(lián)系電話:15066359825 點(diǎn)擊這里給我發(fā)消息
最新公告 行業(yè)資訊  
當(dāng)前位置:首頁(yè) --> 問(wèn)題 --> 常見(jiàn)問(wèn)題
C語(yǔ)言本身是用什么語(yǔ)言寫(xiě)的?聊城小程序開(kāi)發(fā)公司
發(fā)布時(shí)間:2019/10/16 15:45:17
這是來(lái)自我的星球的一個(gè)提問(wèn):“C語(yǔ)言本身用什么語(yǔ)言寫(xiě)的?”

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


我們假設(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ě)的。




關(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源碼,終于找到了登錄的后門(mén),清理后門(mén)以后編譯Unix , 運(yùn)行,可是Thompson 還是能夠登錄進(jìn)去。

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

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

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

說(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。







可能有人問(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ǔ)言。
銷售部 點(diǎn)擊這里給我發(fā)消息
技術(shù)部
點(diǎn)擊這里給我發(fā)消息
售后服務(wù) 點(diǎn)擊這里給我發(fā)消息
公司電話(傳真) 15066359825
聊城建網(wǎng)站首頁(yè)   公司簡(jiǎn)介   網(wǎng)站建設(shè)   虛擬主機(jī)   域名注冊(cè)   網(wǎng)站推廣   公司資訊   成功案例   服務(wù)中心   聯(lián)系我們  網(wǎng)站地圖
版權(quán)所有 2008-2009 共贏網(wǎng)絡(luò) www.lzbwfk.cn 公司地址:聊城市利民東路 郵編:252000
銷售熱線:15066359825 技術(shù)支持:QQ:297369059 銷售在線服務(wù): QQ:914082597
網(wǎng)站建設(shè)公司專業(yè)從事:聊城做網(wǎng)站,聊城建網(wǎng)站,聊城網(wǎng)站建設(shè),聊城網(wǎng)站制作,虛擬主機(jī),域名注冊(cè),網(wǎng)站推廣等服務(wù)
聊城共贏網(wǎng)絡(luò)  
分公司:臨清網(wǎng)站建設(shè)、陽(yáng)谷網(wǎng)站建設(shè)、高唐網(wǎng)站建設(shè)、茌平網(wǎng)站建設(shè)東阿網(wǎng)站建設(shè)、冠縣網(wǎng)站建設(shè)、莘縣網(wǎng)站建設(shè)