IDL (lenguaje de programación)


IDL , abreviatura de Interactive Data Language , es un lenguaje de programación utilizado para el análisis de datos . Es popular en áreas particulares de la ciencia, como la astronomía , la física atmosférica y las imágenes médicas . [ cita necesaria ] IDL comparte una sintaxis común con PV-Wave y se originó a partir de la misma base de código , aunque los lenguajes posteriormente divergieron en detalle. También existen implementaciones gratuitas o sin costo , como GNU Data Language (GDL) y Fawlty Language (FL).

IDL es vectorizado , numérico e interactivo, y se usa comúnmente para el procesamiento interactivo de grandes cantidades de datos (incluido el procesamiento de imágenes ). La sintaxis incluye muchas construcciones de Fortran y algunas deC.

La función findgen en el ejemplo anterior devuelve una matriz unidimensional de números de punto flotante, con valores iguales a una serie de números enteros que comienzan en 0.

Tenga en cuenta que la operación en la segunda línea se aplica de manera vectorizada a toda la matriz de 100 elementos creada en la primera línea, de manera análoga a la forma en que lo harían los lenguajes de programación de matrices de propósito general (como APL , J o K ). Este ejemplo contiene una división por cero; IDL informará un desbordamiento aritmético y almacenará un valor NaN en el elemento correspondiente de la matriz y (el primero), pero los otros elementos de la matriz serán finitos. El NaN está excluido de la visualización generada por el comando de trazado .

Como ocurre con la mayoría de los otros lenguajes de programación de matrices, IDL es muy rápido al realizar operaciones vectoriales (a veces tan rápido como un bucle personalizado bien codificado en Fortran o C) pero bastante lento si los elementos necesitan procesarse individualmente. Por lo tanto, parte del arte de usar IDL (o cualquier otro lenguaje de programación de matrices, para el caso) para cálculos numéricos pesados ​​es hacer uso de las operaciones vectoriales incorporadas.

Las versiones predecesoras de IDL se desarrollaron en la década de 1970 en el Laboratorio de Física Atmosférica y Espacial (LASP) de la Universidad de Colorado en Boulder . En LASP, David Stern participó en esfuerzos para permitir a los científicos probar hipótesis sin emplear programadores para escribir o modificar aplicaciones individuales. El primer programa en la cadena evolutiva de IDL que desarrolló Stern se llamó Rufus; Era una calculadora simple orientada a vectores que se ejecutaba en el PDP-12 . Aceptaba códigos de dos letras que especificaban una operación aritmética, los registros de entrada para servir como operandos y el registro de destino. Una versión de Rufus desarrollada en el PDP-8 fue el Mars Mariner Spectrum Editor (MMED). Los científicos de LASP utilizaron MMED para interpretar datos de Mariner 7 y Mariner 9 . Más tarde, Stern escribió un programa llamado SOL, que también se ejecutó en el PDP-8. A diferencia de sus predecesores, era un verdadero lenguaje de programación con una sintaxis similar a FORTRAN. SOL era un lenguaje orientado a matrices con algunas capacidades gráficas primitivas. [1]