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

資訊專(zhuān)欄INFORMATION COLUMN

編程模型(范式)小結(jié)

miya / 2093人閱讀

摘要:參考鏈接面向?qū)ο缶幊棠P同F(xiàn)在的很多編程語(yǔ)言基本都具有面向?qū)ο蟮乃枷耄热绲鹊龋嫦驅(qū)ο蟮闹饕枷雽?duì)象,類(lèi),繼承,封裝,多態(tài)比較容易理解,這里就不多多描述了。

前言

在我們的日常日發(fā)和學(xué)習(xí)生活中會(huì)常常遇到一些名詞,比如 命令式編程模型聲明式編程模型xxx語(yǔ)言是面向?qū)ο?/b>的等等,這個(gè)編程模型到處可見(jiàn),但是始終搞不清是什么?什么語(yǔ)言又是什么編程模型,當(dāng)你新接觸一門(mén)語(yǔ)言的時(shí)候,有些問(wèn)題是需要首先去思考的,比如“這門(mén)語(yǔ)言的編程模型是什么?” 為此。這里整理了一些常見(jiàn)的編程模型,可能不會(huì)對(duì)每一種編程模型說(shuō)的非常詳細(xì)(受限于水平),以及大致介紹每種編程模型的大概信息。

概念解釋

模型是對(duì)事物共性的抽象,編程模型就是對(duì)編程的共性的抽象

什么是編程的共性呢?

最重要的共性就是:程序設(shè)計(jì)時(shí),代碼的抽象方式、組織方式或復(fù)用方式。編程模型主要是方法與思想。編程模型處于方法或思想性的層面,在很多情況下,也可稱(chēng)為編程方法、編程方式、編程模式或編程技術(shù)、編程范式。在這里就當(dāng)做同一種說(shuō)法。介紹編程模型的時(shí)候主要通過(guò)不同的編程語(yǔ)言來(lái)解釋。

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

文章中的說(shuō)法如有不對(duì),歡迎留言指正!同時(shí)也歡迎提意見(jiàn)補(bǔ)充內(nèi)容,完善文章。

分類(lèi)

下面是個(gè)人整理的一些常見(jiàn)編程模型,可能還有更多。。。

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

聲明式編程模型

面向?qū)ο缶幊棠P?/p>

函數(shù)式編程模型

原型編程模型

混合式編程模型

基于棧的編程模型

基于邏輯的編程模型

待續(xù)。。。。。。。。

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

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

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

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

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

比如關(guān)系數(shù)據(jù)庫(kù)的結(jié)構(gòu)化數(shù)據(jù)查詢(xún)語(yǔ)言SQLSQL也是一門(mén)聲明式語(yǔ)言,SQL只需要告訴數(shù)據(jù)庫(kù),處理符合一定條件的數(shù)據(jù),而不需要自己一步步判斷每一條數(shù)據(jù)是否符合條件。SQL的形式一般是 select … where …,update … where …,delete … where …。當(dāng)然,這樣一來(lái),很多基層工作,SQL做不了。因此,大部分?jǐn)?shù)據(jù)庫(kù)都提供了另外的命令式編程語(yǔ)言,用來(lái)編寫(xiě)存儲(chǔ)過(guò)程等,以便處理一些更加細(xì)節(jié)的工作。

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

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

3.面向?qū)ο缶幊棠P停∣bject-oriented programming)

現(xiàn)在的很多編程語(yǔ)言基本都具有面向?qū)ο蟮乃枷耄热鏹ava,PHP等等,而面向?qū)ο?/b>的主要思想:對(duì)象,類(lèi),繼承,封裝,多態(tài)比較容易理解,這里就不多多描述了。

通過(guò)目前三種編程模型的分析,發(fā)現(xiàn)很多編程語(yǔ)言在設(shè)計(jì)的時(shí)候采用的編程模型就是一個(gè)混合的模式,并不是一定只有其中的一種。

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

在看關(guān)于 JavaScriptPython 的介紹的時(shí)候,很多文章會(huì)提到JavaScriptPython是一門(mén)函數(shù)式語(yǔ)言。就個(gè)人的理解而已,JavaScriptPython不是一門(mén)純函數(shù)式語(yǔ)言,具體原因請(qǐng)查看下面的鏈接,再結(jié)合 JavaScriptPython的特性就知道了。代表語(yǔ)言有:Lisp Erlang(Ericsson Language) Haskell .

對(duì)于函數(shù)式編程的更細(xì)致的說(shuō)明,請(qǐng)看阮一峰老師的文章:
http://www.ruanyifeng.com/blo...

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

原型編程模型個(gè)人是認(rèn)為是一個(gè)非常重要的編程模型,但是上學(xué)的時(shí)候課本卻沒(méi)有講,很遺憾。而原型編程模型的代表是現(xiàn)在很火的 JavaScript,此外還有 IO ,Lua , Self 等等.而JavaScript在設(shè)計(jì)之初就參考過(guò)IO ,Self

原型編程模型的主要思想就是用對(duì)象而不是用類(lèi)來(lái)作為定義對(duì)象甚至繼承的基礎(chǔ)。一般所見(jiàn)的關(guān)鍵內(nèi)容就是 原型鏈 ,委托繼承等等。

目前知識(shí)不夠,以后再補(bǔ)充。

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

就是采用多種編程模型開(kāi)設(shè)計(jì)程序或者編程語(yǔ)言。比如 Scala , Java 等等

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

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

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

這個(gè)同樣是一個(gè)比較少見(jiàn)的編程模型,代表語(yǔ)言有 Prolog。 以規(guī)則(rule)為中心建立起來(lái)的編程模型。

文章部分內(nèi)容參考:《七周七語(yǔ)言:理解多種編程范式》
備注

還有一些服務(wù)器網(wǎng)絡(luò)編程模型,并發(fā)編程模型等等,但是這些編程模型不是編程語(yǔ)言層面的,是針對(duì)具體業(yè)務(wù)而想出的解決辦法,所以不是和上面的編程模型是同一個(gè)層面的。

待續(xù)。。。。。。。。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/68141.html

相關(guān)文章

  • 編程范式 —— 函數(shù)式編程入門(mén)

    摘要:在函數(shù)式編程中數(shù)據(jù)在由純函數(shù)組成的管道中傳遞。函數(shù)式編程中函子是實(shí)現(xiàn)了函數(shù)的容器下文中將函子視為范疇,模型可表示如下但是在函數(shù)式編程中要避免使用這種面向?qū)ο蟮木幊谭绞饺《畬?duì)外暴露了一個(gè)的接口也稱(chēng)為。 showImg(https://segmentfault.com/img/remote/1460000018101204); 該系列會(huì)有 3 篇文章,分別介紹什么是函數(shù)式編程、剖析函數(shù)...

    flyer_dev 評(píng)論0 收藏0
  • 和少婦白潔一起學(xué)JavaScript之Async/Await

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

    Bryan 評(píng)論0 收藏0
  • 如何系統(tǒng)地自學(xué) Python?

    摘要:這里推薦一本書(shū)源碼剖析源碼剖析豆瓣這本書(shū)把源碼中最核心的部分,給出了詳細(xì)的闡釋?zhuān)贿^(guò)閱讀此書(shū)需要對(duì)語(yǔ)言?xún)?nèi)存模型和指針有著很好的理解。   是否非常想學(xué)好 Python,一方面被瑣事糾纏,一直沒(méi)能動(dòng)手,另一方面,擔(dān)心學(xué)習(xí)成本太高,心里默默敲著退堂鼓?   幸運(yùn)的是,Python 是一門(mén)初學(xué)者友好的編程語(yǔ)言,想要完全掌握它,你不必花上太多的時(shí)間和精力。   Python 的設(shè)計(jì)哲學(xué)之一就是...

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

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

    wean 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

miya

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<