PL/I 是一门非常古老的语言,但在科学计算方面似乎没有像 Fortran 那样得到太多的宣传和赞赏。这是为什么?在网络上搜索确实显示有许多用于科学计算的 PL/I 代码。其中有一个由 IBM 在 PL/I 中开发的科学计算库。
但是我还没有找到任何适用于 PL/I 的免费 Windows 编译器。是不是因为缺乏免费的编译器,PL/I 没有吸引到科学界?
非常感谢...
PL/I 是一门非常古老的语言,但在科学计算方面似乎没有像 Fortran 那样得到太多的宣传和赞赏。这是为什么?在网络上搜索确实显示有许多用于科学计算的 PL/I 代码。其中有一个由 IBM 在 PL/I 中开发的科学计算库。
但是我还没有找到任何适用于 PL/I 的免费 Windows 编译器。是不是因为缺乏免费的编译器,PL/I 没有吸引到科学界?
非常感谢...
我与 IBM 的人一起工作,他们构建了 PL/I 优化编译器和 PL/I 校验编译器。我喜欢使用 PL/I,但它是“第二系统效应”的经典示例:非常复杂和笨重,但功能强大。想象一下 Perl 的闭源版本,你不会离得太远。关键是闭源。语言需要数年时间才能掌握,当 PL/I 在 1970 年代中期稳定时,计算已经从大型机转向小型机。然后在 1980 年代后期,微型计算机接管了。PL/I 编译器没有设计为可移植的——它们是在 IBM 360 之后开始的,这将是任何人都需要的最后一台计算机——IBM 无法在新平台上赶上更简单、更容易移植的语言。(我无法想象 IBM 会尝试为 PDP-11 提供 PL/I 端口。)
简而言之,
我喜欢 PL/I,但我不会错过它。
这是为什么?
我认为有几个原因。
也许因为习惯是第二天性。当 PL/I 出现时,FORTRAN 已经存在了将近 10 年。当一些新技术/语言出现时,您可以通过将其称为遗留代码来开始贬低现有的代码库。但是没有理由立即开始转换。特别是在 70 年代,由于缺乏自动转换器和其他工具,这是一个大问题。
下一个原因可能是没有灵丹妙药。PL/I 试图创造这样的灵丹妙药——通用语言。他们尽了最大的努力,其余的你都知道。=) PL/I 是可怕的语言。弗罗维基百科文章:
程序员被分成了科学程序员(使用 Fortran)和商业程序员(使用 COBOL),两个群体之间存在很大的紧张甚至不喜欢。PL/I 语法从 COBOL 和 Fortran 语法中借用。因此,当时的 Fortran 程序员并没有注意到使他们的工作更容易的特性,而是注意到了 COBOL 语法并认为它是一种商业语言,而 COBOL 程序员注意到了 FORTRAN 语法并将其视为一种科学语言。
此外,像 FORTRAN 这样的“老家伙”在死亡的危险中发展,并增加了结构化编程、面向对象等特性。这降低了 PL/I 的相对优势。
PS 还请查看已经提到的维基百科文章的那部分。
同意上述观点,这就像一把刀片太多的瑞士军用小刀。
就编译器可用性而言,有一个为 gnu 编译器构建 PL/1 前端的项目。请参阅http://pl1gcc.sourceforge.net/(尽管从上一次公告之日起它看起来已经奄奄一息)。此外,http://www.thefreecountry.com/compilers/miscellaneous.shtml提到了一个用于 MSDOS 的 Digital Research PL/1 编译器,据说它是免费供个人使用的。