分(fēn)享到:

編程語言的進化方向

日(rì)期:2016-11-28 14:37:00     閱讀(dú):518     文章(zhāng)來(lái)源:源美網絡     标簽:深圳網站(zhàn)建設,深圳網頁設計(jì),企業網站(zhàn)建設

從(cóng)過去(qù)編程語言的曆史中,我們可(kě)以看(kàn)出編程語言是在不斷試錯的過程中發展起來(lái)的。有很多編程語言已經消亡,僅僅在曆史中留下了它們的名字,但(dàn)其中所包含的思想,卻被後來(lái)的語言以不同的形式吸取和借鑒。


例如(rú),SNOBOL 的字符串處理(lǐ)功能,可(kě)以說(shuō)是現代腳本語言基本功能的祖先。此外,20 世紀 70 年(nián)代由美國(guó)麻省理(lǐ)工(gōng)學院(MIT)開發的一種名爲 CLU 的語言中叠代器(Iterator)的概念,也被 Ruby 以代碼塊(Block)的形式繼承了下來(lái)。


從(cóng)編程語言的進化過程來(lái)看(kàn),一個顯著的關鍵詞就(jiù)是“抽象化”。抽象化就(jiù)是提供一個抽象的概念,使用者即便不具備關于其内部詳細情況的知識,也能夠對其進行運用。由于不必了解其内部的情況,因此也被稱爲“黑(hēi)箱化”。


一些古老的編程語言,例如(rú) BASIC 就(jiù)沒有實現充分(fēn)的抽象化。雖然它提供了用于過程共享的子程序這個概念,但(dàn)是子程序隻能通過編号來(lái)調用,而且不能傳遞參數。由于“賦予名稱”是抽象化的重要部分(fēn),所以說(shuō)它的抽象化是不充分(fēn)的。近代的編程語言中,都(dōu)可(kě)以爲一系列過程(程序)賦予相(xiàng)應的名稱。


然而,僅僅将過程進行抽象化還(hái)遠(yuǎn)遠(yuǎn)不夠。幾乎所有的過程都(dōu)需要進行一定的輸入輸出操作(zuò),而并不是與數據無關的。因此,在下一個階段中,對數據進行黑(hēi)箱化就(jiù)顯得(de)非常重要。剛才我們提到的 CLU,就(jiù)是數據抽象化出現早期的一種語言。


在數據抽象化的延長線上,就(jiù)自(zì)然而然産生(shēng)了面向對象編程的概念。所謂對象,就(jiù)是抽象化的數據本身(shēn),因此面向對象和數據抽象化之間僅僅隔了薄薄的一張紙。在現在的 21 世紀編程語言中,面向對象已經是常識了,最近幾乎所有的語言都(dōu)或多或少地提供了面向對象的能力。當然,其中也有一些語言故意不提供對面向對象的支持。


随着抽象化的不斷深入,程序員(yuán)即便不去(qù)關心内部的詳細情況,也可(kě)以編寫出程序。人(rén)類一次所能掌握的概念數量是有限的,有說(shuō)法稱,大(dà)部分(fēn)人(rén)一次隻能駕馭 7±2 個左右的概念。這樣一來(lái),如(rú)果能夠讓問(wèn)題的處理(lǐ)方式更加抽象,也就(jiù)可(kě)以解決更複雜的問(wèn)題。


受摩爾定律的影(yǐng)響,社會對于軟件(jiàn)也提出了越來(lái)越高的要求。人(rén)類社會越來(lái)越依賴計(jì)算機(jī),因此就(jiù)需要開發出更多更可(kě)靠、更便宜的軟件(jiàn)。


在講述軟件(jiàn)開發的一本名著《人(rén)月神話(huà)》中,作(zuò)者弗雷德裡(lǐ)克·布魯克斯寫道:

無論使用什麽編程語言,生(shēng)産一條基本語句所需要的工(gōng)數幾乎是一定的。


也就(jiù)是說(shuō),如(rú)果要描述同樣的算法,A 語言需要 1000 行,B 語言隻需要 10 行的話(huà),隻要采用 B 語言生(shēng)産效率就(jiù)可(kě)以提高 100 倍。


可(kě)能有人(rén)會覺得(de)“這太扯了吧(ba)”。打個比方,用 Java 和 Ruby 描述同樣的算法,語句行數相(xiàng)差 2 倍多也不稀奇,如(rú)果是彙編語言和 Ruby 相(xiàng)比的話(huà),也許能産生(shēng) 100 倍甚至 1000 倍的差距。


能産生(shēng)這樣的生(shēng)産效率差異,正是抽象化的力量。抽象度高的編程語言不必描述詳細過程,從(cóng)而可(kě)以用簡短(duǎn)的代碼達到目的。和抽象化程度的差異相(xiàng)比,變量名稱、有沒有指定數據類型之類的都(dōu)隻能算是誤差級别的差異而已。



文章(zhāng)引用:

本站(zhàn)文章(zhāng)爲深圳網站(zhàn)建設·源美網絡原創策劃,如(rú)有版權糾紛或者違規問(wèn)題,請(qǐng)聯系我們删除,謝謝!

上一篇: 網站(zhàn)建設和CSS樣式對于關鍵字優化的要點說(shuō)明

下一篇: 用戶體(tǐ)驗設計(jì)基礎要素

返回列表
最新案例
OUR ADVANTAGE WORKS

售後保障

承諾任何問(wèn)題1小時内解決

數據備份

更安全、更高效、更穩定

價格公道精準

項目經理(lǐ)精準報價不弄虛作(zuò)假

合作(zuò)無風(fēng)險

重合同講信譽,無效全額退款