Lenguaje de datos de Perl (PDL) | |
---|---|
clase de idioma | vector ( es:Programación de matrices ) |
Apareció en | 1996 |
Autor | Carl Glazebrook, Charles Brinchmann, Thomas Lucca y Christian Soller |
Desarrollador | Carlos Glazebrook [d] |
Liberar | 2.077 (16 marzo 2022 ) |
sido influenciado | APL , IDL , Perl |
Licencia | Licencia Pública General GNU , Licencia Artística |
Sitio web | pdl.perl.org |
PDL (abreviatura de inglés P erl Data L anguage ) es un conjunto de extensiones vectoriales para la versión 5 del lenguaje de programación Perl . Diseñado para cálculos científicos y otras tareas relacionadas con el procesamiento de grandes cantidades de datos, incluyendo: procesamiento de imágenes , simulación por computadora de sistemas físicos.
PDL está conectado a un programa Perl con:use PDL;
PDL es un lenguaje vectorial: la sintaxis de las expresiones es similar a la notación matemática estándar para operaciones en vectores y matrices multidimensionales. En este sentido, PDL es similar al lenguaje de programación APL y, a menudo, se compara con MATLAB , Interactive Data Language , NumPy y Octave . A diferencia de MATLAB e IDL, el lenguaje PDL permite una indexación y vectorización más flexibles, por ejemplo, si una función que procesa matrices bidimensionales se alimenta con una tridimensional, entonces la función se aplicará capa por capa a cada capa del cubo.
A principios de 2005, se planeó incluir una funcionalidad similar a PDL en la sexta versión del lenguaje ( Perl 6 ).
El PDL proporciona interfaces a varios módulos para crear gráficos. NetPBM se utiliza para la E/S de imágenes; PLplot , PGPLOT y Karma se utilizan para gráficos 2D. Para gráficos 3D, se utiliza la interfaz OpenGL .
El PDL proporciona funciones para leer y escribir datos en varios formatos, incluidos JPEG , PNG , GIF , PPM , MPEG , FITS , NetCDF , GRIB , binario, CSV .
El intérprete interactivo perldl suele instalarse con el PDL , lo que permite realizar cálculos sencillos sin necesidad de crear archivos con el texto del programa. Perldl ejemplo:
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 ] ]En este ejemplo, se crean dos matrices y luego, utilizando el operador sobrecargado x, se realiza la multiplicación de matrices. El comando pes la abreviatura de print.
El núcleo de PDL está implementado en lenguaje C. Gran parte de la funcionalidad está implementada en PP , el metalenguaje de PDL. Algunos módulos están escritos en FORTRAN , con interfaz a C o PP. PP facilita la escritura de extensiones a PDL en lenguaje C.
La implementación de PDL utiliza las funciones orientadas a objetos de Perl: PDL define un nuevo objeto escalar de tipo "PDL" (a menudo denominado piddle , se comporta como tipos escalares) que contiene matrices de dimensión arbitraria. Todos los operadores de lenguaje estándar están sobrecargados para admitir objetos piddle de forma transparente. A diferencia de las matrices de lenguaje estándar, los piddle se diseñaron originalmente para un procesamiento numérico eficiente.