Question

Le paysage de langue de tableau, alors que fascinant, est source de confusion sans fin. Y at-il une raison de choisir l'un des J ou K ou APL ou A? Aucune de ces options semblent être open source - y at-il ouvrir les versions provenant? J'aimerais l'élargir mon esprit, mais je reste embrouillé.

Était-ce utile?

La solution

Les différences entre ces langues sont relativement subtiles. APL « appropriée » présente les avantages et les inconvénients, de la notation symbolique originale. (Il y a des modifications mineures qui ont été apportées au jeu de symboles au fil des ans, mais ils sont tous assez fidèle à la vision originale.)

La langue A + est open source disponible. Elle se démarque nettement des « classiques » des mines terrestres antipersonnel, mais il est comme eux en gardant la plupart du caractère de base ensemble. Mon sentiment est qu'il n'a pas été tenu à jour avec les changements technologiques. Il était un précurseur de K.

Langues dans la famille de langue de tableau qui sont partis de l'ensemble distinctif de caractères APL comprennent J, K et Nial. Nial utilise des mots anglais au lieu de symboles, et dispose d'un interpréteur open source appelé Q'Nial. K et J reposent principalement sur les symboles, mais ceux-ci sont tirés du jeu de caractères ASCII. Les mots peuvent être utilisés à la place des symboles dans ces langues, cependant, simplement en attribuant des définitions.

La famille APL des langages de programmation ont été principalement propriétaire depuis l'apparition initiale de l'APL comme un produit IBM en 1964. langues de tableau de propriété semblent avoir plus de soutien et une évolution plus rapide des nouvelles capacités que des alternatives open source à ce moment. Je ne sais pas comment tous les concurrents s'empilent les uns contre les autres, mais Dyalog APL a certainement travaillé activement à la promotion de leur mise en œuvre de la langue que la technologie actuelle. APL2000 propose des produits pour Unix, Linux et Windows, y compris VisualAPL pour .Net. MicroAPL Ltd offre APLX.

K est un langage spécialisé qui ne soit plus commercialisé sur lui-même. Kx Systems commercialise la base de données au lieu KDB + et son Q (requête) langue, qui sont tous deux écrit dans K. Il est un puissant outil spécialisé, conçu pour le traitement à grande vitesse de données en continu. Elle se démarque nettement de l'approche de l'APL d'origine. Kx Systems produits sont chers et leurs utilisateurs la plupart du temps de travail dans la finance.

APL a été imaginé et conçu principalement par Ken Iverson. Après une carrière pleine d'application et de raffinage APL dans des applications commerciales, il se tourna vers la tâche de faire une révision « rationalisée », qui a corrigé les aspects de la langue qu'il avait lui-même trouvé insatisfait au fil des ans. Ce nouveau regard sur le thème est appelé J. Les différences entre J et APL sont esquissées dans un document sur le wiki J Software. Un changement notable est l'élimination de la syntaxe d'indexation de tableau. La plus grande caractéristique, cependant, est une forme tacite, dans lequel les programmes sont écrits en composant les fonctions sans référence à leurs arguments. J Tacite est étroitement lié au style « point libre » dans les langages de programmation fonctionnelle, mais diffère en ce que cette forme est fondamentale pour la langue J. Les symboles basés sur ASCII utilisés dans J peuvent être plus difficiles à lire que les caractères APL plus distinctifs.

Pour une personne voulant apprendre une langue de tableau, mon conseil est de choisir parmi Dyalog APL, APLX, J et Q'Nial. Dyalog APL (en particulier. Pour Windows) ou APLX (en particulier. Pour Linux) sont probablement mieux pour quelqu'un qui veut utiliser le symbolisme de base qui est si distinctive à l'APL, et qui veut une connexion forte avec la communauté APL dans son ensemble. J peut être le mieux pour ceux qui veulent créer des applications Web, ou se concentrer sur les mathématiques (comme projet Euler,) et en particulier ceux qui sont fascinés par le style tacite, il met l'accent sur. Q'Nial est ce que je choisirais si ma priorité était open source, mais seulement si cette priorité ne veut pas dire aussi attendre le soutien d'une communauté OS active.


MISE À JOUR: J 7.01 a été publié avec le code open source sous licence GPL 3. En outre, il est Kona , une variante sur K. Ceux-ci augmentent les options pour les langues de tableau open source.

Mise à jour par Tobia: GNU APL available sous la GPL. Il suit de près la dernière publiée norme ISO sur la langue élargie APL. Il est une grande mise en œuvre de l'APL open source et est activement développé et maintenu. Il existe d'autres implémentations intéressantes aussi, par exemple ngn APL , une mise en œuvre étonnamment bien comporté et moderne de l'APL écrit dans coffeescript (qui compile JavaScript.) langues Array sont en vie et bien en 2015.

Autres conseils

Pour ajouter un peu plus d'informations ...

Il existe une version open source de K appelé Kona https://github.com/kevinlawler/kona

Pour q/kdb+, il y a une version d'essai. http://kx.com/download/

Les principales limites sont 2 délai d'attente d'une heure, la mémoire 32 bits, 3 expiration de la licence de mois, et la licence elle-même. Ceux-ci ne devraient pas être trop gênant si vous voulez juste jouer et apprendre quelque chose.

Personnellement, je trouve q être le plus facile à utiliser depuis KX traduit les monades (seul argument) verbes de K en mots anglais et il y a une bonne quantité de documentation @ http://code.kx.com . En outre, le système de base de données est extrêmement bien pensé et flexible.

Quelque chose à considérer est le vocabulaire des opérateurs (fonctions d'ordre supérieur).

Original APL a seulement la dernière et la première réduction de l'axe (f/, f⌿), le dernier et premier axe réduction cumulative (f\, f⍀), plus le produit intérieur et extérieur (f.g, ∘.g).

Les plus étendue APL (par exemple GNU APL, APLX, APL + Win, APL2) ajouter seulement la

chaque boucle (), et l'axe spécification de support (f[ ... de ]).

J, a ajouté une pléthore (appelé adverbes et conjonctions), mais retirée consoles (deux axes et d'indexation), chaque opérateur de la (au profit de l'opérateur de rang plus général), et enfin la réduction de l'axe (cumulatif).

La défunte de Sharp APL (SAX) a retenu aussi bien les opérateurs traditionnels dernier axe et indexation support, tout en ajoutant un grand nombre de nouveaux opérateurs de J.

Dyalog APL se rapproche peu à peu le vocabulaire de Sharp APL, mais a également intégré les opérateurs J-exclusif qui ne sont jamais arrivés dans l'APL de Sharp.

Le tableau ci-dessous compare J Sharp APL, et les vocabulaires de composition Dyalog APL. Les entrées grisées sont sous proposition. J, dièse APL, et Dyalog compositions APL

J est une notation mathématique exécutable qui est entrée et affichée en utilisant des caractères ASCII.

Il est également fonctionnel à part entière, orienté objet, Langage de programmation.

La mise en œuvre JSoftware de J (je ne sais pas d'autres) ne sont pas open source, mais il est libre d'utiliser.

Bien que le moteur n'est pas open source, il y a une bibliothèque utilisateur actif de code J auquel les gens peuvent y contribuer.

J possède une vaste documentation concise http://www.jsoftware.com/help.htm et membres du forum heureux et répondre rapidement à toute question ou problème et sont désireux d'aider les nouveaux utilisateurs s'orientent ainsi que des problèmes plus avancés.

Sur la question Open Source en passant, la documentation (spécification) J est vaste et tout le monde pourrait en théorie créer un projet open source pour tenter de mettre en œuvre J si elles le voulaient.

ELI est un tout nouveau, disponible gratuitement, multi-plateforme, langage de programmation de tableau. Semblable à J et k il repose sur le jeu de caractères ASCII. Il met en œuvre quelques-unes des caractéristiques qui (comme je sais) étaient uniques à k / q / KDB + tels que le type de données temporelles et SQL intégré sous-ensemble.

Alors que A + semble (malheureusement) un projet mort, il y a un nouvel interpréteur APL open-source: GNU APL .

Je reste aussi embrouillé (APL m'a toujours confondu - heureusement, il a été plus de 20 ans que je tentais quoi que ce soit avec lui), mais un peu de recherche a trouvé A +, une version open-source A:

Je ne sais pas ce qu'il répondra à vos besoins (ou quelqu'un de).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top