天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

對(duì)象已死?

  最近常有一種說(shuō)法,就是我們?nèi)缃衩媾R著另外一場(chǎng)編程模型的變革,面向?qū)ο蠹夹g(shù)已經(jīng)處在被淘汰的邊緣,函數(shù)式語(yǔ)言會(huì)取代面向?qū)ο蠹夹g(shù)成為主流方式,甚至出現(xiàn)了面向?qū)ο笠阉赖难哉摗W鳛橐粋€(gè)硬核函數(shù)語(yǔ)言的狂熱者,我個(gè)人當(dāng)然希望函數(shù)式語(yǔ)言可以一統(tǒng)天下,成為主流之選。但是不是應(yīng)該把對(duì)象技術(shù)和函數(shù)技術(shù)對(duì)立起來(lái),說(shuō)式后者取前者而代之,我個(gè)人認(rèn)為,這和如何看待面向?qū)ο蠹夹g(shù)有關(guān)。

  做為工程實(shí)踐的對(duì)象技術(shù)

  在這個(gè)年代,大家有一種神圣化面向?qū)ο蠹夹g(shù)的傾向,很多人都把對(duì)象技術(shù)奉為高深的思想和理論。但實(shí)際上,面向?qū)ο蠹夹g(shù)僅僅一種工程實(shí)踐而已,它是依托于其他技術(shù)而存在的一種實(shí)踐,本身并不是一種完備的計(jì)算模型。

  在計(jì)算機(jī)科學(xué)發(fā)展的早期,對(duì)于計(jì)算機(jī)的非數(shù)值計(jì)算應(yīng)用的討論,以及對(duì)于可計(jì)算性問(wèn)題的研究和發(fā)展,大抵確立了幾種的計(jì)算模型:遞歸函數(shù)類(lèi)、圖靈機(jī)、Lambda演算、Horn子句、Post系統(tǒng)等等。其中遞歸函數(shù)類(lèi)是可計(jì)算性問(wèn)題的數(shù)學(xué)解釋?zhuān)籋orn子句是prolog這類(lèi)邏輯語(yǔ)言的理論基礎(chǔ);lambda演算成為了函數(shù)式語(yǔ)言的理論基礎(chǔ);圖靈機(jī)是圖靈解決可計(jì)算問(wèn)題的時(shí)候所設(shè)計(jì)的裝置,其后成為計(jì)算機(jī)的裝置模型,與圖靈機(jī)相關(guān)的自動(dòng)機(jī)以及馮諾依曼結(jié)構(gòu),成為了命令式語(yǔ)言的理論基礎(chǔ)。

  因此當(dāng)我們談及函數(shù)語(yǔ)言和命令式語(yǔ)言優(yōu)劣的時(shí)候,我們實(shí)際上是在討論其背后的計(jì)算模型——也就是lambda演算和馮結(jié)構(gòu)裝置操作——在執(zhí)行效率和抽象層次上的優(yōu)劣。

  而面向?qū)ο蠹夹g(shù)則比較尷尬了,其背后沒(méi)有一個(gè)對(duì)應(yīng)的計(jì)算模型(80年代的時(shí)候曾有人研究過(guò),Pi演算是個(gè)備選,但是這個(gè)模型更多的是在并發(fā)對(duì)象領(lǐng)域的語(yǔ)義,而不是通常意義上的計(jì)算模型)。它有點(diǎn)類(lèi)似于“最佳實(shí)踐”,在不同的計(jì)算模型上有著完全不同實(shí)現(xiàn)方式和含義。因此對(duì)比對(duì)象技術(shù)和其他技術(shù)的時(shí)候,搞清楚到底是哪一種面向?qū)ο缶妥兊酶裢庵匾饋?lái)。

  兩種不同的面向?qū)ο?/h2>

  目前流行的對(duì)象技術(shù),實(shí)際上有兩個(gè)截然不同的源頭。它們分別在兩個(gè)完全不同的計(jì)算模型上發(fā)展起來(lái),但是都頂著“面向?qū)ο?rdquo;這個(gè)帽子。

  第一種對(duì)象技術(shù)出現(xiàn)的較晚,在1979年以后。它是以抽象數(shù)據(jù)類(lèi)型(ADT,Abstract Data Type)為源起,發(fā)展出來(lái)的面向?qū)ο蠹夹g(shù)。也就是首先被C++所采用的面向?qū)ο蠹夹g(shù)。

  C++作為“更好的C”,繼承了C語(yǔ)言對(duì)于程序的看法,也就是數(shù)據(jù)抽象(Data Abstraction)和過(guò)程。面向?qū)ο蠹夹g(shù)在C++中,是作為一種更好的數(shù)據(jù)抽象的方式而存在的。

  數(shù)據(jù)抽象在這類(lèi)面向?qū)ο笳Z(yǔ)言中是一種關(guān)鍵的抽象方式。所謂數(shù)據(jù)抽象,在計(jì)算機(jī)發(fā)展的早期是一種非常關(guān)鍵的技術(shù)。眾所周知,計(jì)算機(jī)在裝置模型上是一個(gè)存儲(chǔ)和一組指令集,而二進(jìn)制的存儲(chǔ)實(shí)際上是沒(méi)有任何類(lèi)型表示的。整數(shù),浮點(diǎn)這些操作必須通過(guò)相應(yīng)的約定,再以指令集的形式進(jìn)行支持。而隨著計(jì)算機(jī)的發(fā)展,簡(jiǎn)單的數(shù)據(jù)類(lèi)型顯然已經(jīng)不能滿足應(yīng)用的需要。這時(shí)候一種靈活且有效的類(lèi)型系統(tǒng),就成了一種自然的追求(直到80年代初,類(lèi)型系統(tǒng)都是計(jì)算機(jī)科學(xué)研究的重要方向之一)。

  在C++中(以及后來(lái)的Java和C#),對(duì)象是一種構(gòu)造數(shù)據(jù)類(lèi)型的方式,把每個(gè)“類(lèi)”看作一段存儲(chǔ)(狀態(tài))和操作(方法)的集合。“類(lèi)”作為已經(jīng)存在的類(lèi)型系統(tǒng)的一種擴(kuò)展(這一點(diǎn)在C++中體現(xiàn)得尤其強(qiáng)烈)。在這類(lèi)語(yǔ)言中,“類(lèi)”(class)實(shí)際上代替了“對(duì)象”(object)成為了頭等公民。構(gòu)造一個(gè)更好的類(lèi)型系統(tǒng),是這種面向?qū)ο蠹夹g(shù)所要解決的問(wèn)題。與其說(shuō)是面向?qū)ο螅蝗缯f(shuō)是面向類(lèi)或面向類(lèi)型的。

  從計(jì)算語(yǔ)義上說(shuō),這類(lèi)對(duì)象技術(shù)仍然是裝置的操作語(yǔ)義,和面向過(guò)程的沒(méi)有實(shí)質(zhì)上的區(qū)別。唯一的不同是,被這種對(duì)象語(yǔ)言操作的機(jī)器,可以借由對(duì)象技術(shù)擴(kuò)展機(jī)器所支持的類(lèi)型。這種面向?qū)ο蠹夹g(shù)是過(guò)程技術(shù)的一種發(fā)展,雖然在抽象層次上沒(méi)有什么太大的提高,但在實(shí)踐上已經(jīng)是巨大的進(jìn)步。

  另一種對(duì)象技術(shù)出現(xiàn)的很早,大概在60年代末就出現(xiàn)了,直到80年代初還有發(fā)展。但是很長(zhǎng)一段時(shí)間內(nèi)并不是太主流的做法,反而并不太為人所知。

  在函數(shù)式語(yǔ)言里,因?yàn)楦唠A函數(shù)(High Order Function)的存在,數(shù)據(jù)可由函數(shù)來(lái)表達(dá)。這就是函數(shù)語(yǔ)言里一個(gè)非常重要的觀點(diǎn):Data as Procedure。在函數(shù)語(yǔ)言中,可以構(gòu)造一種非常類(lèi)似于對(duì)象的高階函數(shù):

(define (make-user name age sex)
(define (dispatch message)
(cond ((eq? message 'getName) name)
((eq? message 'getAge) age)
((eq? message 'getSex) sex))
(else (error 'messageNotUnderstand))))
dispatch)

(define vincent (make-user 'Vincent
30 'Male))
(vincent 'getName)

it知識(shí)庫(kù)對(duì)象已死?,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久看片网| 一本之道高清在线观看一区 | 久久国产精品二区99 | 成人在免费视频手机观看网站 | 国产在线精品亚洲 | 古月娜下面好紧好爽 | 亚洲欧美成人在线 | 久久视频这里只精品99热在线观看 | 99久久人妻无码精品系列性欧美 | 国产99精品视频 | 杨幂视频1分11未删减在线观看 | japanese幼儿videos| 国产区免费在线观看 | 国产精品久人妻精品 | 麻豆一二三四区乱码 | 久草在线精彩免费视频 | 在线 国产 欧美 亚洲 天堂 | 一本道dvd久久综合高清免费 | 国产精品青青草原app大全 | 日韩AV片无码一区二区三区不卡 | 精品夜夜澡人妻无码AV蜜桃 | 2021国产精品久久久久精品免费网 | 国产精品99久久久久久AV蜜臀 | 国产成人在线视频免费观看 | 久久精品国产亚洲AV蜜臀 | 国产精品三级在线观看 | 99九九精品国产高清自在线 | 国产日韩欧美综合久久 | 最近的中文字幕2019国语 | 好大的太粗好深BL | 99热在线免费观看 | 欧美老妇与zozoz0交 | 国产东北男同志videos网站 | 日本片bbbxxx | 欧美 亚洲 中文字幕 高清 | 全免费A敌肛交毛片免费懂色AV | 国产传媒精品1区2区3区 | TIMI1TV天美传媒在线观看 | 欧美最猛黑人XXXXWWW | 国产在线精品一区二区在线看 | 天天躁夜夜踩很很踩2022 |