久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      多范式的編程語言有哪些

      多范式的編程語言有:1、面向?qū)ο缶幊?,提高軟件的重用性、靈活性和擴展性;2、函數(shù)式編程,以數(shù)學(xué)函數(shù)為編程語言建模的核心的編程范式;3、泛型編程,提供了更高層級的抽象。

      多范式的編程語言有哪些

      多范式的編程語言有:

      概要:

      本文主要講述了三種編程范式——面向?qū)ο缶幊獭⒑瘮?shù)式編程、泛型編程的概念

      編程范式

      編程范式是程序語言背后的思想。代表了程序設(shè)計者認為程序應(yīng)該如何被構(gòu)建和執(zhí)行的看法。常見的編程范式有:過程式,面向?qū)ο螅瘮?shù)式,泛型編程等。

      一些編程語言是專門為某種特定范式設(shè)計的,例如C語言是過程式編程語言;Smalltalk和Java是較純粹的面向?qū)ο缶幊陶Z言;Haskell是純粹的函數(shù)式編程語言。另外一些編程語言和編程范式的關(guān)系并不一一對應(yīng),如Python,Scala,Groovy都支持面向?qū)ο蠛鸵欢ǔ潭壬系暮瘮?shù)式編程。C++是多范式編程語言成功的典范。C++支持和C語言一樣的過程式編程范式,同時也支持面向?qū)ο缶幊谭妒?,STL(Standard Template Library)使C++具有了泛型編程能力。支持多種范式可能是C++直到現(xiàn)在仍然具有強大的生命力的原因之一。

      Swift是一門典型的多范式編程語言,即支持面向?qū)ο缶幊谭妒剑仓С趾瘮?shù)式編程范式,同時還支持泛型編程。Swift支持多種編程范式是由其創(chuàng)造目標決定的。Swift創(chuàng)造的初衷就是提供一門實用的工業(yè)語言。不同于Haskell這類出自大學(xué)和研究機構(gòu)的學(xué)術(shù)性質(zhì)的編程語言。蘋果推出Swift時就帶著著明確的商業(yè)目的:Mac OS和iOS系統(tǒng)的主要編程語言O(shè)bjective-C已顯老態(tài),Swift將使得蘋果系統(tǒng)的開發(fā)者擁有一門更現(xiàn)代的編程語言,從而促進蘋果整個生態(tài)圈的良性發(fā)展。

      Swift的設(shè)計和開發(fā)無不體現(xiàn)著“實用的工業(yè)語言”這一目標。這決定了Swift無法做極端的語言實驗,它需要在理智地面對現(xiàn)實的基礎(chǔ)上,謹慎地尋求突破。這就決定了Swift需要繼承歷史遺產(chǎn),照顧現(xiàn)在大多數(shù)程序員的現(xiàn)實需求,同時面向未來有所發(fā)展。

      1、面向?qū)ο?繼承遺產(chǎn)

      面向?qū)ο缶幊虒ο笞鳛槌绦虻幕締卧瑢⒊绦蚝蛿?shù)據(jù)封裝其中,以提高軟件的重用性、靈活性和擴展性。

      面向?qū)ο缶幊痰暮诵母拍睿?/p>

      • 多態(tài),指由繼承而產(chǎn)生的相關(guān)的不同的類,其對象對同一消息會做出不同的響應(yīng);

      • 繼承,在某種情況下,一個類會有“子類”。子類比原本的類(稱為父類)要更加具體化;

      • 封裝,面向?qū)ο蟪绦蛟O(shè)計隱藏了某一方法的具體執(zhí)行步驟,取而代之的是通過消息傳遞機制傳送消息給它。

      以對象構(gòu)建程序的基本單元的面向?qū)ο缶幊陶Z言中。多態(tài)提供了更高的抽象能力,使得我們可以設(shè)計出更通用的程序。繼承提供了一種復(fù)用代碼的方法。封裝提供一種使用其他代碼更為便捷安全的機制。

      現(xiàn)在絕大部分程序員的工作語言仍然是面向?qū)ο缶幊陶Z言。大部分流行的現(xiàn)代編程語言都會允許你創(chuàng)建對象。使用面向?qū)ο缶幊陶Z言,易于構(gòu)建軟件模型。因為,對象很類似乎很容易和現(xiàn)實世界上的所有事物和概念。但編程實踐表明,并不是任何東西成為對象都是一件好事情。舉一個Java中的蹩足的例子:Java中只有對象才能作為參數(shù)傳入函數(shù)(當然還有原始類型primitive type)。所以為了將函數(shù)傳遞給另外一個函數(shù),你需要將函數(shù)包裹在一個對象中,通常會用一個匿名類,因為這個類不會有其他作用,只是為了讓Java的一切皆為對象的設(shè)計高興。

      Java擁有純粹的面向?qū)ο蟾拍?。它從設(shè)計之初,就希望以一切皆為對象的純對象模型來為世界建模。但發(fā)展到現(xiàn)在,Java中加入了越來越多非對象的東西。引入了閉包,從而獲得了函數(shù)式編程中的一級函數(shù);引入泛型,從而獲得了參數(shù)化的類型。這可能暗示了,這個世界是如此得豐富多彩,使用單一模式為世界建模并不會成功。

      2、函數(shù)式編程-發(fā)展

      函數(shù)式編程是一種以數(shù)學(xué)函數(shù)為編程語言建模的核心的編程范式。它將計算機運算視為數(shù)學(xué)函數(shù)計算,并且避免使用程序狀態(tài)以及可變對象。

      函數(shù)式編程思想主要有兩點:

      • 以函數(shù)為編程語言建模的核心;

      • 避免狀態(tài)和可變性。

      函數(shù)是函數(shù)式編程的基石。函數(shù)式編程語言的代碼就是由一個個函數(shù)的組合而成的。編寫函數(shù)式語言的過程就是設(shè)計函數(shù)。大規(guī)模程序由成千上萬的函數(shù)組成,為了有效的組合這些函數(shù)。函數(shù)式編程語言,會盡量避免狀態(tài),避免可變對象。沒有可變的狀態(tài),就使得函數(shù)式語言中的函數(shù)變?yōu)榱思兒瘮?shù)。純函數(shù)更容易模塊化,更容易理解,對于復(fù)用是友好的。

      函數(shù)式編程語言也產(chǎn)生了一些有用的編程工具:

      • 一級函數(shù),閉包;

      • 柯里化函數(shù);

      • 惰性求值。

      這些在后面的章節(jié)里都會提到。這些編程工具也越來越多地出現(xiàn)在其他編程語言中。

      函數(shù)式編程語言并不年輕,它的歷史和面向?qū)ο缶幊桃粯佑凭谩?958年被創(chuàng)造出來的LISP是最古老的函數(shù)式編程語言。它比C語言年代更為久遠。但直到最近函數(shù)式編程思想才逐漸被重視。幾乎所有新發(fā)明的編程語言都或多或少受到了函數(shù)式編程思想的影響。Python,Scala,Groovy,Swift都有一級函數(shù),閉包。使得你可以將函數(shù)直接傳給另外一個函數(shù),函數(shù)也能夠以返回值形式被另一個函數(shù)返回。消除狀態(tài),提供不變性的好處越來越多被接受,Scala,Groovy,Swift都提供了方便地聲明不可變對象的方法,以支持你編寫更趨近于函數(shù)式的風(fēng)格的代碼。

      函數(shù)編程語言有其優(yōu)秀的地方,也許將來會成為一個重要的編程范式。但是,函數(shù)式編程語言的重要性可能

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號