浅谈Fortran语言

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sysu_liangwj/article/details/78817889

Fortran作为世界上最早出现的计算机高级程序设计语言,是约翰·巴科斯在IBM工作时为了缩短编程时间而设计的一种语言,这个项目后来被称为了“公式翻译”(“FormulaTranslation”)。

在巴科斯大学将近毕业的时候,他参观了IBM计算机中心,看到当时的一台可选循序电子计算机(SSEC),这台计算机体积非常庞大,占据很大的一个房间,在其中密布这仪表和线路。后来巴科斯就在这家公司里工作了,工作压力可不小(然而他乐在其中呢)。

当时的机器实际上并不是现代意义上的计算机,它没有储存软件的存储器,每次都需要考穿孔带“喂”进去。那台SSEC有着成千上万个电子机械部件,运行起来并非十分可靠,大概每三分钟就会出错,然后停止运行,程序员们必须想办法让它重新启动。

而程序员们在编写程序上也是十分的艰难,每一条程序都是一串长长的数码。在巴科斯开发了Speedcoding利用浮点数来支持运算的程序后,在1951年他跟他的精英团队便着手于打造这款“能让编程更容易”的语言,最终在1954年正式对外发布。

从此一改过去全用机器语言或编程语言编写程序的局面,也大大缩短了程序员们花在程序排错上的时间,是计算机高级程序设计语言的开端,为往后其他高级语言的开发提供了重要参考。

求5的阶乘
*汇编语言

DATAS SEGMENT
NUM  DW 5
SUN  DW 0
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
MOV CX,NUM
MOV AX,1
MOV SI,1
L1:
MUL SI
INC SI
LOOP L1    
MOV SUM,AX
MOV AH,4CH
INT 21H
CODES ENDS
END START

*Fortran

fact=1
do 10,n=1,5,1
    fact=fact*n
10 continue
print*,fact
end

Fortran的优越性便可见一斑,当然,现在肯定不能够再用汇编语言甚至是机器语言来做比较啦,显然毫无意义。然而,即使是拿Fortran跟现在其他的许多高级语言相比较,在某些方面Fortran还是有那么一点优势的,比如数学计算性能方面。

以下是博主YTYT2002YTYT曾经分别在C#、C++和Fortran上做的测试。(测试的代码这里就不贴了)

测试结果如下:
测试结果
测试结果

虽然Fortran现在仍然在不断更新换代以适应新的编译需求,但这款历史悠久的语言似乎已经被大部分人所丢弃了。在Python、Ruby等新生代脚本语言的蓬勃发展中,Fortran能够继续称霸的境地或许就只还有数学计算性能方面吧。

688字

展开阅读全文

没有更多推荐了,返回首页