分享到:

        編程語言的進化方向

        日期:2016-11-28 14:37:00     閱讀:447     文章來源:源美設計     標簽:深圳網站建設,深圳網頁設計,企業網站建設

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


        例如,SNOBOL 的字符串處理功能,可以說是現代腳本語言基本功能的祖先。此外,20 世紀 70 年代由美國麻省理工學院(MIT)開發的一種名為 CLU 的語言中迭代器(Iterator)的概念,也被 Ruby 以代碼塊(Block)的形式繼承了下來。


        從編程語言的進化過程來看,一個顯著的關鍵詞就是“抽象化”。抽象化就是提供一個抽象的概念,使用者即便不具備關于其內部詳細情況的知識,也能夠對其進行運用。由于不必了解其內部的情況,因此也被稱為“黑箱化”。


        一些古老的編程語言,例如 BASIC 就沒有實現充分的抽象化。雖然它提供了用于過程共享的子程序這個概念,但是子程序只能通過編號來調用,而且不能傳遞參數。由于“賦予名稱”是抽象化的重要部分,所以說它的抽象化是不充分的。近代的編程語言中,都可以為一系列過程(程序)賦予相應的名稱。


        然而,僅僅將過程進行抽象化還遠遠不夠。幾乎所有的過程都需要進行一定的輸入輸出操作,而并不是與數據無關的。因此,在下一個階段中,對數據進行黑箱化就顯得非常重要。剛才我們提到的 CLU,就是數據抽象化出現早期的一種語言。


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


        隨著抽象化的不斷深入,程序員即便不去關心內部的詳細情況,也可以編寫出程序。人類一次所能掌握的概念數量是有限的,有說法稱,大部分人一次只能駕馭 7±2 個左右的概念。這樣一來,如果能夠讓問題的處理方式更加抽象,也就可以解決更復雜的問題。


        受摩爾定律的影響,社會對于軟件也提出了越來越高的要求。人類社會越來越依賴計算機,因此就需要開發出更多更可靠、更便宜的軟件。


        在講述軟件開發的一本名著《人月神話》中,作者弗雷德里克·布魯克斯寫道:

        無論使用什么編程語言,生產一條基本語句所需要的工數幾乎是一定的。


        也就是說,如果要描述同樣的算法,A 語言需要 1000 行,B 語言只需要 10 行的話,只要采用 B 語言生產效率就可以提高 100 倍。


        可能有人會覺得“這太扯了吧”。打個比方,用 Java 和 Ruby 描述同樣的算法,語句行數相差 2 倍多也不稀奇,如果是匯編語言和 Ruby 相比的話,也許能產生 100 倍甚至 1000 倍的差距。


        能產生這樣的生產效率差異,正是抽象化的力量。抽象度高的編程語言不必描述詳細過程,從而可以用簡短的代碼達到目的。和抽象化程度的差異相比,變量名稱、有沒有指定數據類型之類的都只能算是誤差級別的差異而已。



        文章引用:http://www.cqsc.net.cn/new/172.html

        本站文章為深圳網站建設·源美設計原創策劃,如有版權糾紛或者違規問題,請聯系我們刪除,謝謝!

        上一篇: 網站建設和CSS樣式對于關鍵字優化的要點說明

        下一篇: 用戶體驗設計基礎要素

        返回列表
        最新案例
        OUR ADVANTAGE WORKS

        售后保障

        承諾任何問題1小時內解決

        數據備份

        更安全、更高效、更穩定

        價格公道精準

        項目經理精準報價不弄虛作假

        合作無風險

        重合同講信譽,無效全額退款
        夫妻性姿势真人示范 - 视频 - 在线观看 - 影视资讯 - 品尚网