APL相对于A相对于J相对于K? [英] APL versus A versus J versus K?

查看:202
本文介绍了APL相对于A相对于J相对于K?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

虽然令人着迷,但阵列语言的前景却令人迷惑不已.是否有理由选择J或K或APL或A中的一个?这些选项似乎都不是开源的-是否有开源版本?我很想扩大自己的思想,但我仍然迷惑不解.

The array-language landscape, while fascinating, is confusing to no end. Is there a reason to pick one of J or K or APL or A? None of these options seem to be open-sourced -- are there open sourced versions? I would love the expand my mind, but I remain befuddled.

推荐答案

这些语言之间的差异相对较细. APL适当"具有原始符号表示法的优点和缺点. (这些年来,符号集已经做了一些微小的更改,但是对于原始视觉来说,它们都是真实的.)

The differences among these languages are relatively subtle. APL "proper" has the advantages, and disadvantages, of the original symbolic notation. (There are minor changes that have been made to the symbol set over the years, but they're all true enough to the original vision.)

A +语言是开放源代码.它与经典" APL截然不同,但就像它们保留了大多数核心字符集一样.我的感觉是,它还没有跟上技术变化的步伐.它是K的前身.

The A+ language is available open source. It departs significantly from the "classic" APLs, but is like them in keeping most of the core character set. My sense is that it has not been kept up to date with technology changes. It was a precursor to K.

数组语言家族中与独特的APL字符集不同的语言包括J,K和Nial. Nial使用英语单词代替符号,并拥有一个名为Q'Nial的开源解释器. K和J主要依赖于符号,但是这些符号是从ASCII字符集得出的.这些语言可以用单词代替符号,只需分配定义即可.

Languages in the array-language family that have departed from the distinctive APL character set include J, K, and Nial. Nial uses English words instead of symbols, and has an open source interpreter called Q'Nial. K and J rely mainly on symbols, but these are drawn from the ASCII character set. Words may be used in place of symbols in these languages, however, simply by assigning definitions.

自从APL在1964年作为IBM产品首次出现以来,APL编程语言家族一直是专有的.目前,专有数组语言似乎比开放源代码替代品具有更多的支持和新功能的更快发展.我不确定所有竞争对手如何相互竞争,但是Dyalog APL确实一直在积极地努力促进其作为当前技术的语言实现. APL2000提供了适用于Unix,Linux和Windows的产品,包括适用于.Net的VisualAPL. MicroAPL Ltd提供APLX.

The APL family of programming languages have been primarily proprietary since the initial appearance of APL as an IBM product in 1964. Proprietary array languages seem to have more support and faster evolution of new capabilities than open source alternatives at this time. I'm not sure how all the competitors stack up against one another, but Dyalog APL has certainly been working actively to promote their implementation of the language as current technology. APL2000 offers products for Unix, Linux, and Windows, including VisualAPL for .Net. MicroAPL Ltd offers APLX.

K是一种专门的语言,不再单独销售.相反,Kx Systems营销Kdb +数据库及其Q(查询)语言,两者均用K编写.这是一个功能强大的专用工具,旨在对流数据进行高速处理.它与原始的APL方法大不相同. Kx Systems产品价格昂贵,其用户大多从事财务工作.

K is a specialized language that is no longer being marketed on its own. Kx Systems is instead marketing the Kdb+ database and its Q (query) language, both of which are written in K. It's a powerful specialized tool, designed for high-speed processing of streaming data. It departs significantly from the original APL approach. Kx Systems products are expensive and their users mostly work in finance.

APL是由Ken Iverson设想和主要设计的.在商业应用中应用和完善APL的整个职业生涯之后,他转向进行合理化"修订的任务,该修订纠正了他多年来发现自己不满意的语言的各个方面.这个主题的新概念称为J.JSoftware Wiki上的一篇论文中概述了J和APL之间的区别.一项显着的变化是消除了数组索引语法.但是,最大的功能是默认形式,即程序是通过编写函数而不参考其参数来编写的.隐性J与函数式编程语言中的无点"样式密切相关,但不同之处在于这种形式是J语言的基础. J中使用的基于ASCII的符号可能比独特的APL字符更难阅读.

APL was envisioned and mainly designed by Ken Iverson. After a full career of applying and refining APL in commercial applications he turned to the task of making a "rationalized" revision, one that corrected the aspects of the language he'd found himself dissatisfied with over the years. This fresh take on the theme is called J. The differences between J and APL are sketched in a paper on the J Software wiki. One noticeable change is the elimination of array indexing syntax. The biggest feature, though, is tacit form, in which programs are written by composing functions without reference to their arguments. Tacit J is closely related to "point-free" style found in functional programming languages, but differs in that this form is fundamental to the J language. The ASCII-based symbols used in J may be harder to read than the more distinctive APL characters.

对于想要学习数组语言的个人,我的建议是在Dyalog APL,APLX,J和Q'Nial中进行选择. Dyalog APL(尤其是Windows)或APLX(特别是Linux)对于那些希望使用APL如此独特的核心象征,并希望与APL社区建立紧密联系的人来说,可能是最好的选择.对于那些想要构建Web应用程序或专注于数学的人(例如Project Euler),J尤其是特别适合那些对它所强调的默认样式着迷的人.如果我的优先级是开放源代码,那么我会选择Q'Nial,但前提是该优先级并不意味着要获得活跃的OS社区的支持.

For an individual wanting to learn an array language, my advice is to select among Dyalog APL, APLX, J, and Q'Nial. Dyalog APL (esp. for Windows) or APLX (esp. for Linux) are likely best for someone who wants to use the core symbolism that is so distinctive to APL, and who wants strong connection with the APL community as a whole. J may be best for those who want to build web applications, or focus on math (like Project Euler,) and especially those who are fascinated by the tacit style it emphasizes. Q'Nial is what I'd pick if my priority was on open source, but only if that priority did not also mean expecting the support of an active OS community.

更新:J 7.01已在GPL 3下随开源代码一起发布.此外,还有 Kona ,K的一种变体.这些增加了开源数组语言的选择.

UPDATE: J 7.01 has been released with open source code under GPL 3. In addition there is Kona, a variant on K. These increase the options for open-source array languages.

Tobia的更新: GNU APL 在GPL下可用.它严格遵循关于扩展APL语言的最新发布的ISO标准.这是一个伟大的开源APL实施,并且正在积极地开发和维护.还有其他有趣的实现,例如 ngn APL ,这是一种编写的功能强大且现代的APL实现在Coffeescript(可编译为Javascript)中使用.数组语言在2015年仍然存在并且很好.

UPDATE by Tobia: GNU APL is available under the GPL. It follows closely the latest published ISO standard on the Extended APL language. It is a great open source APL implementation and is being actively developed and maintained. There are other interesting implementations too, for example ngn APL, a surprisingly well-featured and modern implementation of APL written in Coffeescript (which compiles to Javascript.) Array languages are alive and well in 2015.

这篇关于APL相对于A相对于J相对于K?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆