写FORTRAN的路过……
我想问楼主运行出来的时间是多少?像你这种只操作循环指标的计算,我怀疑都被编译器优化掉了,压根就没有在算。这个跟编译选项也有很大的关系,因为i的初值是PARAMETER,理论上这是在编译阶段就能确定结果的计算,很可能已经提前算好了。
没比较过FORTRAN和C的具体速度,只想说在编写合理的情况下,FORTRAN应该是接近最快的那一档,当然也很难用满CPU的理论速度。我的直观感受是写FORTRAN的都不是专业程序员,而且很多祖传代码用的FORTRAN77确实有混乱的倾向,但应该说都是程序员的问题,不是语言本身的问题。你也可以养成习惯一上来就IMPLICIT NONE呀。看过很多人贴出组里的FORTRAN代码以证明有多难懂,我只想说写这么烂当然难懂了,你是没写过FORTRAN写得规矩的而已。而且很多FORTRAN示例自身就有问题,比如说整数与实数混用,比如说多维数组不先循环内层等等。像楼主这个示例,DOUBLE PRECISION :: i=2000000000和i=i-1就是潜在很多数据类型转换的,具体编译器怎么操作说不清楚,如果没有任何优化的话,那又是很多看不见的指令在里面了。然而这样的程序还能跑很快,这本身不就是FORTRAN存在的意义么?
我认为尽管有很多新的选择,FORTRAN这种语言还是不应该被淘汰,因为它真的给非专业程序员提供了一个很好的选项,使他们能更好地把精力放在数值方法本身,而不是非要成为一个优秀的程序员。所以用FORTRAN的同学们大可不必被那些C++准程序员们鄙视得抬不起头来,只要能达到目的就OK了。况且咱们做数值计算的,真的用不到那些花里胡哨的功能。FORTRAN是很合适的。