gpt4 book ai didi

c++ - 为什么 C++ 是中级语言?

转载 作者:太空狗 更新时间:2023-10-29 19:50:11 25 4
gpt4 key购买 nike

为什么 C++ 是中级语言?它几乎可以做任何事情,世界上使用最广泛的操作系统就是用它编写的。

[注:SO C++ Info页面引用Wikipedia citing C++ 完整引用第三版,作者 Herbert Schildt,

It is regarded as a "middle-level" language, as it comprises a combination of both high-level and low-level language features.



— 土 bean 泥]

最佳答案

“中间语言”不是英语,所以你必须猜出你的意思。如果你的意思是“一种中等抽象级别的语言”,这是一个公平的评估,尽管你是对的,与大多数其他语言相比,它涵盖了令人不安的广泛抽象级别。

提供(首先也是最重要的)自动、内在垃圾收集的语言显然在更高的抽象级别上工作——可能离机器太远而无法完全用于内核、设备驱动程序等的最低级别部分,但是比不提供这种功能的语言(或仅通过“据称智能”的指针提供它,这些指针通常执行极其基本的 GC —— 通常与引用计数(!)一样基本,远离现代世界GC 架构)。几乎所有在 C++ 之后部署的广泛使用的语言都将垃圾收集作为其内在特征的一部分。

另一方面,特定于机器的汇编语言显然在比 C++ 更低的抽象级别上工作(实际上,C++ 编译器通常会提供作为非标准扩展的嵌入汇编语言的能力,以便授权高级程序员在必要的情况下使用其设施)。

至于“最广泛的世界用户操作(?)系统”,这正成为一个难以决定的问题——例如,越来越多的各种小工具都基于 Linux 内核,从手机(想想 Android)到电视&c(几个月前,我发现这很有趣,在拆开并安装我新购买的平板电视、蓝光 DVD 播放器和 DVR 时,发现它们每个都带有一张 DVD,其中包含一些软件……他们必须这样做,你看,因为该软件当然是基于 Linux 的!-)。

至少在 Linux 的情况下,很容易检查其核心语言不是 C++,而是 C(当然,这确实是一种非常不同的语言——例如,它甚至不提供“智能- ish 指针”的基础上,有些人会争辩说 C++ 确实有 GC;-)。只需尝试在 Pike 或 Thompson 附近混淆 C 和 C++ ......如果你准备好躲避 快速 ,以防万一他们捕获重物扔给你!-)((我怀疑他们在贝尔实验室的其他前同事,比如 Ritchie,可能会有类似的 react ,但我不知道第一手资料,因为我和我今天的同事一起做;-))。

对于为 Apple 极受欢迎的产品(Mac、iPhone、iPad...)提供支持的操作系统也是如此:Objective 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++ 编程,但是男孩,我想念 模板 当我这样做时!-),但只是没有似乎不足以实现“有效需求”!-)

关于c++ - 为什么 C++ 是中级语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3673267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com