Interested Article - Perl Data Language

PDL (сокращение от англ. P erl D ata L anguage ) — набор векторных расширений для языка программирования Perl 5-й версии. Предназначен для научных расчётов и иных задач, связанных с обработкой больших объёмов данных, в том числе: обработка изображений , компьютерное моделирование физических систем.

PDL подключается к Perl программе при помощи: use PDL;

Дизайн языка

PDL является векторным языком: синтаксис выражений сходен с стандартными математическими обозначениями операций над векторами многомерными матрицами. В этом отношении PDL сходен с языком программирования APL и часто сравнивается с MATLAB , , NumPy и Octave . В отличие от MATLAB и IDL, язык PDL допускает более гибкую индексацию и векторизацию, например, если в функцию, обрабатывающую двумерные матрицы, подать трёхмерную, то функция будет применена послойно к каждому слою куба.

На начало 2005, функциональность, сходная с PDL, планировалась к включению в шестую версию языка ( Perl 6 ).

Графика

График, полученный при помощи PDL

PDL предоставляет интерфейсы к нескольким модулям для создания графиков. используется для ввода-вывода изображений; , и используются для двумерной графики. Для трёхмерной графики используется интерфейс OpenGL .

Ввод-вывод

PDL предоставляет возможности для чтения и записи данных в различных форматах, включая JPEG , PNG , GIF , , MPEG , FITS , NetCDF , GRIB , двоичные файлы, CSV .

perldl

Вместе с PDL обычно устанавливается интерактивный интерпретатор perldl , который позволяет производить несложные вычисления без необходимости создания файлов с текстом программы. Пример работы с 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]
 ]

В данном примере создаются две матрицы и затем, при помощи перегруженного оператора x , выполняется матричное умножение. Команда p является сокращением для print .

Реализация

Ядро PDL реализовано на языке Си . Значительная часть функциональности реализована на PP , метаязыке PDL. Некоторые модули написаны на FORTRAN , с интерфейсом к C или PP. PP упрощает написание расширений к PDL на языке Си.

Реализация PDL использует объектно-ориентированные возможности Perl: PDL определяет новый скалярный объект типа «PDL» (часто обозначается piddle , ведет себя подобно скалярным типам), содержащий матрицы произвольной размерности. Все стандартные операторы языка перегружены для прозрачной поддержки объектов piddle. В отличие от стандартных массивов языка, piddle изначально разрабатывались для эффективной численной обработки

Литература

  • Jon Orwant. Chapter 11 "PDL: The Perl Data Language"

Ссылки

  • — основной сайт проекта
  • — введение в PDL
  • (PDL-2.4.10)
Источник —

Same as Perl Data Language