Datový jazyk Perl - Perl Data Language
Paradigma | Pole |
---|---|
Vývojář | Karl Glazebrook, Jarle Brinchmann, Tuomas Lukka, a Christian Soeller |
Poprvé se objevil | 1996 |
Stabilní uvolnění | 2.020 / 12. prosince 2019[1] |
OS | Cross-platform |
Licence | GNU General Public License, Umělecká licence |
webová stránka | pdl |
Ovlivněno | |
APL, IDL, Perl |
Datový jazyk Perl (zkráceně PDL) je sada svobodný software rozšíření programovacího pole do Programovací jazyk Perl. PDL rozšiřuje datové struktury zabudované do Perlu o velké vícerozměrná pole a přidává funkce pro manipulaci s těmito poli jako vektorovými objekty. Poskytuje také nástroje pro zpracování obrazu, strojové učení, počítačové modelování fyzických systémů a grafické vykreslování a prezentace. Jednoduché operace jsou automaticky vektorizovány napříč úplnými maticemi a jsou podporovány operace ve vyšších dimenzích (například násobení matic).
Jazykový design
PDL je vektorizovaný programování pole jazyk: syntaxe výrazu je variací na standardní matematiku vektor notace, takže uživatel může kombinovat a pracovat na velkých polích s jednoduchými výrazy. V tomto ohledu jde PDL ve stopách Programovací jazyk APL, a byl srovnáván s komerčními jazyky, jako je MATLAB a Interaktivní datový jazyk a do dalších svobodných jazyků, jako je NumPy a Oktáva.[2] Na rozdíl od MATLAB a IDL umožňuje PDL velkou flexibilitu indexování a vektorizace: například pokud podprogram normálně pracuje na 2D matice pole, předáním 3-D datová kostka obecně způsobí, že ke stejné 2-D vrstvě krychle dojde.[3]
PDL si od Perlu půjčuje nejméně tři základní typy programové struktury: imperativní programování, Funkcionální programování, a programování potrubí formy lze kombinovat. Subrutiny lze načítat buď pomocí vestavěné funkce autoload mechanismem nebo pomocí obvyklého mechanismu modulu Perl. Funkce podobné PDL jsou zahrnuty do vývoje Raku.[4]
Grafika

Pravda lepidlo jazyk kořeny Perlu, PDL si půjčují z několika různých modulů pro grafiku a podporu vykreslování. NetPBM poskytuje vstupně-výstupní obrazový soubor (ačkoli FITS je nativně podporován). Gnuplot, PLplot, PGPLOT, a Prima moduly jsou podporovány pro 2D grafiku a aplikace pro vykreslování a Gnuplot a OpenGL jsou podporovány pro 3D vykreslování a vykreslování.
I / O
PDL poskytuje zařízení ke čtení a zápisu mnoha otevřených datových formátů, včetně JPEG, PNG, GIF, PPM, MPEG, FITS, NetCDF, GRIB, surové binární soubory a oddělované tabulky ASCII. Programátoři PDL mohou používat CPAN Perl I / O knihovny pro čtení a zápis dat ve stovkách standardních a specializovaných formátů souborů.
Strojové učení
PDL lze použít pro strojové učení. Zahrnuje moduly, které se používají k provádění klasických shluků k-means nebo obecných a zobecněných metod lineárního modelování, jako je ANOVA, lineární regrese, PCA a logistická regrese. Mezi příklady použití PDL pro úlohy regresního modelování patří hodnocení asociace mezi dosaženým vzděláním a rozdíly předků rodičů,[5] srovnání profilů interakce RNA-protein, které vyžadují normalizaci založenou na regresi[6] a analýza spekter galaxií.[7]
perldl
Instalace PDL obvykle přichází s interaktivním skořápka známý jako perldl, které lze použít k provádění jednoduchých výpočtů, aniž by uživatel musel vytvářet soubor programu Perl. Typická relace perldl by vypadala asi takto:
perldl> $ x = pdl [[1, 2], [3, 4]];perldl> $ r = pdl [[5, 6, 7],[8, 9, 0]];perldl> $ z = $ x X $ r;perldl> str $ z;[ [21 24 7] [47 54 21]]
Příkazy použité v shellu jsou příkazy Perlu, které lze použít v programu s PDL
součástí modulu. X
je přetížený operátor pro násobení matic, a str
v posledním příkazu je zkratka pro tisk
.
Implementace
Jádro PDL je napsáno v C. Většina funkcí je napsána v PP, metajazyk specifický pro PDL, který zpracovává vektorizaci jednoduchých úryvků C a propojuje je s hostitelským jazykem Perl prostřednictvím jazyka Perl XS překladač. Některé moduly jsou zapsány Fortran s vrstvou rozhraní C / PP. Mnoho z dodávaných funkcí je napsáno v samotném PDL. PP je uživateli k dispozici pro zápis rozšíření jazyka C do PDL. K dispozici je také modul Inline (Inline :: Pdlpp), který umožňuje vkládat definice funkcí PP přímo do skriptu Perl; příslušný kód je kompilován na nízké úrovni a zpřístupněn jako podprogram Perl.
Rozhraní PDL API využívá základní objektově orientovanou funkčnost Perl 5: PDL definuje nový typ skalárního objektu Perl (stejnojmenně nazývaný „PDL“, vyslovovaný „piddle“), který funguje jako Perlův skalár, ale obsahuje konvenční napsaný pole číselných nebo znakových hodnot. Všichni standardní operátoři Perlu jsou přetíženi, takže je lze transparentně použít na objekty PDL, a PDL je možné kombinovat a porovnávat s normálními Perlovými skaláři. Několik stovek objektových metod pro provoz na PDL je dodáváno jádrovými moduly.
Raku verze
v Raku, PDL je v Synopse 9 specifikován jako vlastnost.[8] Od ledna 2013 tato funkce ještě není implementována v Rakudo.
![]() | Tato část musí být aktualizováno.Březen 2017) ( |
Viz také
Reference
- ^ „Vydáno PDL 2.020“. 12. prosince 2019.
- ^ „Vrácení Perlu zpět na vrchol v oblasti vědeckých a finančních výpočtů“.
- ^ „Online dokumentace PDL (část PDL :: Threading)“.
- ^ „Re: RFC 169 (v1) Navržená syntaxe pro přístup a krájení prvků matice“.
- ^ Abdellaoui A, Hottenga JJ, Willemsen G, Bartels M, van Beijsterveldt T, Ehli EA, Davies GE, Brooks A, Sullivan PF, Penninx BW, de Geus EJ, Boomsma DI (březen 2015). „Dosažené vzdělání ovlivňuje úrovně homozygotnosti prostřednictvím migrace a kombinovaného páření“. PLOS One. 10 (3): e0118935. doi:10.1371 / journal.pone.0118935. PMC 4347978. PMID 25734509.
- ^ Wang T, Xie Y, Xiao G (leden 2014). „dCLIP: výpočetní přístup pro srovnávací analýzy CLIP-seq“. Genome Biology. 15 (1): R11. doi:10.1186 / gb-2014-15-1-r11. PMC 4054096. PMID 24398258.
- ^ Sánchez SF, Pérez E, Sánchez-Blázquez P, González JJ, Rosález-Ortega FF, Cano-Dí az M, López-Cobá C, Marino RA, Gil de Paz A, Mollá M, López-Sánchez AR, Ascasibar Y, Barrera -Ballesteros J (duben 2016). „Pipe3D, potrubí pro analýzu dat integrální polní spektroskopie: I. Nová filozofie přizpůsobení FIT3D“. Revista Mexicana de Astronomía y Astrofísica. 52: 21–53. Bibcode:2016RMxAA..52 ... 21S.
- ^ http://perlcabal.org/syn/S09.html#PDL_support