Limbaj de date Perl (PDL) | |
---|---|
Clasa de limba | vector ( en:Array Programming ) |
Aparut in | 1996 |
Autor | Carl Glazebrook, Charles Brinchmann, Thomas Lucca și Christian Soller |
Dezvoltator | Carl Glazebrook [d] |
Eliberare | 2.077 (16 martie 2022 ) |
A fost influențat | APL , IDL , Perl |
Licență | Licență publică generală GNU , Licență artistică |
Site-ul web | pdl.perl.org |
PDL (prescurtare de la limba engleză P erl Data Language ) este un set de extensii vectoriale pentru limbajul de programare Perl versiunea 5. Conceput pentru calcule științifice și alte sarcini legate de procesarea unor cantități mari de date, inclusiv: procesarea imaginilor , simularea computerizată a sistemelor fizice.
PDL este conectat la un program Perl cu:use PDL;
PDL este un limbaj vectorial: sintaxa expresiilor este similară cu notația matematică standard pentru operații pe vectori și matrice multidimensionale. În acest sens, PDL este similar cu limbajul de programare APL și este adesea comparat cu MATLAB , Interactive Data Language , NumPy și Octave . Spre deosebire de MATLAB și IDL, limbajul PDL permite o indexare și vectorizare mai flexibilă, de exemplu, dacă o funcție care procesează matrici bidimensionale este alimentată cu una tridimensională, atunci funcția va fi aplicată strat cu strat fiecărui strat al cubului.
De la începutul lui 2005, funcționalitatea asemănătoare PDL a fost planificată pentru a fi inclusă în cea de-a șasea versiune a limbajului ( Perl 6 ).
PDL oferă interfețe pentru mai multe module pentru crearea graficelor. NetPBM este utilizat pentru I/O imagini; PLplot , PGPLOT și Karma sunt folosite pentru grafica 2D. Pentru grafica 3D, se folosește interfața OpenGL .
PDL oferă facilități pentru citirea și scrierea datelor în diferite formate, inclusiv JPEG , PNG , GIF , PPM , MPEG , FITS , NetCDF , GRIB , binar, CSV .
Interpretul interactiv perldl este de obicei instalat cu PDL , care vă permite să efectuați calcule simple fără a fi nevoie să creați fișiere cu textul programului. Exemplu Perldl:
perldl > $x = pdl [[ 1 , 2 ], [ 3 , 4 ]]; perldl > $y = pdl [[ 5 , 6 , 7 ], [ 8 , 9 , 0 ]]; perldl > $z = $x x $y ; perldl > p $z ; [ [ 21 24 7 ] [ 47 54 21 ] ]În acest exemplu, sunt create două matrice și apoi, folosind operatorul supraîncărcat x, se realizează înmulțirea matricei. Comanda peste prescurtarea pentru print.
Nucleul PDL este implementat în limbajul C. O mare parte din funcționalitate este implementată în PP , metalanjul PDL. Unele module sunt scrise în FORTRAN , cu o interfață către C sau PP. PP facilitează scrierea extensiilor la PDL în limbaj C.
Implementarea PDL folosește caracteristicile orientate pe obiecte ale lui Perl: PDL definește un nou obiect scalar de tip "PDL" (deseori denumit piddle , se comportă ca tipuri scalare) care conține matrici de dimensiune arbitrară. Toți operatorii de limbaj standard sunt supraîncărcați pentru a suporta în mod transparent obiectele piddle. Spre deosebire de matricele de limbaj standard, piddle-urile au fost concepute inițial pentru o procesare numerică eficientă.