国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

編程模型(范式)小結

miya / 2101人閱讀

摘要:參考鏈接面向對象編程模型現在的很多編程語言基本都具有面向對象的思想,比如等等,而面向對象的主要思想對象,類,繼承,封裝,多態比較容易理解,這里就不多多描述了。

前言

在我們的日常日發和學習生活中會常常遇到一些名詞,比如 命令式編程模型聲明式編程模型xxx語言是面向對象的等等,這個編程模型到處可見,但是始終搞不清是什么?什么語言又是什么編程模型,當你新接觸一門語言的時候,有些問題是需要首先去思考的,比如“這門語言的編程模型是什么?” 為此。這里整理了一些常見的編程模型,可能不會對每一種編程模型說的非常詳細(受限于水平),以及大致介紹每種編程模型的大概信息。

概念解釋

模型是對事物共性的抽象,編程模型就是對編程的共性的抽象

什么是編程的共性呢?

最重要的共性就是:程序設計時,代碼的抽象方式、組織方式或復用方式。編程模型主要是方法與思想。編程模型處于方法或思想性的層面,在很多情況下,也可稱為編程方法、編程方式、編程模式或編程技術、編程范式。在這里就當做同一種說法。介紹編程模型的時候主要通過不同的編程語言來解釋。

參考鏈接:http://www.cnblogs.com/xsmm/a...

文章中的說法如有不對,歡迎留言指正!同時也歡迎提意見補充內容,完善文章。

分類

下面是個人整理的一些常見編程模型,可能還有更多。。。

命令式(過程式)編程模型

聲明式編程模型

面向對象編程模型

函數式編程模型

原型編程模型

混合式編程模型

基于棧的編程模型

基于邏輯的編程模型

待續。。。。。。。。

1.命令式編程模型(Imperative Programming)

個人覺得命令式過程式是一個意思,都是一種面向過程的思想。命令式編程的意思是,程序員需要一步步寫清楚程序需要如何做什么(How to do What)。我們平時使用的編程語言,比如C++、Java等,都有命令式編程的思想。

什么叫做程序需要如何做什么(How to do What)呢?和下個編程模型聲明式一起舉例說明。

2.聲明式編程模型(Declarative Programming)

聲明式編程的意思是,程序員不需要一步步告訴程序如何做,只需要告訴程序在哪些地方做什么(Where to do What)

比如關系數據庫的結構化數據查詢語言SQLSQL也是一門聲明式語言,SQL只需要告訴數據庫,處理符合一定條件的數據,而不需要自己一步步判斷每一條數據是否符合條件。SQL的形式一般是 select … where …,update … where …,delete … where …。當然,這樣一來,很多基層工作,SQL做不了。因此,大部分數據庫都提供了另外的命令式編程語言,用來編寫存儲過程等,以便處理一些更加細節的工作。

這里的SQL的where 等等關鍵字所帶的各種條件就是告訴程序在哪些地方做什么。而不需要寫的非常詳細。而很細致的問題就是程序需要如何做什么,就需要命令式。

參考鏈接:http://developer.51cto.com/ar...

3.面向對象編程模型(Object-oriented programming)

現在的很多編程語言基本都具有面向對象的思想,比如java,PHP等等,而面向對象的主要思想:對象,類,繼承,封裝,多態比較容易理解,這里就不多多描述了。

通過目前三種編程模型的分析,發現很多編程語言在設計的時候采用的編程模型就是一個混合的模式,并不是一定只有其中的一種。

4.函數式編程模型(Functional programming)

在看關于 JavaScriptPython 的介紹的時候,很多文章會提到JavaScriptPython是一門函數式語言。就個人的理解而已,JavaScriptPython不是一門純函數式語言,具體原因請查看下面的鏈接,再結合 JavaScriptPython的特性就知道了。代表語言有:Lisp Erlang(Ericsson Language) Haskell .

對于函數式編程的更細致的說明,請看阮一峰老師的文章:
http://www.ruanyifeng.com/blo...

5.原型編程模型(Prototype programming)

原型編程模型個人是認為是一個非常重要的編程模型,但是上學的時候課本卻沒有講,很遺憾。而原型編程模型的代表是現在很火的 JavaScript,此外還有 IO ,Lua , Self 等等.而JavaScript在設計之初就參考過IO ,Self

原型編程模型的主要思想就是用對象而不是用類來作為定義對象甚至繼承的基礎。一般所見的關鍵內容就是 原型鏈 ,委托繼承等等。

目前知識不夠,以后再補充。

6.混合式編程模型(Hybrid programming)

就是采用多種編程模型開設計程序或者編程語言。比如 Scala , Java 等等

7.基于棧的編程模型(Stack-based programming)

這個是一個比較少見的編程模型,代表語言有 PostScript / Forth。主要思想是使用一個或者多個棧作為語言的核心特征

8.基于邏輯的編程模型(Logic-based programming)

這個同樣是一個比較少見的編程模型,代表語言有 Prolog。 以規則(rule)為中心建立起來的編程模型。

文章部分內容參考:《七周七語言:理解多種編程范式》
備注

還有一些服務器網絡編程模型,并發編程模型等等,但是這些編程模型不是編程語言層面的,是針對具體業務而想出的解決辦法,所以不是和上面的編程模型是同一個層面的。

待續。。。。。。。。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/68141.html

相關文章

  • 編程范式 —— 函數式編程入門

    摘要:在函數式編程中數據在由純函數組成的管道中傳遞。函數式編程中函子是實現了函數的容器下文中將函子視為范疇,模型可表示如下但是在函數式編程中要避免使用這種面向對象的編程方式取而代之對外暴露了一個的接口也稱為。 showImg(https://segmentfault.com/img/remote/1460000018101204); 該系列會有 3 篇文章,分別介紹什么是函數式編程、剖析函數...

    flyer_dev 評論0 收藏0
  • 和少婦白潔一起學JavaScript之Async/Await

    摘要:匿名函數是我們喜歡的一個重要原因,也是,它們分別消除了很多代碼細節上需要命名變量名或函數名的需要。這個匿名函數內,有更多的操作,根據的結果針對目錄和文件做了不同處理,而且有遞歸。 能和微博上的 @響馬 (fibjs作者)掰扯這個問題是我的榮幸。 事情緣起于知乎上的一個熱貼,諸神都發表了意見: https://www.zhihu.com/questio... 這一篇不是要說明白什么是as...

    Bryan 評論0 收藏0
  • 如何系統地自學 Python?

    摘要:這里推薦一本書源碼剖析源碼剖析豆瓣這本書把源碼中最核心的部分,給出了詳細的闡釋,不過閱讀此書需要對語言內存模型和指針有著很好的理解。   是否非常想學好 Python,一方面被瑣事糾纏,一直沒能動手,另一方面,擔心學習成本太高,心里默默敲著退堂鼓?   幸運的是,Python 是一門初學者友好的編程語言,想要完全掌握它,你不必花上太多的時間和精力。   Python 的設計哲學之一就是...

    zgbgx 評論0 收藏0
  • 程序員練級攻略(2018):Java底層知識

    摘要:最黑科技的玩法就是字節碼編程,也就是動態修改或是動態生成字節碼。使用字節碼編程可以玩出很多高級玩法,其中最高級的玩法是在程序運行時進行字節碼修改和代碼注入。 showImg(https://segmentfault.com/img/bVbkqqg?w=1142&h=640);這個是我訂閱 陳皓老師在極客上的專欄《左耳聽風》,我貼出來是為了自己以后方便學習和記憶,同時也分享給你們一起學習...

    wean 評論0 收藏0

發表評論

0條評論

miya

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<