如果你不明白标题,你可能太年轻了,看不懂剩下的内容。如果你不知道John Backus是谁,或者他对计算机科学的贡献是什么,那么你可能也太年轻了。

我做的第一个编程是使用打孔卡片,用一种叫做 DITRAN 的语言。DITRAN 是 FORTRAN 的一个诊断版本。我发现它和看玉米生长一样无聊。

几年后,坐在 CRT 面前,情况完全不同了,我着迷了。我们在 Prime 300 小型计算机上用 FORTRAN 66(你没看错)开发会计应用程序。 Prime 有一个 BASIC 解释器,但那是给弱者用的。

所以,今天我想知道我是否可以在 Linux 上编译并运行 FORTRAN 程序。我遇到的第一个问题是,我不记得足够的 FORTRAN 来实际编写程序,所以我从 Wikipedia FORTRAN 页面上偷了这个。不得不做一些小的修改才能编译

C AREA OF A TRIANGLE WITH A STANDARD SQUARE ROOT FUNCTION 
C INPUT - CARD READER UNIT 5, INTEGER INPUT
C OUTPUT - LINE PRINTER UNIT 6, REAL OUTPUT
C INPUT ERROR DISPLAY ERROR OUTPUT CODE 1 IN JOB CONTROL LISTING
      READ 501, IA, IB, IC
  501 FORMAT (3I5)
C IA, IB, AND IC MAY NOT BE NEGATIVE
C FURTHERMORE, THE SUM OF TWO SIDES OF A TRIANGLE
C IS GREATER THAN THE THIRD SIDE, SO WE CHECK FOR THAT, TOO
      IF (IA) 777, 777, 701
  701 IF (IB) 777, 777, 702
  702 IF (IC) 777, 777, 703
  703 IF (IA+IB-IC) 777,777,704
  704 IF (IA+IC-IB) 777,777,705
  705 IF (IB+IC-IA) 777,777,799
  777 STOP 1
C USING HERON'S FORMULA WE CALCULATE THE
C AREA OF THE TRIANGLE
  799 S = FLOAT (IA + IB + IC) / 2.0
      AREA = SQRT( S * (S - FLOAT(IA)) * (S - FLOAT(IB)) *
     +     (S - FLOAT(IC)))
      WRITE (0,601) IA, IB, IC, AREA
  601 FORMAT (4H A= ,I5,5H  B= ,I5,5H  C= ,I5,8H  AREA= ,F10.2, 
     +        13H SQUARE UNITS)
      STOP
      END
要编译它,您需要您的发行版的 gcc-fortran 包。假设源文件是“test.f”,使用以下命令编译它
  $ gfortran test.f
运行它很简单,虽然我花了一段时间才记住 FORTRAN 喜欢用逗号分隔其输入值
  $ ./a.out
  3,4,5
  A=     3  B=     4  C=     5  AREA=       6.00 SQUARE UNITS
我也花了一段时间才找到一些可接受的输入值……你能说三角函数吗?

如果这对你来说都不是新鲜事,如果它看起来很老套,那么你可能参与某种 HPC(高性能计算)。如果是这样,请查看此链接,也许你可以将一些知识传递给这些年轻人。