编程语言之Fortran
2010-01-10 14:17:53 阿炯

Fortran可音译为福传,源自于“公式翻译”(英语:Formula Translation)的缩写,它是通用的编译型指令式编程语言,特别适用于数值计算和科学计算。它在1957年由IBM开发出来,是世界上第一个被正式采用并流传至今的高级编程语言。


Fortran最初由IBM在1950年代开发,用于科学和工程应用,并随后长时间统治了科学计算编程。它已经在计算密集领域里应用了超过六个年代,比如数值天气预报、有限元分析、计算流体力学、地球物理学、计算物理学、晶体学和计算化学。它是高性能计算的流行语言,并被用于世界上最快超级计算机的基准测试和排名。它有很多版本,每个都增加扩展却在很大程度上保持与前面版本的兼容性。后续版本已经增加支持了:结构化编程和基于字符数据的处理(FORTRAN 77),阵列编程、模块化编程和泛型编程(Fortran 90),高性能Fortran (Fortran 95),面向对象编程(Fortran 2003),并发计算(Fortran 2008)和天然的并行计算能力(Coarray Fortran 2008/2018)。

Fortran的设计是很多其他语言的基础。其中最周知的是BASIC,它基于了FORTRAN II,具有一些语法清理,尤其是更好的逻辑结构,和其他在交互式环境中使工作更加容易的变更。 其发展过程中有如下的演进过程:ORTRAN II、FORTRAN III、FORTRAN IV、FORTRAN 66、FORTRAN 77、Fortran 90、Fortran 95;Fortran 2003、Fortran 2008、Fortran 2018、Fortran 2023。

其最大特征是接近数学公式的自然描述,在计算机里具有很高的执行效率。Fortran可以直接对矩阵和复数进行运算。其矩阵元素在记忆空间存储次序,采用了纵列为主(Column major)次序,Matlab也承袭这点,而C语言则采用横行为主(Row major)次序。其诞生以来被广泛地应用于数值计算领域,特别是并行计算和高性能计算领域。很多专用的大型数值运算计算机针对Fortran做了优化。Fortran积累了大量高效而可靠的源程序。Fortran 90、95、2003、2008、2018的相继推出,使其具备了现代高级编程语言的一些特征。


John Backus(1924年-2007年),他于1953年12月发起FORTRAN项目,于1977年获得图灵奖。

FORTRAN语言被科学家广泛接纳,用来书写数值计算密集程序,这鼓励编译器作者生产可以生成更快和更高效代码的编译器。在语言中包括复数数据类型,使得Fortran特别适合于技术应用比如电子工程。到了1960年,FORTRAN版本已经可获得于IBM 709、650、1620和7090计算机上。FORTRAN流行性的显著增长,刺激了竞争计算机制造商在它们的机器上提供FORTRAN编译器,因此到了1963年,存在了超过40个FORTRAN编译器。因此FORTRAN被认为是第一个广泛使用的跨平台编程语言。

Fortran的发展平行于编译器技术的早期演进,在理论和编译器设计上的进步,受到为Fortran程序生成高效代码的激励。


编译器

Windows操作系统下:
Fortran Power Station 4.0(FPS 4.0),微软公司开发的Fortran编译器。1997年3月转让给DEC公司。
Digital Visual Fortran(DVF),Fortran Power Station的DEC公司版本,版本号为5.0.x ~ 6.0.x。
Compaq Visual Fortran(CVF),1998年1月,DEC公司被康柏公司收购,Digital Visual Fortran更名为Compaq Visual Fortran,版本号为6.5.x ~ 6.6.B。2002年5月康柏公司已并入惠普公司,但CVF并未改名,版本号升级到6.6.C。
Intel Fortran,英特尔公司开发的Fortran编译器。惠普购买了CVF技术之后不久,将Windows平台上的从CVF 6.6.C之后Fortran编译器相关权利全部转售给Intel,它需要微软Visual Studio外壳的支持才能实现Visual IDE功能。在Intel手上的版本编号从7.0开始至现在。
Absoft Fortran
Open Watcom
Silverfrost FTN95,个人用户可免费使用的Fortran 95编译器包。支持编译为Win32或.NET可执行程序,内置名为Plato的IDE,也可通过插件支持Visual Studio,调试器使用SDBG。

Linux操作系统下:
PGI Fortran,现已被Nvidia收购。
g77,GNU的Fortran 77编译器,集成在GCC中。
gfortran,GNU的最新的Fortran编译器,集成在GCC 4.x及以上版本中,目前支持全部Fortran 95、大部分Fortran 2003和Fortran 2008的功能,以替代g77。
Intel Fortran,它支持Linux操作系统。
Absoft Fortran
G95,开放源代码的Fortran 95编译器。
Sun Studio
Open64编译器

FORTRAN数值库

几个著名的Fortran软件包:
IMSL — 国际数学和统计库的数值库
MKL — Intel数学核心库
NAG — 数值算法组的数值库
BLAS — 基本线性代数子程序库
LAPACK — 线性代数软件包


TIOBE公布了2024年5月的编程语言排行榜。Fortran 在 20 多年后再次进入了 TIOBE 指数前 10 的位置。事实上,早在 4 月榜单中其就已经进入了 Top 10;5 月该语言则继续保持住了这一排名。在 TIOBE 所测量到的数据中,“Fortran programming” 在亚马逊图书平台上的点击率超过了 1000 次。而与之相较,像 Kotlin 和 Rust 一类的新潮语言,在同样的搜索条件下点击量仅为 300。对于 Fortran 的这一复活,TIOBE CEO Paul Jansen 认为,一方面原因在于 Fortran 语言自 1957 年诞生至今仍不断发展。譬如在不到半年前,发布了新的 ISO Fortran 2023 定义。主要原因则在于数值/数学计算的重要性日益增加。

“尽管这个领域有很多竞争对手,但 Fortran 有其存在的理由。Python:第一选择,但速度较慢;MATLAB:非常易于用于数学计算,但许可昂贵;C/C++:主流且快速,但它们没有原生数学计算支持;R:与 Python 非常相似,但不太流行且速度较慢;Julia:冉冉升起的新星,但尚未成熟。在这个语言丛林中,Fortran 似乎速度很快,具有本地数学计算支持,成熟且Free。Fortran 悄然、缓慢但坚定地取得了进展。这是令人惊讶但不可否认的。”


最新版本:2023
Fortran 2023 已于2023年11月下旬发布。这是 Fortran 语言的最新版本,它在性能、易用性和并行编程方面都有显著的改进。如果您正在编写一个需要对大型数值数组进行快速计算的程序或库,Fortran 2023 是您的最佳选择,其根据 ISO/IEC 1539-1:2023 标准发布。Fortran 它是一种高性能并行编程语言,专为科学和工程计算而设计。Fortran 2023 具有许多强大的特性,使得它成为处理大规模数值数组的快速计算的理想工具。相关特性如下:

高性能:Fortran 2023 针对科学和工程计算应用进行了优化,具有成熟且经过实战验证的编译器和库,可以编写接近底层的高效二进制代码。

静态和强类型:Fortran 是一种静态和强类型的语言,这使得编译器能够在早期捕捉到许多编程错误。这也使得编译器能够生成高效的二进制代码。

易学易用:Fortran 是一种相对简单的语言,学习和使用起来非常容易。通过将大多数数学和算术操作表达为方程式,可以轻松地处理大型数组。

多功能:Fortran 允许您以最适合问题的方式编写代码:命令式、过程式、面向数组、面向对象或函数式。

本地并行:Fortran 是一种本地并行编程语言,具有直观的类似数组的语法,用于在 CPU 之间传递数据。您可以在单个 CPU 上、共享内存多核系统上或分布式内存的 HPC 或基于云的系统上运行几乎相同的代码。Coarrays、teams、events 和集体子程序允许您表达最适合当前问题的不同并行编程模式。

有关语法变更的摘要请查看此处

官方主页:https://fortran-lang.org/