汉中舜倭家庭服务有限公司

分享到:

編程語(yǔ)言的進(jìn)化方向

日期:2016-11-28 14:37:00     閱讀:527     文章來(lái)源:源美網(wǎng)絡(luò)     標(biāo)簽:深圳網(wǎng)站建設(shè),深圳網(wǎng)頁(yè)設(shè)計(jì),企業(yè)網(wǎng)站建設(shè)

從過(guò)去編程語(yǔ)言的歷史中,我們可以看出編程語(yǔ)言是在不斷試錯(cuò)的過(guò)程中發(fā)展起來(lái)的。有很多編程語(yǔ)言已經(jīng)消亡,僅僅在歷史中留下了它們的名字,但其中所包含的思想,卻被后來(lái)的語(yǔ)言以不同的形式吸取和借鑒。


例如,SNOBOL 的字符串處理功能,可以說(shuō)是現(xiàn)代腳本語(yǔ)言基本功能的祖先。此外,20 世紀(jì) 70 年代由美國(guó)麻省理工學(xué)院(MIT)開(kāi)發(fā)的一種名為 CLU 的語(yǔ)言中迭代器(Iterator)的概念,也被 Ruby 以代碼塊(Block)的形式繼承了下來(lái)。


從編程語(yǔ)言的進(jìn)化過(guò)程來(lái)看,一個(gè)顯著的關(guān)鍵詞就是“抽象化”。抽象化就是提供一個(gè)抽象的概念,使用者即便不具備關(guān)于其內(nèi)部詳細(xì)情況的知識(shí),也能夠?qū)ζ溥M(jìn)行運(yùn)用。由于不必了解其內(nèi)部的情況,因此也被稱(chēng)為“黑箱化”。


一些古老的編程語(yǔ)言,例如 BASIC 就沒(méi)有實(shí)現(xiàn)充分的抽象化。雖然它提供了用于過(guò)程共享的子程序這個(gè)概念,但是子程序只能通過(guò)編號(hào)來(lái)調(diào)用,而且不能傳遞參數(shù)。由于“賦予名稱(chēng)”是抽象化的重要部分,所以說(shuō)它的抽象化是不充分的。近代的編程語(yǔ)言中,都可以為一系列過(guò)程(程序)賦予相應(yīng)的名稱(chēng)。


然而,僅僅將過(guò)程進(jìn)行抽象化還遠(yuǎn)遠(yuǎn)不夠。幾乎所有的過(guò)程都需要進(jìn)行一定的輸入輸出操作,而并不是與數(shù)據(jù)無(wú)關(guān)的。因此,在下一個(gè)階段中,對(duì)數(shù)據(jù)進(jìn)行黑箱化就顯得非常重要。剛才我們提到的 CLU,就是數(shù)據(jù)抽象化出現(xiàn)早期的一種語(yǔ)言。


在數(shù)據(jù)抽象化的延長(zhǎng)線(xiàn)上,就自然而然產(chǎn)生了面向?qū)ο缶幊痰母拍睢K^對(duì)象,就是抽象化的數(shù)據(jù)本身,因此面向?qū)ο蠛蛿?shù)據(jù)抽象化之間僅僅隔了薄薄的一張紙。在現(xiàn)在的 21 世紀(jì)編程語(yǔ)言中,面向?qū)ο笠呀?jīng)是常識(shí)了,最近幾乎所有的語(yǔ)言都或多或少地提供了面向?qū)ο蟮哪芰?。?dāng)然,其中也有一些語(yǔ)言故意不提供對(duì)面向?qū)ο蟮闹С帧?/p>


隨著抽象化的不斷深入,程序員即便不去關(guān)心內(nèi)部的詳細(xì)情況,也可以編寫(xiě)出程序。人類(lèi)一次所能掌握的概念數(shù)量是有限的,有說(shuō)法稱(chēng),大部分人一次只能駕馭 7±2 個(gè)左右的概念。這樣一來(lái),如果能夠讓問(wèn)題的處理方式更加抽象,也就可以解決更復(fù)雜的問(wèn)題。


受摩爾定律的影響,社會(huì)對(duì)于軟件也提出了越來(lái)越高的要求。人類(lèi)社會(huì)越來(lái)越依賴(lài)計(jì)算機(jī),因此就需要開(kāi)發(fā)出更多更可靠、更便宜的軟件。


在講述軟件開(kāi)發(fā)的一本名著《人月神話(huà)》中,作者弗雷德里克·布魯克斯寫(xiě)道:

無(wú)論使用什么編程語(yǔ)言,生產(chǎn)一條基本語(yǔ)句所需要的工數(shù)幾乎是一定的。


也就是說(shuō),如果要描述同樣的算法,A 語(yǔ)言需要 1000 行,B 語(yǔ)言只需要 10 行的話(huà),只要采用 B 語(yǔ)言生產(chǎn)效率就可以提高 100 倍。


可能有人會(huì)覺(jué)得“這太扯了吧”。打個(gè)比方,用 Java 和 Ruby 描述同樣的算法,語(yǔ)句行數(shù)相差 2 倍多也不稀奇,如果是匯編語(yǔ)言和 Ruby 相比的話(huà),也許能產(chǎn)生 100 倍甚至 1000 倍的差距。


能產(chǎn)生這樣的生產(chǎn)效率差異,正是抽象化的力量。抽象度高的編程語(yǔ)言不必描述詳細(xì)過(guò)程,從而可以用簡(jiǎn)短的代碼達(dá)到目的。和抽象化程度的差異相比,變量名稱(chēng)、有沒(méi)有指定數(shù)據(jù)類(lèi)型之類(lèi)的都只能算是誤差級(jí)別的差異而已。



文章引用:http://m.xhjcyz.com/new/172.html

本站文章為深圳網(wǎng)站建設(shè)·源美網(wǎng)絡(luò)原創(chuàng)策劃,如有版權(quán)糾紛或者違規(guī)問(wèn)題,請(qǐng)聯(lián)系我們刪除,謝謝!

上一篇: 網(wǎng)站建設(shè)和CSS樣式對(duì)于關(guān)鍵字優(yōu)化的要點(diǎn)說(shuō)明

下一篇: 用戶(hù)體驗(yàn)設(shè)計(jì)基礎(chǔ)要素

返回列表
最新案例
OUR ADVANTAGE WORKS

售后保障

承諾任何問(wèn)題1小時(shí)內(nèi)解決

數(shù)據(jù)備份

更安全、更高效、更穩(wěn)定

價(jià)格公道精準(zhǔn)

項(xiàng)目經(jīng)理精準(zhǔn)報(bào)價(jià)不弄虛作假

合作無(wú)風(fēng)險(xiǎn)

重合同講信譽(yù),無(wú)效全額退款