作者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