Dyalog APL Version 10 : Que reste-t-il aux autres ?

    

La dernière mouture de Dyalog APL/W intègre totalement la technologie .net et apporte un certain nombre de nouveautés, dont la possibilité tant attendue de sauvegarder un workspace en .exe ainsi qu'une accélération de l'interpréteur via la reconnaissance et l'interprétation accélérée de certains idiomes.

 

     Nouvelles fonctionnalités :
   
    
  • Technologie .net :  
    • Vous pouvez désormais créer des objets et les mettre à disposition via votre Intranet ou Internet.
    • Vous pouvez intégrer de l'APL dans vos pages Web. En effet grâce aux technologies ASP et .NET, le serveur WEB IIS de Microsoft est capable d'exécuter à la volée des instructions APL inclues au milieu du code HTML.
    • Pour en savoir plus, cliquez ici
  • Reconnaissance des idiomes : L'interpréteur reconnaît certains idiomes (tels que ) et les exécute directement comme si il s'agissait d'une seule primitive au lieu de, comme précédemment, faire une exécution par fonction primitive. 
    Il en résulte dans certains cas des gains de vitesse pouvant aller jusqu'à un coefficient 50 !

    Par exemple, l'idiome
    BV/¼½A (où BV est un vecteur booléen et A est un vecteur) aurait été précédemment exécuté en 4 étapes comme suit :
    1. Exécution de ½A et stockage du résultat dans la variable temporaire temp1 (temp1 est un nom arbitraire choisi pour l'exemple)
    2. Exécution de ¼temp1 et stockage du résultat dans la variable temporaire temp2.
    3. Exécution de BV/temp2
    4. Suppression des variables provisoires

    Dans la version 10, l'expression est identifiée en sa totalité et traitée comme si c'était une fonction primitive simple.
    Dans cet exemple l'amélioration résultante de l'exécution se situe entre 2 et 4.5 (en fonction de la taille des objets).

    Attention : L'identification d'idiome est précise ; une expression qui n'est pas strictement identique à une des expressions de la liste ci-dessous ne sera pas identifiée.
    Par exemple,
    ŒAV¼ sera identifié comme idiome, mais pas (ŒAV)¼ . De même, (,)/ ne sera pas reconnu comme l'idiome de concaténation.


    Liste des idiomes reconnus :
    Vous trouverez dans ce tableau les conventions de notation concernant les types et dimensions des arguments utilisés par les idiomes :

    Type  Description  Dimension Description
    C Caractères S Scalaire ou vecteur de taille 1
    Booléen V Vecteur
    N Numérique M Matrice
    P Indice (pointeur) T Toutes types de dimensions
    T Tous types    

    Par exemple : NV : Vecteur numérique, CM : Matrice alpha, PV : vecteur d'indices.

    La troisième colonne montre un facteur approximatif d'amélioration d'exécution. Pour quelques cas (marqués *), le facteur dépend totalement de la taille de l'argument.

    Expression Facteur Expression Facteur
    ½½A 2 BV/¼NS 1.3-3.7
    BV/¼½A 2-4.5 NAœ¨›A 16
    A{}A 6 A{¸}A 6
    A{¾}A 6 A{¸ ¾}A 2
    {0}A 7 {0}¨A 30
    ,/PV * œ²A *
    †²A * œ²,A *
    †²,A * 0=½V 1.25
    0=½½A 1.2 0=­A *
    ŒAV¼CA 6 CM{(‡¸)¼‡¾}CM 3
    ‡³†PV 4-5 ‡³œPV 4-5
    ^\' '=CA 4-30 +/^\' '=CA 20-50
    +/^\ BA 30-40 {(Ÿ\' '¾)/¾}CV 15-30
    {(+/^\' '=¾)‡¾}CV 15-30 ~°' '¨‡CA 6-7
    {(+/Ÿ\' '²¾)†¨‡¾}CA 11    


  • Nouvelle Fonction système ŒMAP : Permet d'utiliser les ressources système Windows pour gérer des variables sur disque avec des temps de réponse optimaux.
  • L'objet GRID permet désormais les sélections multiples et peut héberger des contrôles ActiveX et des classes .NET. 
  • Nouvel objet ColorButton : Outil convivial intégré à la cession pour choisir vos couleurs.
    Il est également utilisable dans le GRID.
  • Auto-complétion : Quand vous commencez à taper un nom de variable déjà existant ou un nom de fonction commençant par Œ, APL vous propose la fin du mot via un menu pop-up.
    Si par exemple vous tapez
    ŒN, APL vous propose immédiatement toutes les fonctions relatives aux fichiers natifs.
    En notation point, cette fonction propose également les propriétés et méthodes des objets.
  • Sauver un Workspace en fichier .EXE
  • Nouvelle fonction ŒNLOCK : permet de verrouiller tout ou partie d'un fichier natif. 
  • Le ŒSAVE permet désormais de sauver un Workspace sans sa pile d'exécution : Un argument gauche a été ajouté pour vous permettre de conserver ou non la pile.
  • :For .. :InEach .. : C'est le cousin du :For ... :In ... mais sa logique est inversée quand on traite un vecteur de vecteurs.

    Dans une boucle :For a b c :In (1 2 3)(4 5 6)(7 8 9)(10 11 12)
    a b et c prendront au fil de la boucle les valeurs suivantes :
         a : 1, 4, 7, 10
         b : 2, 5, 8, 11
         c : 3, 6, 9, 12

    Dans une boucle :For a b c :InEach (1 2 3)(4 5 6)(7 8 9)(10 11 12)(13 14 15)(16 17 18)
    a b et c prendront au fil de la boucle les valeurs suivantes :
         a : (1 2 3) (10 11 12)
         b : (4 5 6) (13 14 15)
         c : (7 8 9) (16 17 18)
  • Coloration de syntaxe dans la session : Cette fonctionnalité existait déjà dans l'éditeur, elle est désormais étendue à la session. 
  • Suppression de lignes dans la session : La version 10 vous permet de supprimer des lignes de la session tout comme dans l'éditeur..