APL (A Programming Language): Programmation avec des symboles?

Divulgation: Votre soutien aide à maintenir le site en marche! Nous gagnons des frais de référence pour certains des services que nous recommandons sur cette page.


Un langage de programmation (APL) porte le nom éponyme d’un livre publié par Kenneth E Iverson en 1962.

APL est un langage de programmation mathématique unique conçu pour la concision qui a influencé le développement de feuilles de calcul modernes et de progiciels mathématiques.

Histoire d’APL

Dans les années 1950, un professeur de l’Université Harvard a créé un système de notation mathématique qui était utile pour manipuler des tableaux complexes d’informations. Ce professeur était Kenneth Iverson.

En 1960, Iverson est allé travailler pour IBM où, avec l’aide de l’ingénieur en systèmes informatiques Adin Falkoff, il a créé un langage de programmation basé sur la notation mathématique qu’il avait développée tout en travaillant dans le milieu universitaire.

Ce langage de programmation, bien que peu pratique à mettre en œuvre à l’époque, a néanmoins été publié dans le texte A Programming Language, et APL est né.

APL a été initialement utilisé chez IBM pour effectuer des recherches sur les systèmes informatiques. Cependant, tout au long des années 1960, l’acceptation de l’APL a été limitée par sa syntaxe inhabituelle qui comprend de nombreux symboles graphiques qui ne pouvaient pas être facilement représentés sur les ordinateurs à l’époque. Par conséquent, les représentations de mots clés remplaçantes devaient être utilisées plutôt que les symboles réels qu’Iverson avait prévus.

Tout cela a changé à la fin des années 1960 quand IBM a sorti un typeball spécial qui pourrait produire les symboles spéciaux utilisés dans APL.

IBM a simultanément présenté APL au public informatique en mettant APL à disposition sur les ordinateurs centraux IBM. Au cours des deux décennies suivantes, APL a plus ou moins vécu sur des ordinateurs centraux distribués par IBM et d’autres fabricants de logiciels et de matériel concurrents, jusqu’à ce que les capacités matérielles des ordinateurs personnels rattrapent la nature exigeante de la compilation d’APL.

Au début des années 80, IBM a publié une version mise à jour du langage de programmation, APL2, qui a introduit un certain nombre d’améliorations, notamment le concept de tableaux multidimensionnels imbriqués.

En 1980, Ken Iverson ne contrôlait plus APL chez IBM et a quitté pour rejoindre IP Sharp Associates, un développeur concurrent d’implémentations APL qui venait de publier une version propriétaire du langage qu’il appelait Sharp APL – un produit dont le développement futur leur plaisait. pour qu’Iverson prenne le relais.

IBM a réussi à surmonter I P Sharp en établissant sa version d’APL, APL2, en tant qu’implémentation APL standard de l’industrie. À ce jour, les implémentations APL modernes citent généralement la compatibilité APL2.

APL moderne

Selon APL Wiki, il existe au moins cinq implémentations APL modernes:

  • APL2 2.0, d’IBM, est toujours considéré comme l’implémentation APL standard de l’industrie.

  • APLX, de Micro APL, est construit sur APL2 d’IBM avec un certain nombre d’améliorations.

  • Dyalog est un environnement de développement basé sur APL et la plate-forme APL complète la plus abordable.

  • APL + Win est un environnement de développement APL d’APL2000.

  • NARS2000 est une implémentation open-source gratuite à fonctionnalités limitées conçue pour donner aux personnes intéressées par APL la possibilité d’essayer gratuitement APL.

Syntaxe APL

Certains langages de programmation ont été intentionnellement conçus pour être facilement lus par n’importe qui – programmeur ou non.

Ruby, Python, COBOL et de nombreux autres langages de programmation utilisent une syntaxe qui peut être lue, si elle n’est pas vraiment comprise, par toute personne ayant une solide connaissance de la langue anglaise.

APL n’est pas une de ces langues.

Pour quiconque ne connaît pas la syntaxe du langage, APL ressemble à une série de symboles graphiques, de lettres et de chiffres absurdes.

Cependant, pour un programmeur APL, chaque symbole graphique ou ensemble de symboles remplace une fonction mathématique – souvent une fonction assez complexe.

En plus de sa syntaxe unique, l’utilisation de tableaux multidimensionnels imbriqués est une autre caractéristique qui rend APL quelque peu unique parmi les langages de programmation.

Symboles graphiques dans APL

Les symboles graphiques sont utilisés pour représenter les fonctions et les opérateurs. Certains des symboles utilisés sont courants et faciles à comprendre:

  • ≠: pas égal à

  • > et <: utilisé pour comparer deux valeurs et renvoyer la valeur plus ou moins grande

  • +, −, ÷ et ×: utilisés pour exécuter des fonctions mathématiques typiques.

La signification de nombreux autres symboles n’est pas évidente pour les programmeurs non APL:

  • ⍴: rho, utilisé pour renvoyer la forme d’un tableau ou remodeler un tableau.

  • ⌽: cercle stile, inverse l’ordre ou un tableau ou fait pivoter un tableau dans une direction multidimensionnelle.

  • ⍋ et ⍒: montée et descente, réorganise un tableau par ordre décroissant ou ascendant.

Ce ne sont que quelques-uns des dizaines de symboles utilisés dans APL.

Bien qu’il puisse être écrasant pour un débutant d’essayer de comprendre tous ces symboles, leur signification et comment les utiliser, les programmeurs APL expérimentés revendiquent une productivité considérablement améliorée en raison de la réduction de la frappe nécessaire pour créer des fonctions incroyablement puissantes.

Tableaux multidimensionnels imbriqués

Les tableaux simples unidimensionnels sont un type de données courant en programmation informatique. Les tableaux ne sont que des collections de variables ou de valeurs. Par exemple, [0, 1, 2] est un tableau contenant les valeurs 0, 1 et 2.

Les tableaux multidimensionnels sont constitués de plusieurs lignes d’éléments de tableau dans une disposition tabulaire. Par exemple, une continuation du tableau ci-dessus dans un tableau multidimensionnel 3 par 3 pourrait ressembler à ceci:

0 1 2
3 4 5
6 7 8

Les tableaux imbriqués sont un autre moyen d’améliorer les données contenues dans un tableau. Dans un tableau imbriqué, chaque élément est capable de contenir des tableaux supplémentaires et pas seulement des valeurs ou des variables uniques.

Dans APL, les tableaux peuvent être à la fois multidimensionnels et contenir des tableaux imbriqués. Cela peut être un peu difficile d’envelopper votre tête, alors regardons un exemple.

En utilisant le tableau multidimensionnel dans l’exemple ci-dessus, nous allons remplacer l’élément en position centrale (2, 2) (le numéro 4) par un nouveau tableau multidimensionnel composé des lettres a, b, c et d.

0 1 2
3 une b 5
c
6 7 8

Si l’élément dans les 2, 2 positions de ce tableau était référencé, le tableau contenant les variables a, b, c et d serait retourné.

La capacité des tableaux à contenir des valeurs et des variables multidimensionnelles imbriquées a été ajoutée à Sharp APL et APL2 à la fin des années 1970 et au début des années 1980, et reste l’une des caractéristiques déterminantes d’APL.

Configuration d’un environnement de développement APL

Pour travailler avec APL, vous devrez équiper votre ordinateur pour produire des symboles APL et installer un interpréteur APL. Pour installer un interpréteur APL, sélectionnez l’une des implémentations APL modernes répertoriées ci-dessus.

Notre recommandation est d’installer NARS2000 ou Dyalog. NARS2000 est entièrement gratuit, mais offre un ensemble de fonctionnalités limité.

Dyalog peut être téléchargé gratuitement (faites défiler vers le bas de la page et sélectionnez Télécharger la version non enregistrée), mais vous voudrez acheter une copie enregistrée si vous finissez par utiliser APL à long terme.

Après avoir installé une implémentation APL, vous devrez configurer votre machine pour produire les symboles requis pour coder dans APL. Certaines implémentations APL incluent un menu de clavier contextuel que vous pouvez utiliser pour taper des symboles APL sans avoir à installer des polices ou acheter du nouveau matériel.

Si vous n’êtes pas prêt à vous lancer dans tous ces efforts, une autre option consiste à essayer APL dans le navigateur. TryAPL est un site Web gratuit, créé par Dyalog, où vous pouvez exécuter le code APL dans votre navigateur pour avoir une idée du fonctionnement d’APL.

Ressources APL

L’un des meilleurs endroits pour en savoir plus sur APL est le wiki APL. Cette ressource, créée en collaboration par la communauté APL, fournit une multitude de ressources éducatives et d’informations sur l’utilisation moderne de l’APL.

Si vous êtes prêt à commencer à apprendre, voici quelques-unes des ressources les plus utiles que vous trouverez sur le wiki:

  • APL en 20 minutes: un aperçu de ce qu’est l’APL et de ce qu’il peut faire.

  • Learning APL: un tutoriel pour débutants qui couvre les bases du codage en APL.

  • Bonjour tout le monde: aucune formation en programmation ne serait complète sans cet exercice classique.

  • Autres sujets dans APL: si vous avez terminé le didacticiel APL d’apprentissage, c’est une excellente étape vers la compétence APL.

  • Pratiques de travail: si vous avez terminé les didacticiels précédents, vous avez une connaissance de base d’APL, comment l’utiliser et ce qu’il peut faire. La prochaine étape consiste à commencer à travailler sur vos propres projets. Cependant, avant de faire cela, lisez les pratiques de workflow des développeurs APL expérimentés.

APL2000 est un peu différent des autres implémentations APL et peut même être utilisé dans le .NET Framework avec un petit effort supplémentaire. Si cela vous intéresse, en savoir plus sur VisualAPL d’APL200 avec ces ressources:

  • Tutoriel VisualAPL au format PDF

  • Webcasts VisualAPL.

Deux ressources emblématiques de la communauté APL comprennent un article écrit par Bernard Legrand en 2006 et la pratique de recréer Game of Life de Conway dans APL.

Vous pouvez lire l’article de Legrand, APL – a Glimpse of Heaven at Vector, le site Web de la British APL Association.

Vous pouvez en apprendre davantage sur le jeu de la vie de Conway et comment il peut être recréé dans une seule ligne de code APL en lisant à ce sujet ou en regardant un screencast qui explique le processus.

Livres

De nombreux textes APL ont été écrits au cours des cinq dernières décennies. Voici six des meilleurs:

  • Un langage de programmation par Kenneth E Iverson, le livre qui a tout commencé

  • APL: une approche interactive par Gilman et Rose

  • APL2 en profondeur par Thompson et Polivka

  • APL 2 en bref par Brown, Pakin et Polivka

  • APL avec un accent mathématique par Reiter et Jones

  • Maîtriser Dyalog APL: Une introduction complète à Dyalog APL par Bernard Legrand, également disponible en PDF gratuit.

Conclusion

APL est un langage de programmation à inclinaison mathématique dont les caractéristiques déterminantes incluent une syntaxe hautement symbolique et la prise en charge de tableaux multidimensionnels imbriqués.

La courbe d’apprentissage APL est presque verticale, vous êtes donc dans une montée exceptionnellement raide si vous décidez d’apprendre APL.

Le résultat est que vous serez en mesure de maîtriser l’un des langages de programmation les plus puissants jamais conçus.

Lectures complémentaires et ressources

Nous avons plus de guides, de tutoriels et d’infographies liés au codage et au développement:

  • Introduction et ressources COBOL: bien qu’il s’agisse d’une langue antérieure, COBOL est presque l’opposé d’APL en termes de lisibilité.

  • Fortran Resources: probablement le premier langage de programmation informatique de haut niveau, le développement sur Fortran a commencé près d’une décennie avant APL.

  • Introduction au langage d’assemblage: apprenez la programmation informatique à son niveau le plus élémentaire.

Quel code devez-vous apprendre?

Vous ne savez pas quel langage de programmation vous devez apprendre à coder? Consultez notre infographie, quel code devez-vous apprendre? Il ne traite pas seulement des différents aspects des langages, il répond à des questions importantes telles que: «Combien d’argent vais-je gagner en programmant Java pour gagner ma vie?»

Quel code devez-vous apprendre?
Quel code devez-vous apprendre?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

About the author

Adblock
detector