精華區beta Programming 關於我們 聯絡資訊
> ==>發信人: Mycroft@kkcity.com.tw (Max Payne2 !!!), 信區: programming > > 這個標題是如何學 C++ , 但 C++ 與 C 稍不同之處就是 C++ 被歸類為 OOPL . > C++從未被歸類為OOPL C++ 從生下來就被質疑過, 某些人認為有混血的現象, 血統不純之故. > > 這是涉及整個 object 的概念問題, 連帶的質疑 OOPL 是否合理的進行對映. > > 不過, 這裡有很多盲點: > > 1. "循序" 的疑問 ? > > * 這個世界是純循序的嗎 ? > > 1-a. 至少, 生物有時間觀念, 會認知到先後次序因果關係, 因此認定某些物體 > > 現象間存有時間的前後次序關係. > 這啥? 一件事做完, 依結果再決定是接著做或跳到那一件做, 這是因果循環, 也就是有 前因才有後果, 前因後果的時間關係明確. > > 1-b. 這世界也同時有很多的實體對象在不同的地點空間同時進行. > > * 電腦的處理是純循序, 沒有分時併行, 多機平行處理的可能嗎 ? > > 1-c. 顯然, 多機可以平行處理是沒有爭議的. 而多工的 OS 能分時併行也不會 > > 有爭議, 但電腦的指令明明是一個做完決定如何接下一個做(這是因果循 > > 序), 怎麼能做出不是純循序的事 ? > 就算是Multi-Programming,以程式觀點來看,還是循序地執行 兩個同樣的 Job A, B 以 multi-programming (不限這二者)來開始執行, 即使 A 先 B 後, 都無法知道那一件會先結束. A, B 如果在強制循序做的環境, 那就會可 以預測. 只有併行 或 平行 才會無法明確時間的先後關係. ================ 併行(concurrent operation) 在多數 OOPL, 甚至 OO 都是不被強調的. 就解問 題的立場, 把無一定次序關係的併行項目(通常彼此無關), 強制用循序一個一個 做是不影響彼此的結果的, 所以彼此無序的 Object 被循序一個一個按程式師的 想定次序做, 是不會影響結果, 只是逼真度不足. 所以 OOPL 未必得支援併行能力, 這一點跟傳統的命令式語言是一樣的. 但是假 如有一天要用多機分散處理, Object 概念的程式碼就具優勢. 不然編譯器堅持 封裝又不太協助 pointer 的處理豈不冤枉 ? -- ◎ Origin: 中央松濤站□bbs.csie.ncu.edu.tw From: 140.115.6.234