函数式编程再度兴起
1. 历史回顾
在计算机发展历程中,1981 年是一个重要的转折点。当时,计算领域的焦点从由身着白大褂的专业程序员操作的大型机器,转向了由一群不拘小节的黑客打造和编程的廉价桌面计算机。作者从美国中西部迁至帕洛阿尔托,参与创办一份新的周报以报道这些新兴力量。与此同时,在 NASA 的莫菲特场,那台启发了斯坦利·库布里克和亚瑟·C·克拉克创作 HAL 9000 的 ILLIAC IV 计算机正式退役并被拆解。
ILLIAC IV 在计算机设计史上具有传奇性的关键地位,在函数式编程漫长而复杂的历史中也占据着类似的重要位置。其设计理念是摆脱自计算机诞生以来一直占据主导地位的顺序模型。对于某些特定的问题领域,如流体动力学,并行处理是最佳的解决方式,而 ILLIAC IV 正是专门为这类并行问题设计的,即单指令多数据(SIMD)问题,也就是一条指令可以并行应用于多组数据。虽然更普遍的多指令多数据(MIMD)情况更为复杂,但所有类型的并行编程都需要新的算法和思维方式,这也为函数式编程提供了契机。
函数式编程(FP),按照维基百科的定义,“将计算视为数学函数的求值,并尽可能避免改变状态和使用可变数据”。函数式编程自 20 世纪 50 年代约翰·麦卡锡发明 Lisp 语言时就已存在,但并行处理的需求为其发展提供了新的动力。尽管在当时,避免改变状态是一个难以接受的概念,但它恰好适合 SIMD 模型。这促使了新的函数式编程语言的发展以及现有语言功能的增强。当时,大多数从事科学计算的人使用 Fortran 语言,因此对其进行增强是很自然的选择。ILLIAC IV 的程序员可以使用 IVTRAN、TRANQUIL 或 CFD 等并行化版本的 FORTRAN,此外还有并行化版本的 ALG
超级会员免费看
订阅专栏 解锁全文
898

被折叠的 条评论
为什么被折叠?



