Fortran
編輯Fortran 是一種過程語言,自 2003 年以來也是一種面向對象的編程語言,特別用于科學、技術和研究中的數值計算。
屬性
編輯Fortran 語言過去和現在都針對數值計算進行了優化。 從一開始,Fortran 就擁有冪運算符 **——這在許多其他高級語言中是不存在的——以及復數的數據類型。 矢量和矩陣運算已通過 Fortran 90 標準化。 此外,Fortran 不區分大小寫,與 C 或 C++ 等語言不同,編譯器不區分大小寫。 用大寫還是小寫取決于程序員的風格,但總的來說,越來越多的人(例如在教科書中)看到用小寫寫所有東西的趨勢。
特別是對于科學對于物理和數值計算,Fortran 擁有廣泛的庫,這些庫仍在廣泛使用,盡管越來越多的功能現在已移植到 C 和 C++。
賦值和表達式中的數組以及內部數組函數
具有相同元素數和相同秩的數組可用于表達式和賦值,也可與標量混合使用。
真實::a(10),b(3:12)! 聲明兩個長度為 10read(*,*)a 的數組! 讀a a b=2.*a+3./a! 逐元素賦值write(*,*)b! b 的輸出
語言標準預定義了各種數組函數。 例如,MAXVAL 函數返回數組的xxx值,MAXLOC 返回xxx值的索引。 內部函數 DOT_PRODUCT 和 MATMUL 返回點積和矩陣乘法。
隱式變量聲明
基于數學符號,Fortran 中的變量無需使用其首字母的聲明即可聲明:以字母 i、j、k、l、m、n 之一開頭的標識符代表整數變量或整數函數值,所有其他字母標識符代表浮點數。
傳遞參數
最高支持 FORTRAN 77
直至并包括 FORTRAN 77,子程序在使用前無法聲明。 聲明只能指定函數返回值的類型。 編譯器通常不檢查子程序調用是否使用了正確類型的參數。 子程序(子程序或函數)的參數通常通過地址傳遞。 沒有自動類型轉換。
大多數 Fortran 系統也不執行運行時類型檢查。 這是使用這種過時的編程風格時常見的錯誤來源。
在 print_number() 子程序中,my_number 被隱式??聲明為整數,因為它以 m 開頭。 在運行時,使用真實參數 3.14 進行調用。 然后整數變量 my_number 被 3.14 的浮點表示的位填充 - 這導致任意荒謬的數值結果。
“ftnchek”等編程工具允許單獨檢查參數列表的一致性,并在這些情況下發出警告。 當前的編譯器在為常量賦值時也會執行此類檢查或生成運行時錯誤; 自 1970 年以來,這兩項測試就可以在 TR 440 計算機上使用。
現代 Fortran
在 Fortran 90 及以后的版本中,可以使用接口(interface)和模塊(module)來定義子程序的參數類型。 編譯器因此可以檢查傳遞的參數類型和預期類型是否匹配。 然而,這種披露并不是強制性的,就像 Ada 等其他編程語言中的情況一樣。 源自 Fortran 95 的 F 編程語言加強了這一點; 在 F 中,只允許調用其參數列表已知的子程序,例如,通過 use 語句。 子程序還可以指定參數是輸入參數 (intent(in))、輸出參數 (intent(out)) 還是兩者都是 (intent(in out))。
內容由匿名用戶提供,本內容不代表www.gelinmeiz.com立場,內容投訴舉報請聯系www.gelinmeiz.com客服。如若轉載,請注明出處:http://www.gelinmeiz.com/372006/