發信人Wiseman.bbs@bbs.cs.nthu.edu.tw (),
看板Programming
標 題Re: [請益] 一個非專業初學者請益如何學習C++
發信站清華資訊(楓橋驛站) (Sun Aug 14 23:37:35 2005)
轉信站ptt!ctu-reader!ctu-peer!news.nctu!netnews.csie.nctu!news.cs.nthu!netne
※ 引述《gsj.bbs@bbs.nchu.edu.tw (國王的新衣)》之銘言:
> 行程間也是有一個順序規則的
> Process 的執行順序會由Scheduler 來排定
> (這些東西已經算是OS的議題了,詳情去看看教科書吧)
> 至於Interrupt 有的是隨機發生(如網路卡、Keyboard),有的是定時發生(如Timer)
> 但是ISR內部的執行也是循序
> 如果它有Task要註冊到Task Queue內執行,它也是循序的
> 電腦開機時的Initiator也是循序的
> 行程間的通訊,同步機制也是來自循序的要求
> 非循序,吵了半天的OO不就是
> 至於硬體
> CPU執行指令是一個接著一個,這就是循序運轉的機制
想像一下有一個人寫了一個framework ,這framework幫programmer
寫好了main()以及一些共用的程式碼, 如此一來programmer只要負責
撰寫各event的handlers. 其他的工作都會由framework完成,
這main()的工作就像下面的c codes;
void main()
{
framework_init();
Instance_init();
while (event_occur())
{
dispatch_event();
}
}
dispatch_event() 這function會把event 分配到programmer寫好的handler
來處裡. 這程式無可置疑的是循序式的, 因為main()存在且main()是循序式的,
programmer寫的event handler也是循序式的
ok , 但是有天有一個g先生學這個framework學了一個禮拜後,
發現這與他之前慣用的C++/Assembly差別太大, 他找不到
main, 整個程式的執行流程他也無法不了解 ,於是從此他就認定這個framework
並非循序式的, 更慘的是由於這個framework是由C++ 寫成的,
他也從此認定C++/OO 都是他所謂的"非循序式的", 也由於這段不甚美好的學習經驗,
別人只要跟他談到C++/OO, 他就感到噁心...
> > 1. binary file 也不是不能去頭去尾的 , 放在 disk , 用 dirty program
> > 的概念改用 modify file 的招式不就解了 ? 何況只是要求放在
> > sector 0 .
> > 2. 真正熟 linker/loader 的就能要他造出想要的格式, 再來修改.
> 事後這樣改當然可以
> 只是同樣面對Assembly,是不是麻煩多了
> 還是乖乖的用Assembly 組譯吧!
--
※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ From: NK219-91-77-216.adsl.dynamic.apol.com.tw
推 LPH66:推一個! (雖然原PO看不到) 219.84.44.21 08/15
推 ykjiang:看不見也是要推 :) 211.20.97.42 08/15
推 jeunder:呵~~~ :DD 61.64.86.25 08/18