编程语言 Fortran

概述

Fortran(“公式翻译”的缩写)是一种高级编程语言,特别适合科学和工程应用。它是为电子计算机开发的第一批编程语言之一,自诞生以来经历了显著的发展。Fortran 允许高效地操作数组数据,并支持复杂的数学计算,使其成为数值天气预测、计算物理学和生物信息学等领域的首选语言。

历史方面

创造

Fortran 于 1950 年代由 IBM 开发,作为一种专为数值计算和科学计算设计的语言。第一个版本 Fortran I 于 1957 年发布。其核心理念是创建一种语言,使科学家和工程师能够编写程序,而无需了解底层硬件的复杂性。

发展

随后推出了多个版本的 Fortran,每个版本都增加了新特性并改善了可用性。Fortran II 紧随其后,增加了结构化编程特性。1966 年,Fortran IV 被引入,成为行业标准。Fortran 77(于 1978 年发布)增加了字符数据类型和改进的输入/输出能力。

从 1991 年起,Fortran 90 引入了数组编程、模块化编程、递归和动态内存分配。Fortran 2003 和 Fortran 2008 进一步增强了语言,增加了面向对象编程和与 C 语言的改进互操作性。最新标准 Fortran 2018 引入了进一步的增强,包括对并行处理的改进兼容性和功能。

现状

Fortran 在许多科学和工程学科中仍然被广泛使用,得到了现代编译器(如 GNU Fortran(gfortran)和 Intel Fortran Compiler)的支持。它拥有庞大的遗留代码库,许多科学库都是用 Fortran 编写的,使其在某些领域成为关键语言。

语法特性

强类型

Fortran 是一种强类型语言,要求明确声明变量类型。例如:

INTEGER :: i
REAL :: x
CHARACTER(len=10) :: name

数组处理

Fortran 在处理数组方面表现出色,允许对整个数组进行简单语法的操作。

REAL, DIMENSION(10) :: A
A = 2.0 * A  ! 将数组 A 的每个元素乘以 2

控制结构

Fortran 提供了常规控制结构,如循环和条件语句。

DO i = 1, 10
   IF (A(i) > 0) THEN
       PRINT *, '正数'
   END IF
END DO

函数和子程序

Fortran 允许定义函数和子程序以实现模块化编程。

FUNCTION square(x)
   REAL :: square
   REAL, INTENT(IN) :: x
   square = x * x
END FUNCTION square

隐式类型

默认情况下,Fortran 有一条规则,变量名以 "I"、"J"、"K"、"L"、"M" 或 "N" 开头的变量会被隐式视为 INTEGER。这可以被覆盖以提高清晰度。

IMPLICIT NONE  ! 禁用隐式类型
INTEGER :: I
REAL :: R

循环

Fortran 支持 do-while 循环,根据条件进行重复执行。

i = 1
DO WHILE (i <= 10)
   PRINT *, i
   i = i + 1
END DO

派生类型

Fortran 具有强大的用户定义类型,称为派生类型,允许类似结构的数据定义。

TYPE :: Person
   CHARACTER(len=20) :: name
   INTEGER :: age
END TYPE Person

TYPE(Person) :: p1

模块支持

Fortran 支持模块,用于封装数据和过程,促进代码重用和组织。

MODULE myModule
   CONTAINS
   SUBROUTINE mySubroutine()
       ! 实现
   END SUBROUTINE
END MODULE

指针的使用

Fortran 支持指针,便于动态内存管理,类似于 C 语言。

REAL, POINTER :: pA
ALLOCATE(pA(10))  ! 动态分配数组

互操作性

Fortran 具有与 C 语言互操作的特性,允许混合语言编程。

INTERFACE
   FUNCTION c_function(x) BIND(C, NAME="c_function")
       INTEGER(C_INT) :: c_function(INTEGER)
   END FUNCTION c_function
END INTERFACE

开发工具和运行时

编译器和解释器

最流行的 Fortran 编译器包括:

集成开发环境 (IDEs)

虽然 Fortran 并不像其他一些语言那样常与现代 IDE 关联,但仍有几个 IDE 支持它:

构建项目

构建 Fortran 项目通常涉及创建扩展名为 .f、.f90 或 .f95 的源文件,并使用 Fortran 编译器进行编译。一个典型的命令可能如下所示:

gfortran -o my_program my_source.f90

Fortran 的应用

Fortran 广泛用于科学计算、数值天气预测、气候建模、计算物理、计算化学和生物信息学。它以在重数值计算和模拟中的性能而闻名。

与类似语言的比较

Fortran 在科学和工程编程领域的主要竞争对手包括:

源到源翻译提示

Fortran 有几种源到源翻译工具,可以帮助开发人员将遗留代码转换为更现代的语言或优化现有代码。一些工具包括:

这些工具简化了从旧版本 Fortran 或完全不同编程范式的过渡,同时帮助保持性能和功能。