什么是Fortran语言比C语言更好

2022-02-14 23:46:54

C语言(C,C++,java)可以做很多事情,但是几十年来,没有什么改变了他们的一些控制结构的不足之处。另一方面,Fortran已经进化。下面是一些让实现一些算法更容易的事情。(是的,C语言中有一些变通方法,但它们没有那么优雅)。

在类C语言中,从深度嵌套的循环中退出并不是一件小事(不使用goto,所以甚至不要去那里)。C中的break语句只存在于中断所在的循环中。如果中断出现在嵌套循环中,则中断只会离开它所在的循环。在C语言中,没有一个break语句可以突破多个嵌套级别。可以添加额外的条件,例如在C中:

然而,Fortran允许命名循环,因此退出嵌套循环与命名要退出的循环一样简单。

C在switch中没有范围…好吧,所以有些编译器,比如gnu C,提供它作为扩展,但它不是规范的一部分。Fortran允许它作为标准的一部分。

如果你处理数组,你就会知道在一种语言中进行数组切片是多么重要——因为它使操作数组变得非常容易。为什么不用写循环呢?下面是Fortran中的两个数组声明。

当使用上面的单个语句打印时,2D中的数组可能会很混乱。可以使用单个循环和切片,使事情看起来更好。循环控制行,列都使用“:”符号包含。

Fortran默认索引数组为1。但是,您并不局限于此,您可以指定任何数组的索引范围。以下是一些例子:

使语言更容易适应算法,而不是相反。

不管人们怎么说,挂起else确实会在像C这样的语言中引起问题。所有Fortran控制结构都被终止的事实阻止了这一点。也不需要{and}或类似的符号来表示控制块的开始和结束。

Fortran很酷,因为它易于学习,很难产生灾难性的错误,而且对于数值计算来说,可能没有更快的语言。当然,它可能缺乏C语言的一些低级功能,但并非每种语言都必须如此接近系统。