久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

CPU是怎么看懂代碼的,?

 山峰云繞 2020-03-30

https://m./group/6795372617592209927/?app=news_article&timestamp=1585579742&req_id=20200330224901010129034027038B65F9&group_id=6795372617592209927


備注:這是我問(wèn)答內(nèi)容的一個(gè)精編版,增加了一些內(nèi)容,,所以和原內(nèi)容略有不同,。

去年底,有中國(guó)開(kāi)發(fā)者已經(jīng)開(kāi)發(fā)出文言文編程語(yǔ)言,,并在GitHub上摘得了5500星,,在國(guó)內(nèi)引起不小反響。這件事給普通人的印象是,,科技發(fā)展日新月異,,電腦CPU太厲害,都能讀懂文言文了,!

CPU真的能看懂文言文代碼嗎,?答案是CPU既看不懂文言文代碼,也看不懂英文代碼,。

現(xiàn)在的CPU晶體管數(shù)量動(dòng)輒幾十億個(gè),,結(jié)構(gòu)非常復(fù)雜,但內(nèi)部傳輸?shù)男盘?hào)只有兩種:高電壓和低電壓,,分別代表數(shù)字信號(hào)“1”和“0”(也有相反的),,因此CPU唯一能看懂的就是由“1”和“0”組成的代碼。

由于程序(代碼)存儲(chǔ)在電腦硬盤(pán)中時(shí),,也是“1”和“0”的形式,,是否就意味著,只要程序存到硬盤(pán)中,,CPU就能認(rèn)識(shí)呢,?

答案是CPU仍然看不懂這些程序,,因?yàn)橐浴?”和“0”位模式存儲(chǔ)的程序和以“1”和“0”寫(xiě)成的機(jī)器語(yǔ)言完全是兩回事,簡(jiǎn)單說(shuō),,兩者的區(qū)別類(lèi)似于漢語(yǔ)書(shū)和英語(yǔ)書(shū)都用紙和油墨印制,,但依然是兩種不同的語(yǔ)言,不會(huì)英語(yǔ)的依然看不懂英語(yǔ)書(shū),。

機(jī)器語(yǔ)言是CPU唯一能看懂的語(yǔ)言,也是第一代編程語(yǔ)言,。

圖片說(shuō)明:早期的計(jì)算機(jī)程序員使用機(jī)器語(yǔ)言編程,,將用0和1數(shù)字編成的程序代碼打在紙帶或卡片上(打孔代表1,不打孔代表0),,再將它通過(guò)紙帶機(jī)或卡片機(jī)輸入計(jì)算機(jī),,進(jìn)行運(yùn)算。


機(jī)器語(yǔ)言的最大特點(diǎn)是面向計(jì)算機(jī)硬件編程,,簡(jiǎn)單說(shuō)就是程序員需要通曉計(jì)算機(jī)硬件知識(shí),,寫(xiě)的程序要真實(shí)表示數(shù)據(jù)是如何被計(jì)算機(jī)操縱的。對(duì)程序員來(lái)說(shuō)這就比較頭大,,一方面不僅需要通曉計(jì)算機(jī)硬件知識(shí),,另一方面如果計(jì)算機(jī)使用了不同的硬件,那么就得重新編程,。

畢竟上得了“廳堂”(搞掂硬件)下得了“廚房”(玩得轉(zhuǎn)軟件),,只有少數(shù)大神能做到,加上機(jī)器語(yǔ)言純用“0”和“1”序列組成,,非常單調(diào)枯燥,,不僅扼殺了編程的趣味,而且對(duì)視力也是一種考驗(yàn),,稍微一眼花,,看錯(cuò)1或0的排列位置,就會(huì)制造一個(gè)大BUG,。

于是,,有一幫人開(kāi)始琢磨了:能不能將計(jì)算機(jī)硬件從編程中分離出來(lái),讓硬件知識(shí)小白也能編程,?

最先開(kāi)竅的是藍(lán)色巨人IBM,,它在其System/360計(jì)算機(jī)中引入了ISA(Instruction Set Architecture)概念,將編程所需要了解的硬件信息從硬件中抽象出來(lái),,這樣編程人員就可以面向ISA編程,。由于ISA是用來(lái)描述編程時(shí)用到的抽象機(jī)器(不是具體的電腦CPU),包括了一套指令集和一些寄存器,,因此,,程序員只要知道ISA,,不需要了解具體的硬件知識(shí),就可以編寫(xiě)程序,,在ISA相同的電腦上運(yùn)行,。

這樣一來(lái),就出現(xiàn)了匯編語(yǔ)言,,但匯編語(yǔ)言用符號(hào)寫(xiě)成,,還是不夠接地氣兒,于是高級(jí)語(yǔ)言就誕生了,。高級(jí)語(yǔ)言的誕生,,使程序員將精力從復(fù)雜的計(jì)算機(jī)結(jié)構(gòu)轉(zhuǎn)移到要解決的問(wèn)題,從而可以專(zhuān)心烹調(diào)程序大餐,。

由此也可以看出,,現(xiàn)在的程序員并不都是了解計(jì)算機(jī)硬件的,所以妹子們不要指望自己的程序員男朋友給你DIY電腦,,或者電腦壞了,,他能給你省下一筆修理費(fèi)。他說(shuō)不會(huì)修,,那就是真的不會(huì)修,。

自從高級(jí)語(yǔ)言出現(xiàn)后,人類(lèi)開(kāi)始了在編程語(yǔ)言上的放飛自我,,經(jīng)過(guò)數(shù)十年的發(fā)明創(chuàng)造,,現(xiàn)在的高級(jí)編程語(yǔ)言已超過(guò)2500種,像比較知名的C++和Java等,,都屬于高級(jí)語(yǔ)言,。

極客漫畫(huà)《編程語(yǔ)言之戰(zhàn)》,展示的是高級(jí)編程語(yǔ)言之間的市場(chǎng)競(jìng)爭(zhēng),,也揭示了高級(jí)編程語(yǔ)言多如牛毛,。

但問(wèn)題出現(xiàn)了,CPU能理解的機(jī)器語(yǔ)言還是那個(gè)機(jī)器語(yǔ)言,,幾十年來(lái)沒(méi)有變化,,讓它讀懂高級(jí)語(yǔ)言那是不可能的。

怎么辦,?

其實(shí),,早在高級(jí)語(yǔ)言出現(xiàn)之前的匯編語(yǔ)言時(shí)代,聰明的計(jì)算機(jī)研發(fā)人員就開(kāi)發(fā)出了專(zhuān)門(mén)的程序,,用來(lái)將匯編語(yǔ)言和高級(jí)語(yǔ)言翻譯成機(jī)器語(yǔ)言,,其過(guò)程相當(dāng)于將英語(yǔ)名著翻譯成漢語(yǔ)著作。

說(shuō)白了,,這種翻譯程序相當(dāng)于人類(lèi)中的翻譯家,。

翻譯程序有兩種工作方法:編譯和解釋?zhuān)鄳?yīng)的程序名稱(chēng)是編譯器和解釋器,。兩者的區(qū)別是,編譯是在執(zhí)行前把整個(gè)源程序(高級(jí)語(yǔ)言程序)翻譯成目標(biāo)程序(機(jī)器語(yǔ)言程序),,而解釋是一次只翻譯和執(zhí)行源程序中的一行,。

打個(gè)形象的比方,解釋器相當(dāng)于發(fā)布會(huì)的實(shí)時(shí)翻譯,,演講的嘉賓說(shuō)一句,,實(shí)時(shí)翻譯馬上翻譯一句。編譯器則相當(dāng)于著作翻譯家,,整本翻譯完成后,,再讓出版社印刷上市。

經(jīng)過(guò)翻譯程序的努力,,現(xiàn)在CPU能看懂程序員寫(xiě)的程序了,。當(dāng)然,,用開(kāi)頭提到的文言文編程語(yǔ)言編寫(xiě)的程序想要讓CPU看懂,,還得多一道翻譯步驟,即要么翻譯成Javascript,,要么翻譯成Python,。多轉(zhuǎn)了一圈,不知道程序執(zhí)行效率如何,。

由于CPU不能直接理解用高級(jí)語(yǔ)言寫(xiě)成的代碼,,必須依賴(lài)翻譯程序翻譯成機(jī)器語(yǔ)言,因此翻譯程序可以極大地影響甚至決定處理器性能的發(fā)揮,。如果沒(méi)有一個(gè)好的翻譯程序,,那么CPU的性能再?gòu)?qiáng)大,也好比茶壺裝的餃子,,倒不出來(lái),。

正因?yàn)槿绱耍雀柙诎沧?.4之后,,拋棄了Dalvik虛擬機(jī),,改為ART,實(shí)際是將翻譯程序從解釋器切換到編譯器,,發(fā)揮了芯片的性能,,提高了程序運(yùn)行效率。

現(xiàn)在,,手機(jī)大廠(chǎng)包括華為,、OPPO和vivo都開(kāi)始重視編譯器開(kāi)發(fā),說(shuō)到底就是為了發(fā)揮芯片性能,,讓它不再成為倒不出餃子的茶壺,。

最后總結(jié)一下,,用翻譯程序把程序員編寫(xiě)的程序翻譯成二進(jìn)制代碼的機(jī)器語(yǔ)言后,CPU就能看懂代碼了,,而且翻譯程序的優(yōu)劣可以影響乃至決定CPU性能發(fā)揮,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶(hù)發(fā)布,,不代表本站觀(guān)點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶(hù) 評(píng)論公約

    類(lèi)似文章 更多