poster
2019-12-10, 16:49
如您所知,Fortran是用于科学计算的语言。但是,最著名的科学计算高级语言的内核已经用C而不是Fortran编写。为什么?
回答:
回答您的原始问题:Matlab最初是用Fortran编写的。但是,Matlab的创建者Cleve Moler和他的合伙人在1983年所做的第一件事就是用C重写整个Matlab应用程序:
杰克·利特尔(Jack Little)辞去了咨询公司的工作,并在西尔斯(Sears)购买了一台新的COMPAQ便携式计算机。机器只有256 KB的内存,没有硬盘。杰克必须交换5-1 / 4英寸软盘才能编译程序。杰克和史蒂夫花了一年半的时间用C语言重写MATLAB,并添加了他们所设想的新功能。 ( 两个十年来MATLAB和MathWorks的发展 (http://www.mathworks.com/company/newsletters/news_notes/clevescorner/jan06.pdf) )
我认为今天要问的一个更相关的问题是:为什么他们在1983年改用C?
我的猜测是C可能具有Fortran所不具备的某些功能,因此出于必要性以及出于代码可维护性的考虑,此切换更多。
动态内存分配是Fortran77缺少的一项杀手级功能(动态内存分配仅在Fortran90中添加)。在我看来,绕过这个单一限制将是一个可怕的交易破坏者。
编辑:
dmckee的答案很好地解释了为什么使用Fortran77会很痛苦。
更多&回答... (https://stackoverflow.com/questions/925409)
回答:
回答您的原始问题:Matlab最初是用Fortran编写的。但是,Matlab的创建者Cleve Moler和他的合伙人在1983年所做的第一件事就是用C重写整个Matlab应用程序:
杰克·利特尔(Jack Little)辞去了咨询公司的工作,并在西尔斯(Sears)购买了一台新的COMPAQ便携式计算机。机器只有256 KB的内存,没有硬盘。杰克必须交换5-1 / 4英寸软盘才能编译程序。杰克和史蒂夫花了一年半的时间用C语言重写MATLAB,并添加了他们所设想的新功能。 ( 两个十年来MATLAB和MathWorks的发展 (http://www.mathworks.com/company/newsletters/news_notes/clevescorner/jan06.pdf) )
我认为今天要问的一个更相关的问题是:为什么他们在1983年改用C?
我的猜测是C可能具有Fortran所不具备的某些功能,因此出于必要性以及出于代码可维护性的考虑,此切换更多。
动态内存分配是Fortran77缺少的一项杀手级功能(动态内存分配仅在Fortran90中添加)。在我看来,绕过这个单一限制将是一个可怕的交易破坏者。
编辑:
dmckee的答案很好地解释了为什么使用Fortran77会很痛苦。
更多&回答... (https://stackoverflow.com/questions/925409)