Subsecciones
PDL es un lenguaje de programación orientado al cálculo
numérico. Sus siglas significan ``Perl Data Language'',
y como su nombre indica está basado en el lenguaje
de programación Perl. PDL es una extensión de Perl orientada
al tratamiento numérico de datos. Puede hacer
cálculos numéricos matriciales de una forma rápida.
Antes de continuar explicando lo que es PDL, daremos
una breve idea de lo que es Perl.
Perl es la abreviación de ``Practical Extraction and Report
Language''. Es lo que se conoce como un lenguaje ``script'',
es decir, uno en el que no hace falta compilar el programa
escrito o ``script''. En la práctica se compila parcialmente
al comienzo de su ejecución. Ha sido diseñado para
``hacer las cosas fáciles fáciles y las cosas
difíciles posibles''.
Veamos algunas de las ventajas y desventajas de Perl:
- Es un buen lenguaje ``pegamento''. Se pueden juntar varios
programas de una forma sencilla para alcanzar una meta determinada.
Los usuarios de Windows agradecerán esta propiedad ya que
normalmente adolecen de un buen lenguaje tipo ``script''.
- Es relativamente rápido para un lenguaje tipo ``script''.
- Está disponible en múltiples plataformas y sistemas
operativos. De hecho funciona bajo diferentes
sabores de UNIX, Linux y todo tipo de Windows.
Un programa que se escriba teniendo en cuenta
la compatibilidad
puede ser escrito en una plataforma y ejecutado en otra.
- El desarrollo de aplicaciones es muy rápido.
- Hay una colección enorme de módulos que pueden ser
incorporados a cualquier ``script'' de Perl.
Están disponibles en el
CPAN (``Comprehensive
Perl Archive Network'').
En particular existe una extensión para cálculo numérico
denominada PDL.
- Perl es gratuito. Mucho más que eso, es ``Software Libre''.
Esto quiere decir que el código fuente está disponible
para que cualquiera lo pueda ver o modificar, y lo que
es más importante, siempre lo estará. Aunque nunca pretendas
cambiar el código, es importante disponer de la posibilidad
de hacerlo, ya que siempre se podrá contratar a una
tercera persona para que lo modifique en el caso de que
haya un error, y debería ser posible solucionarlo.
- Le otorga al programador mucha libertad para que haga
el programa como quiera. Tal como dice el eslogan
de Perl ``Hay más de una forma de hacerlo''.
Algunas de las desventajas de Perl son:
- Es lento para algunas aplicaciones, como programación
a bajo nivel, escribiendo un ``driver'' para una aplicación
o corriendo modelos numéricos de cálculo intensivo.
Si bien se pueden insertar subrutinas FORTRAN o C en Perl,
teniendo lo mejor de los dos mundos, pero con algo
más de complejidad.
- La libertad que se le otorga al programador puede significar
que el resultado sea un programa ilegible.
Si no se escribe con cuidado puede llegar a ser difícil de leer.
De hecho hay un concurso de Perl ofuscado.
- No se pueden compilar programas Perl. Aunque
actualmente se está desarrollando un compilador
que realice esta tarea y hay uno comercial
disponible para la plataforma Windows.
Este tema no es tan crítico como suena, los
programas Perl no correrán mucho más rápidos
cuando se compilen, la única ventaja está en la
desaparición de la fase inicial de compilación
al correr la aplicación.
- Utiliza muchos recursos de la máquina. Esto significa
que no es tan ligero como un programa en C, pero en la
práctica es ligero comparado con la potencia de computación
de los ordenadores actuales.
Tal como hemos mencionado, PDL es un lenguaje
de cálculo numérico basado en Perl con la
posibilidad de manipular matrices n-dimensionales
de forma rápida. Se puede
conseguir gratuitamente
en la red en
la página principal de
PDL
Veamos ahora algunas ventajas y desventajas de PDL.
Las principales ventajas de PDL son:
- Es gratuito y es ``software libre''.
- Permite el cálculo con matrices y con mayores dimensiones,
no se detiene en la segunda dimensión, sino que permite
realizar cálculos con más dimensiones.
En este sentido está muy bien diseñado y escala
hacia arriba muy bien.
- Es muy rápido.
- La salida gráfica es muy buena.
Las gráficas bidimensionales están basadas
en PGPLOT, el cual es muy adecuado tanto para
figuras con calidad de publicación como para
figuras del día a día.
Las gráficas tridimensionales, basadas en la librería
MESA, aún no tienen una calidad de publicación, pero son
muy buenas para representar parámetros en tres dimensiones
de una forma sencilla y permite la rotación en tiempo
real de los datos.
Las principales desventajas de PDL son:
- La librería numérica disponible para realizar
cálculos específicos no es muy grande.
Esta faceta está cambiando rápidamente a medida
que más librerías numéricas se van incluyendo
en PDL como por ejemplo GSL o SLATEC.
- No tiene soporte para cálculo de números
complejos de forma nativa.
En la versión 2.004 de PDL se ha incluido
una paquete de cálculo complejo,
pero sólo permite realizar aritmética compleja
simple.
- Programar en PDL requiere un pensamiento abstracto
mayor que en otros lenguajes para poder
extraer toda su potencia.
En algunos casos también ocurre que no hay
una forma sencilla de utilizar comandos y se tiene que
buscar una solución más complicada.
Para tener una referencia con otros lenguajes
de programación de cálculo numérico se detalla
en la Tabla 1.
En dicha tabla la comparativa se realiza sobre
las siguientes características:
- ¿Orientado a cálculo numérico? Esta columna hace referencia
a si el lenguaje ha sido diseñado para realizar cálculo
numérico de forma sencilla.
- Número máximo operativo de dimensiones de matrices.
Esta columna refleja el hecho de si el lenguaje
ha sido diseñado para que funcione bien, de forma
operativa, con matrices de dimensión dos o más.
- Velocidad de cálculo. Una visión muy aproximada
de la velocidad de cálculo del lenguaje, siempre
desde el punto de vista de un lenguaje de alto nivel
(mucho más lento que un programa en C).
Esta velocidad está determinada con programas
que tienden a favorecer los lenguajes
con matrices de más de dos dimensiones.
Habitualmente, por ejemplo, introducir
un bucle explícitamente en Octave o MatLab supone una penalización
en velocidad muy grande. Este tipo de bucles suelen
ser innecesarios en lenguajes que admiten matrices de más
dimensiones (PDL y Yorick).
- Calidad gráficos 2D. Calidad final de las gráficas
bidimensionales generadas con ese lenguaje. Alta
significa que tiene calidad de publicación.
- Calidad gráficos 3D. Calidad final de las gráficas
tridimensionales generadas con ese lenguaje. Alta
significa que tiene calidad de publicación.
- Número funciones matemáticas disponibles. Cada lenguaje
dispone de más o menos funciones matemáticas, así como
subrutinas de cálculo tales como minimización, resolución
de ecuaciones diferenciales, etc.
- Precio corriendo bajo Linux. Precio del lenguaje
corriendo bajo Linux.
Tabla:
Tabla comparativa de PDL con otros
lenguajes de cálculo numérico. Veáse el texto para más
detalles sobre el significado de las columnas.
|
¿Orientado |
Nº máximo |
Velocidad |
Calidad |
Calidad |
Número |
Precio |
|
a |
operativo de |
de |
gráficos |
gráficos |
funciones |
corriendo |
LENGUAJE |
cálculo |
dimensiones |
cálculo |
2D |
3D |
matemáticas |
sobre |
|
numérico? |
de matrices |
|
|
|
disponibles |
Linux |
Mathematica |
No |
Infinitas |
Baja |
Media |
Media |
Muchas |
Alto |
MatLab |
Sí |
Dos |
Media |
Alta |
Alta |
Muchas |
Alto |
Octave |
Sí |
Dos |
Media |
Media |
Pobre |
Medio |
Gratis |
Yorick |
Sí |
Infinitas |
Alta |
Media |
Media |
Pocas |
Gratis |
PDL |
Sí |
Infinitas |
Alta |
Alta |
Media |
Medio |
Gratis |
|
Siguiente: Tutorial de PDL
Superior: Comenzando con PDL: un
Anterior: Comenzando con PDL: un
Download this document: [src.tar.gz][ps.gz][html.tar.gz][dvi.gz]
Congreso HispaLinux 2000