H.J*_*sef 3 c c++ comparison compiler-theory
我想为自定义标记语言编写一个编译器,我想获得最佳性能,我也希望有一个良好的可扩展设计.
多范式编程语言(C++)更适合实现现代设计模式,但我认为这会稍微降低性能(例如,考虑RTTI),或多或少可能使C成为更好的选择.
我想知道什么是最好的语言(C,C++甚至是目标C),如果有人想要创建一个快速,高效和精心设计的现代编译器(在遵守作为软件的现代软件工程原理的意义上).
Jer*_*fin 18
C中的"昂贵"功能(例如,异常,虚函数,RTTI)在C中根本就不存在.当你用C模拟它们时,你可能最终得到的东西至少和它一样昂贵.在C++中,但很少有人知道,少有记载,等等.(让我们面对现实吧:编译器作者不傻-虽然它可能可以实现比他们的特征"更好",这是不是真的特别有可能).
在另一个方向上,模板(例如)通常使得编写代码相对容易,这比C中实际要快得多.仅举一个明显的例子,使用的C++代码std::sort通常是等效C的两到三倍.代码使用qsort.
结论:如果你决定(无论出于何种原因)编写较慢的代码,那么C++程序比用C语言编写的等价程序要慢的唯一原因.常见的原因是简单和可读性-在大多数情况下,那些是比执行速度更重要.尽管如此,使用C++并不一定会带来任何速度惩罚.决定是否做一些可能运行得更慢的事情完全取决于你.