或者以更相关的方式措辞,编程语言的哪些特性会影响相应生成的可执行文件的稳定性?
当然,生成可执行文件的编译器确实很重要.例如,您可以想象一些像编译链一样先进的东西,能够从自然语言描述中推断出可执行文件,用提供的建议询问相关问题,以消除与给定数据进行良好匹配的概率是否过低的歧义.
现在C以使开发人员能够获得真正快速的可执行文件"便携式汇编程序"而闻名.但这是因为语言简化了源代码和目标代码之间的匹配,同时又简化了优化编译器的开发?或者是因为使用C的开发人员对它在木材下工作的方式更敏感,所以代码考虑到了这一点?还是其他一些原因?
小智 5
由于其灵活性,C仍然是"最快"的语言.它没有强加严格的运行时模型.开发人员可以自由地创建自己的运行时结构,体系结构和数据结构.
例如,20年前处理器"慢"(相对于内存速度),许多优化专注于在大型预计算值表中查找结果.现在,处理器速度很快,内存很慢.现在,优化集中在缓存效率上 - 因为大数据表会破坏缓存,通常会避免它们,并且任务会转移回处理器.
许多语言不仅仅是一种语言.大多数现代语言都包含繁重的运行时框架和速度所依赖的库.这些运行时框架通常锁定基础数据结构和内存管理模型.当硬件发生变化时,僵化的框架变得效率低下.
因为C可预测地编译为本机对象代码,并且没有强大的运行时,它已经并将继续处理主要的硬件体系结构更改,并且将始终是最快的语言之一.
| 归档时间: |
|
| 查看次数: |
581 次 |
| 最近记录: |