程式是問題求解過程的表達,表達求解過程的語言統稱為程式語言。
求解過程就是邏輯,就是順序、條件、迴圈三種形式,因此程式就是用特定的語言表示的邏輯,程式是形式,邏輯是內容。
模型是對事物共性的抽象,程式設計模型就是對程式設計的共性的抽象。
什麼是程式設計的共性呢?最重要的共性就是:程式設計時,**的抽象方式、組織方式或復用方式。
程式設計技術與程式設計模型有時並不加以區別,例如物件導向的程式設計,兩種含義都有。但深究的話,還是有一定的區別:前者更接近具體的語言和工具,後者更接近方法與思想。
面向過程程式設計是以功能分解為核心,而物件導向程式設計以概念抽象為核心,兩者在認識論方面有著更深刻的不同。由此導致了面向過程程式設計一條指令最大能操作乙個過程,而物件導向程式設計一條指令最大能操作乙個物件。
程式設計模型不考慮最小的操作單元。因為有的語言最小可操作到位元,與機器指令的抽象級別是乙個層次,但也許它是面象物件的程式設計模型。
拿手搞裝修的民工打比喻:最低階的活是篩砂子,這是用組合語言程式設計;進步一點的是搬磚頭,這是高階語言程式設計;再高階一點就是裝門、窗戶,最高端的大約是安裝整體廚櫃之類的角色,這是物件導向程式設計。不同的級別的人,實質上就是在不同的「模型」上工作。
程式設計模型中,指令的抽象程度與復用程度密切相關:
1) 抽象是手段,復用是目標;
2) 抽象到什麼程度,才能復用到什麼程度;
從結果出看,程式設計模型其實就是**的復用模型。
與.net、eclipse等是程式設計工具或開發平台,是具體的、例項化的。而程式設計模型是抽象的、思想性的,兩者不能混為一淡。
程式設計模型處於方法或思想性的層面,在很多情況下,也可稱為程式設計方法、程式設計方式、程式設計模式或程式設計技術。之所以用程式設計模型,是因為它能兼顧了技術與思想的兩種含義,能更好的體現本文要表達的意思。
程式設計模型與體系架構中的c/s模式及3層模型等概念也是有區別的。前者是針程式設計的模型,而後者指體系架構的模型,含義有很大的不同。
(待續)
MapReduce 程式設計模型概述
可以帶著下面問題來閱讀 mapreduce的過程都包含什麼操作?map處理完後,tasktracer會完成什麼任務?ruducer的作用是什麼?map中經過誰的處理之後,變為reduce輸入?1.首先,我們能確定我們有乙份輸入,而且他的資料量會很大 2.通過split之後,他變成了若干的分片,每個分...
MapReduce 程式設計模型概述
mapreduce 程式設計模型給出了其分布式程式設計方法,共分 5 個步驟 1 迭代 iteration 遍歷輸入資料,並將之解析成 key value 對。2 將輸入 key value 對對映 map 成另外一些 key value 對。3 依據 key 對中間資料進行分組 grouping ...
MapReduce 程式設計模型概述
mapreduce 程式設計模型給出了其分布式程式設計方法,共分 5 個步驟 1 迭代 iteration 遍歷輸入資料,並將之解析成 key value 對。2 將輸入 key value 對對映 map 成另外一些 key value 對。3 依據 key 對中間資料進行分組 grouping ...