为什么 Fortran 的编译性能要好过 C / C++

 我来答
光亮中的黑暗
2017-05-23 · TA获得超过427个赞
知道小有建树答主
回答量:63
采纳率:100%
帮助的人:27.6万
展开全部

应该是有几个原因吧。

  1. Fortran语言的Array Model及其严格的Alias语意(与C++相比). Fortran的Array Model使编译器可以很安全的做一些在C++不能做的优化,而C++的Pointer Alias更是优化中非常难做的一个地方,然而指针却是C++中非常难避免的地方(如动态内存分配),于是Pointer Alias也就很难避免的(然而这个问题在Fortran是不存在的),C99引进的restrict关键字其实可以一定程度上帮助编译器做Pointer Alias工作,所以C99的库很多部分改成了加上restrict关键字,利于编译器优化。另外,Array Model是非常适合编译器做矢量优化(vectorization),编译器可以清晰的知道数据的内存布局,使编译器可以做更好的优化。这点在《C++语言的设计与演化》中,Bjarne提到过矢量优化,也提到过为何Fortran因此而在数值计算中这么好。

  2. 历史原因。 Fortran具有足够长的历史,更是在数值计算中长期占据主要地位。编译器为其做了很多的优化,与此同时,无数的前辈使用Fortran编写了高度优化的数值计算代码,这都是无法忽视的原因,这有些如同C++在游戏编程的情形吧。

求采纳,谢谢!

逆战风云2
2017-05-23 · TA获得超过2889个赞
知道大有可为答主
回答量:2873
采纳率:0%
帮助的人:1570万
展开全部
vc6本身就已经很好用了,在vc6下可以开发出很多很好的程序出来,不在于你所使用的编程环境,关键在于自己的创意和熟练的编程技巧,这些都是外表的东西,最主要是要把自己的基础功打扎实,到时候无论使用什么环境都可以手到擒来。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式