Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Perl Data Language (қысқаша PDL) – Perl бағдарламалау тіліне арналған массивтік бағдарламалау кітапханасы. PDL – Perl бағдарламалау тіліне қосылатын, ашық кодты массивтік бағдарламалау кеңейтулерінің жиынтығы. PDL Perl-дің кіріктірілген дерек құрылымдарын үлкен көпөлшемді массивтерді қоса беру арқылы кеңейтеді және оларды векторлық нысандар ретінде өңдеуге мүмкіндік беретін функционалдық мүмкіндіктерді ұсынады. Одан әрі, ол бейне өңдеу, машиналық оқыту, физикалық жүйелерді компьютерлік модельдеу, графикалық сызу және деректерді көрсетуге арналған құралдарды қамтиды. Күрделі емес операциялар автоматты түрде массивтердің барлығы бойынша векторландырылады, ал жоғары өлшемді операциялар (мысалы, матрица көбейту) қолдау көрсетіледі.
Array programming library for Perl
Perl Data Language (abbreviated PDL) is a set of free software array programming extensions to the Perl programming language. PDL extends the data structures built into Perl, to include large multidimensional arrays, and adds functionality to manipulate those arrays as vector objects. It also provides tools for image processing, machine learning, computer modeling of physical systems, and graphical plotting and presentation. Simple operations are automatically vectorized across complete arrays, and higher dimensional operations (such as matrix multiplication) are supported.
Тілдік дизайн
PDL – векторлық массивтік бағдарламалау тілі: өрнек синтаксисі стандартты математикалық векторлық жазудың өзгеруі болып табылады, сондықтан пайдаланушы үлкен массивтерді қарапайым өрнектермен біріктіріп, олармен жұмыс істей алады. Осы тұрғыдан алғанда, PDL APL бағдарламалау тілінің дәстүрін жалғастырады және MATLAB, Interactive Data Language сияқты коммерциялық тілдермен, сондай-ақ NumPy және Octave сияқты ашық кодты тілдермен салыстырылады. MATLAB және IDL-ден өзгеше, PDL индекстеу және векторлауда үлкен икемділікке мүмкіндік береді: мысалы, егер кіші бағдарлама әдетте 2D матрицамен жұмыс істейтін болса, оған 3D дерек текшесін беру арқылы текшедегі әрбір 2D қабатқа бірдей операция қолданылады. PDL Perl-ден кем дегенде үш негізгі бағдарлама құрылымын қабылдайды: императивті бағдарламалау, функционалдық бағдарламалау және конвейерлік бағдарламалау нысандары біріктірілуі мүмкін. Кіші бағдарламалар автоматты жүктеу механизмі арқылы немесе әдеттегі Perl модульдері механизмі арқылы жүктелуі мүмкін.
PDL is a vectorized array programming language: the expression syntax is a variation on standard mathematical vector notation, so that the user can combine and operate on large arrays with simple expressions. In this respect, PDL follows in the footsteps of the APL programming language, and it has been compared to commercial languages such as MATLAB and Interactive Data Language, and to other free languages such as NumPy and Octave. Unlike MATLAB and IDL, PDL allows great flexibility in indexing and vectorization: for example, if a subroutine normally operates on a 2 D matrix array, passing it a 3 D data cube will generally cause the same operation to happen to each 2 D layer of the cube. PDL borrows from Perl at least three basic types of program structure: imperative programming, functional programming, and pipeline programming forms may be combined. Subroutines may be loaded either via a built in autoload mechanism or via the usual Perl module mechanism.
Графика
Perl-дің бастапқы тіліне сай, PDL графика мен сызуды қолдау үшін әртүрлі модульдерден материал алады. NetPBM кескіндерді оқу және жазу (I/O) мүмкіндігін ұсынады (бірақ FITS тікелей қолдауға ие). Gnuplot, PLplot, PGPLOT және Prima модульдері 2D графикалық және сызу қолданбалары үшін, ал Gnuplot және OpenGL 3D сызу және көрсету үшін қолдау көрсетеді.
True to the glue language roots of Perl, PDL borrows from several different modules for graphics and plotting support. NetPBM provides image file I/O (though FITS is supported natively). Gnuplot, PLplot, PGPLOT, and Prima modules are supported for 2 D graphics and plotting applications, and Gnuplot and OpenGL are supported for 3 D plotting and rendering.
Ж/С
PDL көптеген ашық дерек форматтарын оқу және жазу мүмкіндігін ұсынады, оның ішінде JPEG, PNG, GIF, PPM, MPEG, FITS, NetCDF, GRIB, шикі бинарлық файлдар және шекараланған ASCII кестелері бар. PDL бағдарламашылары CPAN Perl I/O кітапханаларын пайдаланып, жүздеген стандартты және арнайы файл форматтарындағы деректерді оқу және жазу мүмкіндігіне ие.
PDL provides facilities to read and write many open data formats, including JPEG, PNG, GIF, PPM, MPEG, FITS, NetCDF, GRIB, raw binary files, and delimited ASCII tables. PDL programmers can use the CPAN Perl I/O libraries to read and write data in hundreds of standard and niche file formats.
Машиналық оқыту
PDL машиналық оқыту үшін қолданылуы мүмкін. Ол классикалық k-құрал кластерлеуді немесе ANOVA, сызықтық регрессия, PCA және логистикалық регрессия сияқты жалпы және жалпыланған сызықтық модельдеу әдістерін жүзеге асыру үшін қолданылатын модульдерді қамтиды. Регрессиялық модельдеу міндеттері үшін PDL қолданылуының мысалдары: ата-аналардың білім деңгейі мен олардың тегінің айырмашылықтары арасындағы байланысты бағалау, регрессияға негізделген нормалдау қажет болатын РНК-белок өзара әрекеттесу профильдерін салыстыру және галактикалардың спектрлерін талдау.
PDL can be used for machine learning. It includes modules that are used to perform classic k means clustering or general and generalized linear modeling methods such as ANOVA, linear regression, PCA, and logistic regression. Examples of PDL usage for regression modelling tasks include evaluating association between education attainment and ancestry differences of parents, comparison of RNA protein interaction profiles that needs regression based normalization and analysis of spectra of galaxies.
Іске асыру
PDL-дің негізгі бөлігі C тілінде жазылған. Көптеген мүмкіндіктер PP тілінде жазылған, бұл PDL-ге арналған метатіл, ол қарапайым C кодтарын векторлауды және оларды Perl XS компиляторы арқылы Perl тілімен байланыстырады. Кейбір модульдер Fortran тілінде жазылған, C/PP интерфейстік қабатымен бірге. Көптеген ұсынылған функциялар PDL-дің өзінде жазылған. PP пайдаланушыға PDL үшін C тіліндегі кеңейтімдерді жазуға мүмкіндік береді. Сондай-ақ, Inline модулі (Inline::Pdlpp) бар, ол PP функцияларын тікелей Perl сценарийіне енгізуге мүмкіндік береді; тиісті код төменгі деңгейде компиляцияланып, Perl процедурасы ретінде қолжетімді болады. PDL API негізгі Perl 5 объектіге бағытталған мүмкіндіктерін пайдаланады: PDL Perl скалярлық объектісінің жаңа түрін анықтайды (сол атаумен "PDL" немесе "ndarray" деп аталады), ол Perl скаляры ретінде жұмыс істейді, бірақ сандық немесе символдік мәндердің реттелген массивін қамтиды. Барлық стандартты Perl операторлары PDL объектілерімен түсінікті түрде жұмыс істеу үшін қайта жүктеледі, ал PDL-ді әдеттегі Perl скалярларымен біріктіруге болады. PDL-мен жұмыс істеу үшін жүзден астам нысандық әдістер негізгі модульдермен ұсынылады.
The core of PDL is written in C. Most of the functionality is written in PP, a PDL specific metalanguage that handles the vectorization of simple C snippets and interfaces them with the Perl host language via Perl's XS compiler. Some modules are written in Fortran, with a C/PP interface layer. Many of the supplied functions are written in PDL itself. PP is available to the user to write C language extensions to PDL. There is also an Inline module (Inline::Pdlpp) that allows PP function definitions to be inserted directly into a Perl script; the relevant code is low level compiled and made available as a Perl subroutine. The PDL API uses the basic Perl 5 object oriented functionality: PDL defines a new type of Perl scalar object (eponymously called a "PDL", or "ndarray") that acts as a Perl scalar, but that contains a conventional typed array of numeric or character values. All of the standard Perl operators are overloaded so that they can be used on PDL objects transparently, and PDLs can be mixed and matched with normal Perl scalars. Several hundred object methods for operating on PDLs are supplied by the core modules.