2010-04-20 85 views
1

什么是通用编译器的最大可接受渐近运行时间?编译器的渐近复杂性

澄清:编译过程本身的复杂性,而不是编译的程序的复杂性。根据程序的大小,例如,源代码字符,语句,变量,过程,基本块,中间语言指令,汇编程序指令等等的数量。

这很大程度上取决于你的观点,所以这是一个社区wiki。

从编写编译器的人的角度看这个。优化级别-O4是否曾用于较大的程序,当其中一个优化需要O(n^6)时?

相关的问题:

  • 当为superoptimisation(指数复杂,甚至数不清)接受吗?

  • 什么是JITs可以接受?它是否必须是线性的?

  • 已建立的编译器的复杂性是什么? GCC? VC?英特尔? Java的? C#? Turbo Pascal? LCC? LLVM? (参考?)

如果你不知道什么是asymptotic complexity:你多久愿意等到编译器编译你的项目? (不包括脚本语言)

回答

1

我不认为你会发现任何需要对每个源文件进行最高级别优化的大型项目。我希望只在那些真正需要它的文件/类/模块上进行优化。因此,为开发人员提供方法将这种优化的范围和成本限制在需要它的代码是很重要的。