精華區beta Programming 關於我們 聯絡資訊
※ 引述《Wiseman.bbs@bbs.cs.nthu.edu.tw》之銘言: > ※ 引述《tester.bbs@bbs.csie.ncu.edu.tw (try or test)》之銘言: > > 程式都有必須前後相依的 sequential 成份, 也有與前後次序無關可併 > > 行的成份. 一般的命令式(imperative)程式語言除了 CHLL 以外, 通常 > > 都把這些都當成必須前後有序的處理, 也就不介意 data 的隔離. > > 可是 OOPL 會把有關的 data 與 method 擺到同一個 class object, > > 跟前後次序相依的就會歸類為同一 class , 彼此不相關的 data 與 > > method 通常就可以另成一個 class object. 所以 object 間的相依性 > > 降低, 可以併行處理的可能性就增高. > > OO 是概念用於分析思考, 項目的相關性就會使之自然歸為同類, 何者 > > 必須相依循序, 何者可獨立無關可以併行處理就自然會分堆(object)擺. > > 多數的 OOPL 雖有這個隱藏的特性, 除了那些強調能處理 distributed > > object 的 OOPL 外, 多數 OOPL 目前並不提供 CHLL 有關的指述. > > OOPL 未必有併行同步處理能力, 但分析事物本質的 OOD 是會區分這種 > > 必定要循序處理(符合因果關係)才會正確無誤的成份的. > 太玄了 根本看不懂 > 有沒有人可以幫忙翻譯一下 . > 我想這篇文章的詞彙與邏輯跟我的腦子完全無法對應 > 可能是因為他使用了前後不相依併行同步處理的多工思考方式 > 這可是要用多顆大腦同時併行運作並且充份了解CHLL語言的人才有辦法理解 class A { int a,b,c; int a1,b1,c1; fun_a(){ a = b+c; //快指令 } fun_b(){ a = b*c; //慢的指令 } fun_c(){ a1 = b1+c1; } } main(){ A B; B.b = 1; B.c = 2; B.fun_a(); B.fun_b(); B.fun_c(); } 如果是OO並不知道最後a 是哪個 fun_a 或是fun_b的結果 出來不可與其的答案 但是因為目前的程式編譯器幫你處理好 所以會先執行fun_a 在循序的執行fun_b a就會是fun_b的結果 也就是編譯器不幫你處理的話 可能因為OO非循序的特性出錯 不知道我理解的對不對? -- ┌─────KKCITY─────┐ KK免/費/撥/接 bbs.kkcity.com.tw 電話(1):4491999 電話(2):4058-6000 └──From:61.224.80.172 ──┘帳號:kkcity 密碼:kkcity