作者opdkm (有沒有這麼巧的啊 = =)
看板C_and_CPP
標題Re: [問題] 為什麼作業系統都用C寫? 而不用C++呢?
時間Sat Mar 7 18:49:51 2009
不好意思 小弟沒讀過很多書
跟樓上討論的大大們差得遠了
但是關於OS為甚麼沒人用C++寫這個問題
我一直以來都覺得還滿理所當然的耶
理由簡述如下
小弟一直認為越簡單的語言通常效能會越好
並不是說很簡單的語言能做到的事情很複雜的語言做不到
主要的關鍵是在於編譯器的複雜度
如果你今天有一個完美的C compiler
可以把你寫的C code編譯成最佳解的machine code
(假設以執行速度最快為最佳解)
就跟你絞盡腦汁用組語慢慢寫出來的一樣快(說不定還更快!?)
那我想應該就沒人要用組合語言了吧
我想今日應該還不存在這種C or C++ compiler吧
一般大家還是公認組語或者是直接撰寫machine code是較有效率的做法
不過這裡指的效率是程式執行的效率
寫程式的效率就........*#^(@#$^*#)@
使用較高階的語言 在沒有完美的編譯器的情況下
小弟淺見認為是一種在寫程式的效率以及程式執行的效率中一種折衷的辦法
而較高階的語言雖然提升了程式開發的效率
但是也相對提高了編譯器開發的複雜度(語言複雜度提高的關係!?)
前面各位先進提到的一些最佳化的技巧當然都可以做也有可能做
語言簡單的時候最佳化其實相對好做(假設是以前述的理論最佳解為目標)
當語言複雜度提高 可能出現的可以做的最佳化情況自然也大增
小弟因此認為要實做出前述完美的編譯器對於高階語言來說自然是越來越困難
由以上觀點 單就C以及C++來看
會挑選C做為作業系統的開發工具自然是著眼於執行速度的考量
當然了如果用C++來寫 說不定開發起來會更容易
我猜寫作業系統的應該都是高手吧 所以用C來開發也OK (亂講的誤認真 XD)
這個問題當然還有很多細節可供討論
不過我肚子餓了 希望有表達出我的想法 :p
小弟不常發文
如有詞不達意的情況敬請多多包涵
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.113.123
1F:→ kazuto:C跟C++ 是同一階的吧? 03/07 18:51
2F:推 Chevelle:哪有,C++ 跟 C 是完全不同的語言~~ 03/07 19:04
3F:→ Bencrie:其實人工刻asm code也不見得一定會贏C compiler optimized 03/07 19:08
4F:→ Bencrie:code. orz 03/07 19:09
5F:推 littleshan: 自我吐槽:我寫 asm 寫不贏 ICC 03/07 19:53
6F:推 holymars:不要妄想用人腦挑戰Compiler optimizer,贏不了的www 03/08 00:59