歷史
開發史
1951年:美國IBM公司約翰·貝克斯(John Backus)針對彙編語言的缺點著手研究開發FORTRAN語言。
1954年:約翰·貝克斯在紐約正式對外發布,稱為FORTRANⅠ,FORTRANⅠ功能簡單,但它的開創性工作,在社會上引起了極大的反響。
1957年:第一個FORTRAN編譯器在IBM704計算機上實現,並首次成功運行了FORTRAN程式。
1958年:對FORTRANⅠ進行了擴充和完善,引進了子函式等概念,推出了商業化的FORTRANⅡ版本。
1962年:推出了FORTRAN Ⅳ。FORTRAN Ⅳ沒有充分考慮兼容性,導致FORTRANⅡ程式不能在FORTRAN Ⅳ系統中運行,使其套用受到了很大限制,這時語言不兼容性問題和影響被突出表現出來。此前也出現過FORTRAN Ⅲ,但由於存在嚴重缺陷,沒有在計算機上實現。
標準化
隨著FORTRAN語言版本的不斷更新和變化,語言不兼容性問題日益突出,語言標準化工作被提上了日程。
1962年5月:美國標準化協會(簡稱ANSI)著手進行FORTRAN語言標準化的研究工作。
1966年:ANSI正式公布了兩個標準文本:美國國家標準FORTRAN(ANSI X3.9-1966)和美國國家標準基本FORTRAN(ANSI X3.10-1966),前者相當於FORTRAN Ⅳ,後者相當於FORTRANⅡ。基本FORTRAN是美國國家標準FORTRAN的一個子集,從而實現了語言的向下兼容,初步解決了語言的兼容性問題。通常稱美國國家標準FORTRAN為FORTRAN 66。FORTRAN 66的推出在國際上產生了廣泛影響。
1972年:國際標準化組織(簡稱ISO)在FORTRAN 66基礎上制定了FORTRAN語言三級國際標準:基本級、中間級和完全級。
20世紀60代末,結構化程式設計方法提出後,具有結構化特徵的程式設計語言開始出現。如:ALGOL、PASCAL、MODULA、C等。計算機廠商和研究機構的高度重視將結構化特徵引入FORTRAN 66,並開始對FORTRAN 66進行不同程度的擴充,引入了結構化特徵。
1976年:ANSI對FORTRAN 66(ANSI X3.9-1966)進行了修訂,吸收了計算機廠商所擴充的一些具有可行性的功能,同時增加了許多新內容。
1978年4月:ANSI正式公布了新的美國國家標準(程式設計語言FORTRAN ANSI X3.9-1978),同時宣布撤消ANSI FORTRAN 3.9-1966,通常稱新標準為FORTRAN 77(該版本原計畫1977年公布)。FORTRAN 77向下兼容FORTRAN 66。
1980年:FORTRAN 77被ISO正式確定為國際標準ISO 1539-1980,該標準分全集和子集。FORTRAN 77推出後,由於具有結構化特徵,在社會上得到了廣泛套用,同時由於擴充了字元處理功能,在非數值處理領域也能大顯身手。
20世紀80年代末,FORTRAN 77結構化和現代化的研究開始興起。
1991年5月:ANSI公布了新的美國國家標準FORTRAN(ANSI 3.198-1991)。之後,ISO採納該標準,並確定為國際標準ISO/IEC 1539-1:1991,新國際標準還採納了中國計算機和信息處理標準化技術委員會程式設計分會提出的多位元組字元集數據類型及相應的內部函式,為非英語國家使用計算機提供了極大的方便。通常稱新標準為Fortran 90,Fortran 90向下兼容FORTRAN 77。之後不久又出現了Fortran 95。
Fortran 90的推出,使傳統Fortran語言具有了現代氣息。Fortran 2003 的規則已經由ISO組織制定發布。
平台化
Windows平台下,微軟公司將Fortran 90無縫集成在Developer Studio集成開發環境之中,推出了Microsoft Fortran PowerStation 4.0,使Fortran 90真正實現了可視化編程,徹底告別了傳統DOS環境(字元界面),轉到了現代Windows環境(視窗界面),共享微軟公司Windows平台的豐富資源。
1997年3月:微軟公司和數據設備公司(Digital Equipment Corp,簡稱DEC)合作研究、開發和推出了功能更強的Fortran語言新版本:Digital Visual FORTRAN 5.0,它是Microsoft FORTRAN PowerStation 4.0的升級換代產品。DEC公司在高性能科學和工程計算方面擁有先進的技術,研發了高質量的FORTRAN編譯器。
1998年1月:DEC與Compaq公司合併,DEC成為Compaq公司的全資子公司,於是Digital Visual Fortran更名為Compaq Visual Fortran,其最新版本為Compaq Visual Fortran 6.6。Compaq和HP合併之後,Compaq的Fortran小組和Intel的Fortran開發小組合併,開發出來Intel Fotran編譯器9,有Linux和windows2個版本,其Windows版本為Intel Visual Fortran, 可以和微軟的Visual Studio,net集成。Windows平台下還有PGI,Absoft,Intel等多個商業公司的Fortran編譯器,還有大量小公司的免費Fortran編譯器。
OpenMPI使Fortran等語言可以容易且免費的實現並行計算。
Linux平台下,其GCC編譯器默認支持Fortran,另外有Intel,Sun Studio,OpenMPI,Photran等共享編譯器和PGI,Absoft,lachy, IBM,SGI,HP等多個版本的商業編譯器。
基本結構
1、程式分段:一個程式由一個或若干個程式單位組成。主程式和每一個子程式分別是一個獨立的程式單位。子程式是實現模組化的有效方法。
2、每一個程式單位都是以“END”語句結束。主程式段中的END語句作用是使程式“停止運行”;子程式段中的END語句是“使流程返回調用程式”。
3、一個程式有且僅有一個主程式段,可以有0個或若干個子程式段。
4、一個程式單位包括若干行。FORTRAN行分為兩類:即語句行和非語句行。
其中語句行由一個FORTRAN語句組成。FORTRAN語句又可分為執行語句和非執行語句。非語句行,即為注釋行。
5、FORTRAN程式的基本成份是語句。一行只能有一個語句。若一個語句太長,一行內寫不下,可分寫在幾行上,但要用“續行標誌”。
6、FORTRAN程式中語句允許有標號,以便被其他句引用。
7一個程式單位中各類語句的位置是有一定規則的。一般是非執行語句放在所有可執行語句之前。
語句的分類
FORTRAN的所有語句分為可執行語句和非執行語句兩大類。
可執行語句能使FORTRAN編譯程亭產生目的程式指令。FORTRAN主要有以下三種可執行語句:
1)賦值語句;
2)控制語句;
3) 輸入/輸出語句。
非執行語句為FORTRAN編譯程式描述程式的數據類型和排列順序,並為目的程式提供有關輸入/輸出格式和數據初始化信息。非執行語句有五種;
1) 說明語句;
2) 數據初始化語句;
3) 格式(FORMAT)語句;
4)函式(FUNCTION)定義語句;
5) 子程式說明語句。[3]
下面給出語句順序所應遵守的一般原則:
(1)程式段的段頭語句,只能出現在每個程式段開始的位置。如:PROGRAM、FUNCTI0N、SUBROUTINE、BLOCK、DATA、MODULE等;
(2)如果出現USE語句,則只能出現在段頭語句之後、其他語句之前;
(3)IMPLICIT NONE語句應緊跟在USE語句之後,在其他說明語句之前;
(4)FORMAT語句和DATA語句也可以放置在可執行語句中間,不過把DATA語句放置在可執行語句中間是一種過時的做法;
(5)PARAMETER語句可以出現在DATA語句和可執行語句之前、IMPLICIT NONE語句之後的任何位置上;
(6)其他說明語句應出現在DATA語句和可執行語句之前。