gpt4 book ai didi

c++ - 为什么许多 VM 看起来具有 C++ 功能却用 C 编写?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:34 26 4
gpt4 key购买 nike

我注意到一些不太古老的 VM 语言,例如 Lua、NekoVM 和用 C 编写的 Potion。

看起来他们正在重新实现许多 C++ 功能。

用 C 而不是 C++ 编写它们有好处吗?

最佳答案

我对 Lua 有所了解。

  • Lua 是用纯 ANSI 标准 C 编写的,可以在任何 ANSI 平台上编译,没有错误也没有警告。因此,Lua 几乎可以在世界上任何平台上运行,包括像Canon PowerShot cameras 这样的平台。 .让 C++ 在奇怪的小型嵌入式平台上运行要困难得多。

  • Lua 是一个高性能的 VM,并且由于 C 无法表达方法调用(可能是虚拟的也可能不是)和运算符重载,因此更容易预测 C 代码的性能 只需查看代码即可。 C++,尤其是模板库,使得在不知不觉中烧毁资源变得有点太容易了。 (Lua 的完整实现不仅包括 VM,还包括库,适合 145K 的 x86 目标代码。整个语言甚至适合一个很小的 ​​256K 缓存,你可以在 Intel i7 的 L2 和旧芯片的 L1 找到它。除非你真的知道什么你在做,编写编译成这么小的东西的 C++ 要难得多。)

这是用 C 编写 VM 的两个很好的理由。

关于c++ - 为什么许多 VM 看起来具有 C++ 功能却用 C 编写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/780027/

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