可以更快地编译和/或计算斐波那契数列的前100个数字:C或Brainfuck

ips*_*tas -1 c performance brainfuck

对于使语言“快速”运行的原因,我知之甚少,但是对我来说,为极简主义而设计的语言也将非常快,对吗?

C比BrainFuck更接近英语,并且BrainFuck的编译器大小非常小,为1024字节,与Tiny C编译器(大小约为100 KB)相比几乎没有什么。

但是,所有在线网站都将C视为最快的语言条码字节码或汇编。

(清晰度编辑可将问题搁置)

如果我用C和BrainFuck编写了相同的程序(例如,它们计算了斐波那契数列的前100个数字),那么哪个程序可以在运行时更快地完成任务?哪一个编译速度更快?

tst*_*ner 5

是的,没有。有一些语言功能会使语言变慢(某些情况下是垃圾回收,动态类型仅在运行时才知道,…),而其他一些功能会使语言变得更复杂,但允许编译器具有更大的自由度。

恰当的例子:C ++ 的constexpr关键字实现起来有些复杂,但是允许程序员告诉编译器“此函数应用程序必须可由其结果替换”。在极端情况下,这允许编译器以恒定的结果替换昂贵的函数调用(例如,快速傅立叶变换),而没有任何运行时成本。

编译的C代码非常快,因为它几乎没有不直接映射到汇编器的功能,并且有近半个世纪的编译器优化。

  • `constexpr`是C ++,不是C,不是吗? (3认同)