什么使编程语言快?

psy*_*ave 3 compilation

或者以更相关的方式措辞,编程语言的哪些特性会影响相应生成的可执行文件的稳定性

当然,生成可执行文件的编译器确实很重要.例如,您可以想象一些像编译链一样先进的东西,能够从自然语言描述中推断出可执行文件,用提供的建议询问相关问题,以消除与给定数据进行良好匹配的概率是否过低的歧义.

现在C以使开发人员能够获得真正快速的可执行文件"便携式汇编程序"而闻名.但这是因为语言简化了源代码和目标代码之间的匹配,同时又简化了优化编译器的开发?或者是因为使用C的开发人员对它在木材下工作的方式更敏感,所以代码考虑到了这一点?还是其他一些原因?

人们什么时候开始思考'C是便携式汇编程序'?

小智 5

由于其灵活性,C仍然是"最快"的语言.它没有强加严格的运行时模型.开发人员可以自由地创建自己的运行时结构,体系结构和数据结构.

例如,20年前处理器"慢"(相对于内存速度),许多优化专注于在大型预计算值表中查找结果.现在,处理器速度很快,内存很慢.现在,优化集中在缓存效率上 - 因为大数据表会破坏缓存,通常会避免它们,并且任务会转移回处理器.

许多语言不仅仅是一种语言.大多数现代语言都包含繁重的运行时框架和速度所依赖的库.这些运行时框架通常锁定基础数据结构和内存管理模型.当硬件发生变化时,僵化的框架变得效率低下.

因为C可预测地编译为本机对象代码,并且没有强大的运行时,它已经并将继续处理主要的硬件体系结构更改,并且将始终是最快的语言之一.