WikiSort.ru - Программирование

ПОИСК ПО САЙТУ | о проекте
Perl Data Language (PDL)
Класс языка векторная (en:Array programming)
Появился в 1996
Автор Карл Глейзбрук, Шарль Бринчманн, Томас Лукка и Кристиан Соллер
Разработчик Карл Глэйзбрук[d]
Выпуск 2.4.11 (20 мая 2012)
Испытал влияние APL, IDL, Perl
Лицензия GNU General Public License, Artistic License
Сайт pdl.perl.org

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

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

Дизайн языка

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

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

Графика

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

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

Ввод-вывод

PDL предоставляет возможности для чтения и записи данных в различных форматах, включая JPEG, PNG, GIF, PPM, 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 изначально разрабатывались для эффективной численной обработки

Литература

Ссылки

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии