溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

web編程語(yǔ)言的進(jìn)化史是什么

發(fā)布時(shí)間:2022-02-15 15:54:42 來(lái)源:億速云 閱讀:161 作者:iii 欄目:開(kāi)發(fā)技術(shù)

今天小編給大家分享一下web編程語(yǔ)言的進(jìn)化史是什么的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來(lái)了解一下吧。

web編程語(yǔ)言的進(jìn)化史是什么

機(jī)器語(yǔ)言(Machine Language)

機(jī)器語(yǔ)言是面向機(jī)器的語(yǔ)言,每一個(gè)由機(jī)器語(yǔ)言所編寫(xiě)的程序只適用于某種特定類(lèi)型的計(jì)算機(jī),即指令代碼通常隨CPU型號(hào)的不同而不同。它可以被計(jì)算機(jī)硬件直接識(shí)別,不需要翻譯。一句機(jī)器語(yǔ)言實(shí)際上就是一條機(jī)器指令,它由操作碼和地址碼組成。機(jī)器指令的形式是用0、1組成的二進(jìn)制代碼串。

匯編語(yǔ)言(Assemble Language)

匯編語(yǔ)言是一種面向機(jī)器的程序設(shè)計(jì)語(yǔ)言,它是為特定的計(jì)算機(jī)或計(jì)算機(jī)系列設(shè)計(jì)的。匯編語(yǔ)言采用一定的助記符號(hào)表示機(jī)器語(yǔ)言中指令和數(shù)據(jù),即用助記符號(hào)代替了二進(jìn)制形式的機(jī)器指令。這種替代使得機(jī)器語(yǔ)言“符號(hào)化”,所以匯編語(yǔ)言也是符號(hào)語(yǔ)言。每條匯編語(yǔ)言的指令就對(duì)應(yīng)了一條機(jī)器語(yǔ)言的代碼,不同型號(hào)的計(jì)算機(jī)系統(tǒng)一般有不同的匯編語(yǔ)言。

計(jì)算機(jī)硬件只能識(shí)別機(jī)器指令,執(zhí)行機(jī)器指令,對(duì)于用助記符表示的匯編指令是不能執(zhí)行的。匯編語(yǔ)言編寫(xiě)的程序要執(zhí)行的話(huà),必須用一個(gè)程序?qū)R編語(yǔ)言翻譯成機(jī)器語(yǔ)言程序,用于翻譯的程序稱(chēng)為匯編程序(匯編系統(tǒng))。

匯編程序是將用符號(hào)表示的匯編指令碼翻譯成為與之對(duì)應(yīng)的機(jī)器語(yǔ)言指令碼。用匯編語(yǔ)言編寫(xiě)的程序稱(chēng)為源程序,變換后得到的機(jī)器語(yǔ)言程序稱(chēng)為目標(biāo)程序。

高級(jí)語(yǔ)言

機(jī)器語(yǔ)言與匯編語(yǔ)言受機(jī)器限制費(fèi)工費(fèi)時(shí),并且缺乏通用性,為解決此問(wèn)題,人們努力創(chuàng)造一種獨(dú)立于計(jì)算機(jī)的語(yǔ)言。從20世紀(jì)50年代中期開(kāi)始到20世紀(jì)70年代陸續(xù)產(chǎn)生了許多高級(jí)算法語(yǔ)言。這些算法語(yǔ)言中的數(shù)據(jù)用十進(jìn)制來(lái)表示,語(yǔ)句用較為接近自然語(yǔ)言的英文字來(lái)表示。它們比較接近于人們習(xí)慣用的自然語(yǔ)言和數(shù)學(xué)表達(dá)式,因此稱(chēng)為高級(jí)語(yǔ)言。高級(jí)語(yǔ)言具有較大的通用性,尤其是有些標(biāo)準(zhǔn)版本的高級(jí)算法語(yǔ)言,在國(guó)際上都是通用的。用高級(jí)語(yǔ)言編寫(xiě)的程序能使用在不同的計(jì)算機(jī)系統(tǒng)上。 但是,對(duì)于高級(jí)語(yǔ)言編寫(xiě)的程序計(jì)算機(jī)是不能識(shí)別和執(zhí)行的。要執(zhí)行高級(jí)語(yǔ)言編寫(xiě)的程序,首先要將高級(jí)語(yǔ)言編寫(xiě)的程序翻譯成計(jì)算機(jī)能識(shí)別和執(zhí)行的二進(jìn)制機(jī)器指令,然后供計(jì)算機(jī)執(zhí)行。

一般將用高級(jí)語(yǔ)言編寫(xiě)的程序稱(chēng)為“源程序”,而把由源程序翻譯成的機(jī)器語(yǔ)言程序或匯編語(yǔ)言程序稱(chēng)為“目標(biāo)程序”。把用來(lái)編寫(xiě)源程序的高級(jí)語(yǔ)言或匯編語(yǔ)言稱(chēng)為源語(yǔ)言,而把和目標(biāo)程序相對(duì)應(yīng)的語(yǔ)言(匯編語(yǔ)言或機(jī)器語(yǔ)言)稱(chēng)為目標(biāo)語(yǔ)言。

計(jì)算機(jī)將源程序翻譯成機(jī)器指令時(shí),通常分兩種翻譯方式:一種為“編譯”方式,另一種為“解釋”方式。所謂編譯方式是把源程序翻譯成等價(jià)的目標(biāo)程序,然后再執(zhí)行此目標(biāo)程序。而解釋方式是把源程序逐句翻譯,翻譯一句執(zhí)行一句,邊翻譯邊執(zhí)行。解釋程序不產(chǎn)生將被執(zhí)行的目標(biāo)程序,而是借助于解釋程序直接執(zhí)行源程序本身。一般將高級(jí)語(yǔ)言程序翻譯成匯編語(yǔ)言或機(jī)器語(yǔ)言的程序稱(chēng)為編譯程序。

一般來(lái)講高級(jí)語(yǔ)言和低級(jí)語(yǔ)言有一下特點(diǎn)

高級(jí)語(yǔ)言:實(shí)現(xiàn)效率高,執(zhí)行效率低,對(duì)硬件的可控性弱,目標(biāo)代碼大,可維護(hù)性好,可移植性好

低級(jí)語(yǔ)言:實(shí)現(xiàn)效率低,執(zhí)行效率高,對(duì)硬件的可控性強(qiáng),目標(biāo)代碼小,可維護(hù)性差,可移植性差

我們都知道CPU運(yùn)行的是二進(jìn)制指令,所有的語(yǔ)言編寫(xiě)的程序最終都要翻譯成二進(jìn)制代碼,但是為什么實(shí)現(xiàn)會(huì)有以上眾多差異呢?下面以C語(yǔ)言為高級(jí)語(yǔ)言代表,匯編語(yǔ)言為低級(jí)語(yǔ)言代表來(lái)解釋一下。越低級(jí)的語(yǔ)言,形式上越接近機(jī)器指令,匯編語(yǔ)言就是與機(jī)器指令一一對(duì)應(yīng)的。而越高級(jí)的語(yǔ)言,一條語(yǔ)句對(duì)應(yīng)的指令數(shù)越多,其中原因就是高級(jí)語(yǔ)言對(duì)底層操作進(jìn)行了抽象和封裝,使編寫(xiě)程序的過(guò)程更符合人類(lèi)的思維習(xí)慣,并且極大了簡(jiǎn)化了人力勞動(dòng)。也就是說(shuō)你用高級(jí)語(yǔ)言寫(xiě)一句,會(huì)被轉(zhuǎn)換成許多底層操作,大部分的工作交給了負(fù)責(zé)轉(zhuǎn)換的機(jī)器(即編譯器),從而人力得到了解放。因?yàn)闄C(jī)器就是用來(lái)為人類(lèi)提供便利的,所以說(shuō)高級(jí)語(yǔ)言的出現(xiàn)是計(jì)算機(jī)發(fā)展的必然結(jié)果。下面重點(diǎn)解釋為何低級(jí)語(yǔ)言的執(zhí)行效率更高:

低級(jí)語(yǔ)言可以通過(guò)控制硬件訪(fǎng)問(wèn)來(lái)優(yōu)化效率

越低級(jí)的語(yǔ)言月接近底層,即控制硬件訪(fǎng)問(wèn)的能力越強(qiáng),對(duì)硬件資源的利用效率越高。比如說(shuō)匯編語(yǔ)言能夠訪(fǎng)問(wèn)寄存器,而C語(yǔ)言就做不到。通過(guò)對(duì)寄存器等硬件的訪(fǎng)問(wèn),我們可以將程序的運(yùn)行效率優(yōu)化到最大,而像C這樣的高級(jí)語(yǔ)言用的最多的是堆棧這樣的內(nèi)存結(jié)構(gòu),訪(fǎng)問(wèn)速度自然不如寄存器了。

高級(jí)語(yǔ)言程序存在工作冗余,有效率損失

各種語(yǔ)言需要通過(guò)編譯器翻譯成機(jī)器碼,不管編譯多么智能和強(qiáng)大,都是會(huì)產(chǎn)生冗余。這里的冗余不是指指令的多少,而是有沒(méi)有做沒(méi)有必要的事情。 產(chǎn)生冗余的多少關(guān)鍵要看語(yǔ)言跟機(jī)器指令之間的耦合度。耦合度越大,編譯器翻譯過(guò)程越簡(jiǎn)單,產(chǎn)生的冗余越少。對(duì)應(yīng)匯編來(lái)書(shū),由于與機(jī)器碼一一對(duì)應(yīng),所以翻譯后基本沒(méi)有冗余。而高級(jí)語(yǔ)言由于進(jìn)行了抽象和封裝,所以與機(jī)器指令間的耦合度較低,因此整個(gè)翻譯過(guò)程較復(fù)雜,因此在高級(jí)語(yǔ)言在具體化的過(guò)程中不可避免會(huì)產(chǎn)生較多的冗余。據(jù)說(shuō)C語(yǔ)言有10%的效率損失。

效率高不高,還取決于程序員水平

一個(gè)差的程序員用匯編寫(xiě)程序,可能存在很多沒(méi)有用的操作,而程序高手用c語(yǔ)言寫(xiě),可以將程序優(yōu)化到最大。最終的結(jié)果可能是匯編的程序跑不過(guò)C語(yǔ)言程序。

總之,完成一項(xiàng)工作的工作量是不變的,機(jī)器做的 多了,人就做的就少了,同時(shí)人對(duì)程序的很多細(xì)節(jié)的控制性也減弱了。各種語(yǔ)言都是在這個(gè)平衡點(diǎn)附近糾結(jié)。從C/C++的注重機(jī)器運(yùn)算效率的優(yōu)化,到C#/JAVA注重開(kāi)發(fā)效率的優(yōu)化。人操作起來(lái)更加方便了,更高效了,代價(jià)就是,機(jī)器要處理的東西更多,運(yùn)算效率被進(jìn)一步壓縮。但是這個(gè)壓縮在許可范圍內(nèi),那么這也是一種進(jìn)步。

以上就是“web編程語(yǔ)言的進(jìn)化史是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

web
AI