|「芯历史」“神器”也是“毒苹果”,MATLAB是如何长成的?


|「芯历史」“神器”也是“毒苹果”,MATLAB是如何长成的?
本文插图

MATLAB与Mathematica、Maple被业内并称为三大数学软件 。 它是美国MathWorks公司研发出品的高级技术计算语言和交互式环境集成软件 , 初版诞生于1984年 , 广泛用于算法开发、数据可视化、数据分析、仿真建模以及数值计算 。
经过近40年的演变 , 如今MATLAB提供企业版、校园版和家庭版 , 世界上有180多个国家、数百万工程师与数学家都在使用MATLAB , 可作为整个汽车、航空航天、通信、电子和工业自动化领域的基本研发工具 , 可支持设计和开发各种先进产品 , 包括汽车系统、航空飞行控制和航空电子、电信和其他电子设备、工业机械以及医疗设备 , 在工业制造、学术研究等领域具有近乎垄断的市场地位 。
那么这款商业数学软件是如何一步步变成一款“神器”的?
故事开始之前 , 先来简单介绍几个涉及到的编程语言 。
Algol
Algol是一种指令式编程语言 , 发展于1950年代中期 , 对许多其它编程语言产生了重大影响 。 可与差不多同时期的FORTRAN、LISP及COBOL并列为四大最有影响力的高阶语言 。 Algol被设计用来避免FORTRAN中一些已知的问题 , 最终引领了许多其它编程语言的兴起 , 包括PL/I、Simula、BCPL、B、Pascal及C 。 Algol引入了代码块 , 并用begin?end来分隔 。 它是第一个利用词法作用域实作巢状函式的语言 , 也是第一个注重形式语言定义的语言 。
1960年1月 , 图灵奖获得者:艾伦·佩利在巴黎举行的有全世界一流软件专家参加的讨论会上 , 发表了''算法语言Algol 60报告'' , 确定了程序设计语言Algol 60 。 Algol 60是程序设计语言发展史上的一个里程碑 , 它标志着程序设计语言成为一门独立的科学学科 , 并为后来软件自动化及软件可靠性的发展奠定了基础 。
Fortran
Fortran是一种编程语言 , 1957年由IBM开发出 , 是为了满足数值计算的需求而发展出来的 , 是世界上第一个被正式采用并流传至今的高级编程语言 。 Fortran语言的最大特性是接近数学公式的自然描述 , 在计算机里具有很高的执行效率 , 可以直接对矩阵和复数进行运算 , 其矩阵元素在记忆空间存储顺序是采用列优先(Column major) , 这几个特点后来的MATLAB有继承 。
1966年 , 美国标准化协会制定了Fortran(x3.9-1966 , 也就是Fortran 66)和Fortran(x3.10-1966)标准 , 1976年又重新对Fortran 66进行了评估 , 公布了新的Fortran标准 , 也就是Fortran 77 。 Fortran 77是具有结构化特性的编程语言 , 并在短时间内获取了巨大的成功 , 广泛地应用于科学和工程计算 , 几乎统治了数值计算领域 , 1980年被ISO接纳为国际标准 。
EISPACK和LINPACK
Cleve Moler是MathWorks现任首席数学家 , 董事长兼联合创始人 , 曾在密歇根大学 , 斯坦福大学和新墨西哥大学担任数学和计算机科学教授近20年 。
上世纪70年代和80年代初期 , Cleve在新墨西哥大学教授线性代数和数值分析 。 1970年和1975年 , 他所在的团队向美国国家科学基金会(NSF)分别申请了两个项目 , 目标是“探索开发高质量数学软件的方法、成本和资源” 。 前一个项目中 , 他的团队将手册中解决特征值问题的Algol转换为Fortran , 并在测试和可移植性方面做了大量研究 , 最终开发出EISPACK(矩阵特征系统软件包) 。 1975年 , Cleve团队重新提交了一个研究项目 , 调研数学软件的开发方法 , 诞生了一个叫LINPACK的线性方程软件包的副产品 。
|「芯历史」“神器”也是“毒苹果”,MATLAB是如何长成的?
本文插图

Cleve认为这两个项目从某种意义上来说都失败了 , 因为项目未“撰写报告或论文 , 只研发了软件 。 ”这两个软件谈不上多大的学术创新 , 但是非常有用 , LINPACK更是世界超级计算机排行榜Tops500的基准测试程序 , 可以说是影响了世界超级计算机的发展 。


推荐阅读