我正在使用 Dyalog APL,但我发现某些功能在 gnu-apl 中不可用。这两个 APL 实现与所有其他 APL 实现之间是否存在很大差异?最常用的 APL 编译器是什么?
2 回答
出于所有实际目的,所有商业 APL 实现都是解释器。
那里有少数供应商,APL2000、Dyalog、IBM 和 MicroAPL,可能还有其他供应商。我今天所知道的三个非商业 APL 工作是 GNU APL、NARS2000 和在您的浏览器上运行的 NGN APL。
我认为我无法准确猜测出最常用的系统。这可能取决于您在(遥远的)过去使用的 APL 系统 - STSC 分时或 APL*Plus\PC 用户可能倾向于使用 APL2000,Sharp 分时可能会使用 Dyalog,而 IBM 大型机 APL2 用户可能会坚持使用 APL2为电脑。重要特征通常具有连续性,这可能会使不同的 APL 或多或少对不同的用户有吸引力。
尽管存在核心 APL 语言之类的东西,但供应商通常会在其版本中添加语言扩展和非常重要的专有增强功能,其中包括但不限于 APL 文件系统、与 .DLL 或 .SO 文件等系统设施的接口、.Net、Java、Windows 和表单设计增强、面向对象的特性等等。
所以是的,不同的 APL 实现之间存在很大差异。这是你需要什么的问题。
我使用 Dyalog APL 和 apl2000'S APL+ 系列完成了专业工作,但更多的是后者。也许正因为如此,我更喜欢它,但这在很大程度上是一个品味问题。每个都有许多对核心语言的专有扩展。有些,例如控制结构,以非常相似的方式实现,有些,例如定义的运算符,是一个系统所独有的。但是我发现几乎任何序列或算法都可以很容易地从一个转换到另一个,而且我还没有找到任何可以在一个中完成而在另一个中不太容易完成的事情,也许是方法略有不同。我从未在 IBM 的 APL2 上从事过专业工作,但并没有什么不同。