只是想知道,因为我一直认为Fortran用于超级计算.但是,我经常听到C编译器可以使C像Fortran一样快,所以它的使用是否有限?
另外,如果这是真的,那么最快的C编译器是什么?
提前致谢.
Jon*_*rsi 11
哎呀!不,不,不.而在相关的新闻,越来越多的Fortran一些OOP /多态的东西没有过时的C++,二郎不会呈现哈斯克尔是多余的,Python有没有被杀的bash脚本,PHP并不排除对JavaScript的需要,神不知鬼不觉,一切都没有打死关于Java,等等,有很多编程语言出于某种原因 - 有一组程序员发现它们是特定工作的好工具.你不必喜欢他们,因为那是真的.
从根本上说,C是一种系统编程语言.在其中编写类似计算科学的东西是非常痛苦的.C++是更好,因为它的富有,而是从事实批判遭受它没有multdimensional阵列作为第一类类型(不,它只是不好吗?),和所有技术计算对多维数组亟需依赖.缺少用于C/C++的单个标准多维数组包使得为该语言编写优化库非常困难,并且一旦提交到一个包,就必须始终使用它们的数据结构.Python遇到了同样的问题,并且会在Numpy成为Python核心的一部分之前这样做.
尽管Fortran存在各种缺陷,但Fortran是唯一专门为科学编程而设计的语言.它允许类似python或matlab的数组运算符和切片,这可以使科学程序员的生活更轻松.即使在那时,许多科学程序员也不喜欢fortran; 他们更喜欢其他语言的工具集或库.那没关系.
只是为了抵挡你的下一个问题 - 不,我们也不必同意编辑.
Fortran 具有一些允许更快的程序的属性。Esp 指针阻止编译器优化代码(数组在 C 中作为指针传递 - 数组是 HPC 中的数据结构)。这里的问题是两个指针可以别名,在 fortran 中这不会发生。在新的 C99 中,这个问题减少了,当编写得好时,正如您用 提示编译器restrict,这样的别名不会发生。
但由于公司中有很多旧的 Fortran 代码,Fortran 在不久的将来永远不会过时。