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))。
内容由匿名用户提供,本内容不代表vibaike.com立场,内容投诉举报请联系vibaike.com客服。如若转载,请注明出处:https://vibaike.com/372006/