为什么C++是一种中级语言?它几乎可以做任何事情,并且世界上使用最广泛的操作系统都写在其中.
[注:SO C++ Info页面引用维基百科引用 C++完整参考第三版,作者:Herbert Schildt,
它被视为"中级"语言,因为它包含高级和低级语言功能的组合.
- Potatoswatter]
"中期语言"不是英语,所以你必须猜测你的意思.如果你的意思是"一种中等抽象的语言",这是一个公平的评估,尽管你是正确的,与大多数其他语言相比,它延伸到一个令人不安的广泛的抽象层次.
提供(首要和最重要的)自动内部垃圾收集的语言显然在更高的抽象级别上工作 - 可能离机器太远而无法完全用于内核,设备驱动程序等的最低级别部分,但是比没有提供此类设施的语言更方便且没有内存管理错误(或仅通过"所谓的智能"指针提供它通常做极其简陋的GC - 通常作为参考计数(!)的基础,远离现代的世界GC架构).在 C++ 之后部署的几乎所有广泛使用的语言都将垃圾收集作为其内在特征的一部分.
另一方面,机器特定的汇编语言显然在比C++更低的抽象层次上工作(事实上,C++编译器通常作为非标准扩展提供嵌入汇编语言的能力,以便授权高级程序员在有保证的情况下使用其设施.
至于"最广泛的世界用户opareting(?)系统",它已经成为一个难以决定的问题 - 例如,越来越多的各种小工具都基于Linux核心,从手机(想想Android)到电视&c(几个月前,我发现打开包装并安装我新购买的平板电视,蓝光DVD播放器和DVR,发现它们每个都带有DVD,其中包含一些来源软件......他们必须,你看,因为那个软件基于Linux,当然! - ).
至少在Linux的情况下,很容易检查其核心语言不是C++,而是C(当然,这是一种非常不同的语言 - 例如,它甚至不提供"智能 - ish指针"在其基础上有人会争辩说C++ 确实有GC ;-).试着把C和C++混淆在Pike或Thompson附近......如果你确实准备好快速躲开,以防他们可以抓住一些重物扔给你! - ((我怀疑他们的前同事)在贝尔实验室,像里奇,可能类似的反应,但我不知道第一手的,因为我与那些谁做我今天同事;-)).
类似的操作系统为苹果极受欢迎的产品(Mac,iPhone,iPad等)提供动力:目标C用于应用程序编程,但C本身用于内核和c,即核心(而Apple的操作系统本身,不是开源的,其中BSD和Mach的痕迹仍然非常清晰可见.我相信大多数其他手机(黑莓,诺基亚的Symbian和Maemo,Windows Mobile目前的产品)也依赖于C核心,而不是C++(这可以很容易地检查开源的,不是那么容易关闭 - 源代码,但是,再次,提示都指向那种方式).
如果您正在考虑使用Windows,我很确定(至少包括Win 2000时,基于微软在那段时间内针对我的招聘尝试)内核也是基于C而不是C++(我不是知道它是否完全被重写为XP,Vista,Windows 7 - 这将是惊人的,但是,当然,这不会使它变得不可能 ;-).
总的来说,在我看来,所有普及操作系统核心的主导语言最有可能是C,而不是C++.至少没有一个合理的C++ 子集没有内在的原因(我可以在C语言和C++中编程,但是当我这样做时,我会错过模板! - ),但似乎还不够"有效需求",使之发生 - !)