为什么PL /我没有在科学计算中做到这一点?

yCa*_*ran 8 programming-languages scientific-computing pl-i

PL/I是一种非常古老的语言,但似乎没有像科学计算的Fortran那样得到太多的宣传和赞赏.这是为什么?在网上搜索确实表明有许多用于科学计算的PL/I代码.其中包括IBM在PL/I中开发的科学计算库.

但我还没有为PL/I找到任何Windows免费编译器.PL/I是否因为缺乏免费的编译器而没有吸引科学界?

非常感谢...

Nor*_*sey 12

我与IBM的人一起工作,他们构建了PL/I优化编译器和PL/I结账编译器.我喜欢使用PL/I,但它是"第二系统效果"的典型例子:非常复杂和笨重,虽然功能强大.想象一下Perl的闭源版本,你也不会太离谱.而关键是闭源.语言需要数年才能掌握,到20世纪70年代中期PL/I稳定时,计算已经从大型机转向小型计算机.然后在20世纪80年代后期,微型计算机接管了.PL/I编译器不是设计为可移植的 - 它们是在IBM 360之后启动的,它将成为任何人都需要的最后一台计算机 - 而且IBM无法在新平台上赶上更简单,更容易移植的语言.(并不是说我能想象IBM试图为PDP-11提供PL/I端口.)

简而言之,

  1. 除了IBM之外,没有人能让PL/I成功.
  2. IBM只关心他们自己的大型机硬件.
  3. PL/I很难移植到其他硬件上.
  4. 当大型机时代已经结束时,PL/I就为时已晚.

我喜欢PL/I,但我不会错过它.


Wil*_*cat 6

这是为什么?

我认为有几个原因.

也许是因为习惯是第二天性.当PL/I出现时,FORTRAN已经存在了将近10年.当出现一些新技术/语言时,您可以通过将其称为遗留代码来开始贬低现有代码库.但没有理由立即开始转换.特别是由于缺乏自动化转换器和其他工具,这在70年代是个大问题.

下一个原因可能是没有银弹.PL/I试图创造这样的银弹 - 通用语言.他们尽了最大努力,你知道其余的.=)PL/I是一种滔天的语言.Frow 维基百科文章:

程序员大致分为科学程序员(使用Fortran)和商业程序员(使用COBOL),他们之间存在很大的紧张甚至不喜欢.PL/I语法借用了COBOL和Fortran语法.因此,当时的Fortran程序员注意到COBOL语法并且认为它是一种商业语言,而COBOL程序员注意到FORTRAN语法并将其视为科学语言,而不是注意到使他们的工作更容易的功能.

像FORTRAN这样的"老人"也会在死亡的危险下进化,并增加了结构化编程,面向对象等功能.这降低了PL/I的相对优势.

PS还要看一下已经提到的维基百科文章的那一部分.