|
|
1
20
回答你原来的问题:matlab最初是用fortran编写的。 但是Matlab的创建者Cleve Moler和他的合作伙伴在1983年做的第一件事就是用C语言重写整个Matlab应用程序:
我认为今天一个更为相关的问题是:他们为什么在1983年切换到C? 我的猜测是,C可能有一些Fortran没有的特性,因此这种转换更不必要,也更符合代码可维护性的考虑。 一 杀手 Fortran77中缺少的功能是动态内存分配(仅在Fortran90中添加了动态内存分配)。绕过那个 单一的 在我看来,限制将是一个可怕的交易破坏者。 编辑: dmckee的答案很好地解释了为什么使用fortan77会很痛苦。 |
|
|
2
17
根据经验进行猜测:
Fortran(编写matlab时使用的Fortran)不支持动态内存管理。这使它成为大工作的痛苦(例如, CERNLIB ) cernlib通过在公共块中分配一个巨大的数组来解决这个问题,并为数组的单元实现一个malloc-like(de)分配器。笨重但有效:数组偏移量是指针等价物,你可以走了… |
|
3
11
我的理解是,Matlab是用霍吉语言编写的,包括但不限于C、FORTRAN、Java和Matlab本身。 我相信它在幕后使用了最好的库,包括lapack(fortran)、fftw(c)等。 我认为原始版本是纯粹的Fortran,但是随着它变得更加精致和商业化,他们并不羞于为每个组件使用正确的语言。我不怪他们——我不想用Fortran编写解析器或GUI! |
|
|
4
9
我想用下面的语句来限定这个答案-我对Fortran或Matlab一无所知 不过,我觉得你的问题几乎是你自己回答的。 你为什么不用科学语言来写内核呢?您将为手头的任务使用最合适的语言。内核最好用C语言编写,因为它更适合于处理诸如内核之类的低级任务(处理内存管理等)。 内核不是科学应用程序,因此您不会使用科学语言。 同样,我可能完全偏离了目标,但我认为这是一个非常合乎逻辑的答案。 |
|
|
5
3
你可以通过在他们的网站上,特别是在 page 首席科学家克里夫·莫勒。 |
|
|
6
3
matlab最初是用fortran编写的,它更不像是一个包装器。 FORTRAN程序。所以问题是为什么要用C重写它?事实上,为什么Fortran输了 对于C语言和其他不太适合数值计算的语言来说。答案是Fortran遭受了严重的政治创伤。出于各种原因,标准委员会可以决定替换Fortran 77。所以,当Fortran 90最终问世时,Fortran已经失去了许多其他语言的基础。这种情况现在已得到纠正。FORTRAN 2003或多或少是在GNU编译器中实现的,是一种很好的语言,它非常适合数字,而且具有动态分配快的IO和OO ISH构造多态派生类型等特点(FORTRAN 2008将会更好) 现代Fortran并不是为编写GUI接口而设计的,而是为从C语言和其他语言调用和被调用而设计的。因此,如果今天重复matlab的练习,很有可能数字位将用fortran编写,而用户界面将用其他东西编写。 |
|
|
Sudhanva c · 如何提高编码技能?[已关闭] 8 年前 |
|
|
hoffm · 为什么Ruby找不到调用方类中定义的常量? 8 年前 |
|
|
Thamme Gowda · “lambda”关键字的较短替代项? 8 年前 |
|
|
AlphaModder · 有没有带有“不寻常”访问修饰符的编程语言? 10 年前 |
|
|
lucasasecas · 有可能静态地使用动态语言吗? 11 年前 |
|
|
Eugenio Laghi · 仅由括号、加号和感叹号组成的语言 11 年前 |
|
dallin · 数组中的逗号运算符是否有名称? 12 年前 |