如果你不明白标题,你可能太年轻了,看不懂剩下的内容。如果你不知道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
$ gfortran test.f运行它很简单,虽然我花了一段时间才记住 FORTRAN 喜欢用逗号分隔其输入值
$ ./a.out 3,4,5 A= 3 B= 4 C= 5 AREA= 6.00 SQUARE UNITS我也花了一段时间才找到一些可接受的输入值……你能说三角函数吗?
如果这对你来说都不是新鲜事,如果它看起来很老套,那么你可能参与某种 HPC(高性能计算)。如果是这样,请查看此链接,也许你可以将一些知识传递给这些年轻人。