GNU APL

GNU APL

Descrierea imaginii GNU APL.png. informație
Ultima versiune 1,8 (23 iunie 2019)
Depozit svn: //svn.savannah.gnu.org/apl/trunk
Scris in C ++
Sistem de operare GNU / Linux și BSD ( d )
Tip Interpret de
pachete GNU ( d )
Licență GPL
Site-ul web www.gnu.org/software/apl

GNU APL este o implementare a limbajului APL , deschisă și gratuită sub licență GNU GPL . Versiunea 1.0 a fost anunțată pe27 septembrie 2013. Această implementare poate fi utilizată sub GNU / Linux , MacOS sau Cygwin .

Implementează standardul ISO 13751, „Limbajul APL extins”, care cuprinde în consecință tabele de tabele .

Gestionează numerele complexe și variabilele partajate care permit unui spațiu de lucru să comunice cu ușurință cu lumea exterioară. Face chiar posibilă oricui dorește să utilizeze APL ca limbaj de scriptare (sub Linux, de exemplu, cu #! aplsau #! /usr/bin/aplîn capul fișierului).

General

GNU APL inclus, în decembrie 2014, 60.000 de linii de cod C ++ . Unele spații de lucru sunt furnizate ca standard, stocate fie sub formă editabilă de xml , fie sub formă de dumpuri binare (PSYS) mult mai rapid de încărcat. Comanda ) LIBS oferă o listă a acestora. De asemenea, este posibil să stocați sau să citiți un spațiu de lucru în APL Transfer Form (ATF) așa cum este definit de IBM, prin intermediul comenzilor ) OUT și ) IN , pentru a schimba spații de lucru cu interpreți diferiți; cu toate acestea, inițial nu există spațiu de lucru în acest formular.

Este implementată gestionarea variabilelor partajate ( ⎕SVO , ⎕SVR , ⎕SVC , ⎕SVS , ⎕SVQ ). Două spații de lucru pot comunica astfel cu condiția de a fi pentru moment (2016) pe aceeași mașină.

Procesoarele auxiliare AP100 (trimit comenzi de sistem către gazdă și citesc răspunsurile) și AP210 (citesc și scriu fișiere) sunt furnizate cu sursele lor (în C) ca exemple. Utilizatorul poate extinde cu ușurință GNU APL cu propriile funcții externe scrise în C.

În această implementare, atât numerele întregi, cât și realele sunt reprezentate pe 64 de biți. Acest lucru face posibilă lucrul fără probleme cu numere întregi de 19 cifre și corespunde numerelor reale cu dubla precizie obișnuită a calculelor pe stațiile de lucru științifice.

Versiunea 1.4 (2014) a făcut posibilă comunicarea cu bazele de date MySQL și PostgreSQL . Versiunea 1.5 (2015) folosește, de asemenea, paralelismul microprocesoarelor multi-core . Versiunea actuală este 1.8 (2020)

Autorul și administratorul GNU APL se numește Jürgen Sauermann . Documentația GNU APL în limba engleză este, de asemenea, foarte detaliată: https://www.gnu.org/software/apl/apl.html

Stabilire

Configurarea cu versiunea 1.8 este foarte ușoară: descărcați dintr-o oglindă GNU fișierul apl-1.8.tar.gz din directorul APL și îl extrageți pe computer într-un director numit, de exemplu, apl. Din acest director, trebuie doar să tastați:

./configure make sh-install

și apoi aplcând ai mâna după câteva secunde sau minute.

Glifuri și tastatură APL

(Este posibil să nu doriți să citiți această secțiune dacă nu sunteți interesat să gestionați fonturile și tastatura la început)

Glifele

De pe o consolă în modul text

Pentru a utiliza GNU APL dintr-o consolă în modul text pur (deci nu în X-Window ), fontul Unifont-APL8x16.psf este disponibil de exemplu în depozitele Ubuntu (pachetul psf-unifont , încărcabil de Synaptic ) sau din alte distribuții. Încărcat în / usr / share / consolefonts / , conține 512 glifuri incluzând, pe lângă caracterele APL, nu numai caracterele cu accent francez, ci și ligaturile .

De la o consolă într-o fereastră grafică

Pentru utilizare sub X-Window, fontul TrueType ttf-unifont , prezent și el în depozite și încărcabil de Synaptic, conține caracterele necesare și are meritul de a putea fi pus la toate scările dorite. Redarea acestui font este optimă în corpul 12, de unde a fost proiectat.

Tastatură

Sub Linux, interpretul, care folosește caractere Unicode , este utilizat într-o sesiune de terminal care se deschide asociindu-l cu o pagină de cod adecvată. Acest lucru este ușor de impus la nivelul întregului server X, dar poate fi, de asemenea, cu unele precauții obiectul unei convenții diferite pentru fiecare fereastră, că aceasta conține un terminal sau nu.

O imagine a tastaturii implicite (SUA) poate fi găsită în /etc/gnu-apl.d/keyboard1.txt . Rămâne la latitudinea utilizatorului să îl modifice, prin intermediul unui editor de text , în funcție de propriul aspect al tastaturii naționale. Dintr-o sesiune GNU APL, aceasta poate fi afișată de ] KEYB (începând cu a ] și nu a ) , deoarece este apelul unui simplu program C compilat numit din GNU APL).

În NARS2000 și Dyalog, caracterele APL sunt obținute prin combinarea unei taste de modificare ( Alt în NARS2000, Ctrl în Dyalog) și un caracter de tastatură. În GNU APL, puteți utiliza o combinație de taste pentru a comuta între tastatura text și tastatura APL.

Global pentru toate ferestrele de pe acest server X

Puteți utiliza utilitarul setxkbmap  : setxkbmap apl va face tastatura caracterelor APL accesibile dacă ttf-unifont a fost instalat, dar va face acest lucru pentru toate terminalele deschise în același timp și fontul APL va înlocui fontul implicit (ceea ce face problematică returnarea la normal cu un setxkbmap fr ). Cu toate acestea, setxkbmap poate fi folosit și pentru a adăuga caractere, în loc să le înlocuiască ; comanda este apoi setxkbmap -model "pc105" -layout "fr, apl" -option "grp: alt_caps_toggle"  : odată ce această comandă este trecută, de fiecare dată când apăsăm Alt-CapsLock , trecem între tastaturile franceze și APL.

Selectiv pentru fiecare fereastră

Există și metode de introducere pentru principalele limbi, inclusiv franceza cu cheile moarte . Este ușor - deși plictisitor de îndată ce depășiți zece taste de modificat - să modificați configurația în funcție de preferințele dvs. (tastatura IBM APL2 sau NARS2000), nevoile dvs. sau constrângerile dvs. (de exemplu combinații de taste care pot fi interceptate de sistem în amonte de sesiunea APL).

Akt: instrument de tastatură APL

Pe github există un instrument care permite asocierea automată a unei serii de glifuri APL cu tastele tastaturii modificate de tasta Alt  : https://github.com/TieDyedDevil/akt cu condiția dezactivării modificărilor deja definite dacă au existat (comenzi rapide de la tastatură) , de exemplu).

În versiunea 1.8 (2020)

Versiunea 1.8 este însoțită, pe lângă fișierul INSTALL tradițional, de 9 fișiere, dintre care unul arată cum să configurați tastatura și să instalați fonturi și altul cum să implementați executarea multicore. Instalarea se face și mai ușor.

Apelarea și utilizarea interpretului

După instalarea GNU APL și configurarea recunoașterii tastaturii franceze extinse + APL așa cum este indicat mai sus, tot ce trebuie să faceți este să tastați apl dintr-o consolă și vă aflați sub interpret. Vom ieși din el lovind ) off .

Lipsa unui editor de ecran complet (spre deosebire de NARS2000) poate fi dificilă atunci când scrieți funcții. Cu toate acestea, este întotdeauna posibil să le pregătiți într-o altă fereastră și să le copiați / lipiți în sesiunea GNU APL, care este principalul avantaj al Unicode .

Versiunea 1.8 vine cu un fișier de colorat pentru sintaxă pentru vim .

Comenzi de sistem

  • ) libs interogă bibliotecile prezente. Cei al căror director nu există încă sunt marcați „lipsă”. Va trebui să fie creat de un mkdir -p de pe o consolă.
  • ) lib listează spațiile de lucru conținute într-o bibliotecă.
  • ) load încarcă un spațiu de lucru în memorie. ) salvați copia de rezervă pe disc.
  • ) fns și ) vars listează funcțiile și variabilele găsite în spațiul de lucru.
  • ) istoricul listează ultimele linii introduse pe tastatură (instrucțiuni sau comenzi APL în general).

Funcții specifice ale sistemului

  • ⎕cr afișează reprezentarea canonică a unei funcții, dar este de 4 ⎕cr care corespunde cu ⎕fmt din NARS2000 care afișează în cutii datele care se află în dreapta sa.
  • ⎕FIO efectuează intrarea / ieșirea caracterelor pe fișiere.
  • ⎕PLOT afișează graficul valorilor în dreapta sa.

Noutăți în versiunea 1.8

  • ⎕FFT (transformată Fourier rapidă, în număr real la fel de complexă).
  • ⎕GTK (apelarea funcțiilor Gimp în APL).
  • ⎕RE (expresii regulate).
  • Comenzi de sistem definite de utilizator în APL.
  • Interfață între Python și GNU APL, oferind acces la funcțiile vectoriale ale APL în Python.

Biblioteca de schimb de exerciții APL

Site-ul de exercițiu vă permite să faceți schimb de exerciții GNU APL: https://exercism.io/tracks/gnu-apl/

Încercați GNU APL fără a-l instala

GNU APL a fost portat în Javascript de Th. Baruchel și este accesibil în acest formular de pe site-ul http://baruchel.hd.free.fr/apps/apl/ (a se vedea ilustrația din stânga). Junger Sauermann oferă, de asemenea, propria sa versiune de eseuri interactive http://juergen-sauermann.de/try-GNU-APL , corect:

Extindere la standard

Standardul APL indică ce trebuie acceptat cel puțin , dar nu interzice extensiile. Jürgen Sauermann a introdus posibilitatea de a trece o valoare între paranteze drept argument suplimentar al unei funcții, în special pentru a generaliza noțiunea de operație pe o axă ca în ,[1]sau în +/[1]timp ce avertiza asupra faptului că această extensie poate afecta compatibilitatea programelor GNU APL cu alte sisteme, dacă nu o adoptă. Acesta oferă următorul exemplu:

∇z←moyenne[axe] a Z←(+/[axe]a) ÷ (⍴a)[axe] ∇ moyenne[1] 5 5⍴⍳25 11 12 13 14 15 moyenne[2] 5 5⍴⍳25 3 8 13 18 23

linkuri externe

Note și referințe

  1. peste 75.000 în iunie 2016, peste 80.000 în iulie 2017 și peste 100.000 în 2020: https://www.gnu.org/software/apl/
  2. Mai multe personaje ca ? sau ! sunt disponibile de pe ambele tastaturi, deși în locații diferite pe fiecare.
  3. Pentru a alege o altă combinație de schimbare a tastaturii, consultați aici: http://pastebin.com/a2MTnXqg