IDL trouve son origine dans les premiers langages Fortran de VMS , et sa syntaxe en porte encore les traces :
Stern quitta LASP pour fonder Research Systems Inc. (RSI) en 1977. Le premier produit de RSI fut IDL pour le PDP-11. Dans cette version, les interfaces graphiques d'IDL étaient principalement celles des terminaux Tektronix et des écrans raster. RSI vendit ses premières licences IDL au Centre de vol spatial Goddard de la NASA et à Ball Aerospace & Technologies Corp. en 1979. Deux ans plus tard, RSI publia une première version VAX/VMS d'IDL, écrite en VAX MACRO et FORTRAN. Elle tirait parti de la mémoire virtuelle VAX et de l'espace d'adressage 32 bits. Le Centre national de recherche atmosphérique (NCAR), l' Université du Michigan , l' Université du Colorado et le Laboratoire de recherche navale commencèrent à utiliser IDL avec cette version.
En 1987, RSI a orienté le développement d'IDL vers l' environnement Unix , ce qui a nécessité une réécriture complète du code en C plutôt qu'un simple portage de la version VAX IDL existante. Stern et Ali Bahrami ont réécrit IDL pour Unix sur Sun 3, profitant de cette réécriture pour étendre et améliorer le langage. Par la suite, IDL a été développé et porté sur plusieurs distributions Unix, VMS, Linux, Microsoft Windows (1992) et Mac OS (1994).
L'ajout de widgets à IDL en 1992 a permis la programmation événementielle avec des interfaces graphiques . En 1997, ION (IDL On the Net), un système basé sur un serveur web, a été commercialisé. La première version d' ENVI , une application d' analyse d'images multispectrales et hyperspectrales de télédétection écrite en IDL, a été publiée en 1994. ENVI a été créé, développé et détenu par Better Solutions Consulting, LLC (BSC), jusqu'à son rachat par Eastman Kodak en octobre 2000, simultanément à l'acquisition de RSI par cette dernière. RSI a vendu, commercialisé et assuré le support d'ENVI sous les termes d'un contrat de licence avec BSC, LLC, de 1994 à octobre 2000. De nouveaux types d'objets et de pointeurs, ainsi que des fonctionnalités limitées de programmation orientée objet , ont été ajoutés à IDL en 1997.
IDL a trouvé de nombreuses applications en sciences spatiales, notamment en physique solaire . L' Agence spatiale européenne a utilisé IDL pour traiter la quasi-totalité des images de la comète de Halley prises par la sonde Giotto . L'équipe chargée de la réparation du télescope spatial Hubble a eu recours à IDL pour diagnostiquer des anomalies dans le miroir principal. En 1995, les astronautes à bord d'une navette spatiale ont utilisé IDL installé sur un ordinateur portable pour étudier le rayonnement ultraviolet. Actuellement, IDL est notamment utilisé pour la majeure partie de l'analyse des données SECCHI de la mission STEREO au NRL (États-Unis) et au Rutherford Appleton Laboratory (Royaume-Uni).
En mars 2004, RSI est devenue une filiale à 100 % d' ITT Industries. Le 15 mai 2006, RSI a commencé ses activités sous le nom d' ITT Visual Information Solutions . Le 31 octobre 2011, suite à une restructuration, cette société est devenue Exelis Visual Information Solutions . En 2015, IDL a été rachetée par Harris Geospatial Solutions , qui est ensuite devenue NV5 Geospatial .
Caractéristiques
En tant que langage informatique, IDL :
- est typé dynamiquement .
- Il possède des espaces de noms distincts pour les variables, les fonctions et les procédures, mais pas de hiérarchie d'espaces de noms.
- Initialement monothread, il comporte désormais de nombreuses fonctions et procédures multithread.
- tous les arguments de la fonction sont passés par référence ; mais voir « problèmes » ci-dessous.
- comporte des paramètres nommés, appelés mots-clés, qui sont passés par référence.
- assure l'héritage des paramètres nommés dans les appels de routines imbriqués, par référence ou par valeur.
- ne requiert pas que les variables soient prédéclarées .
- fournit des déclarations de blocs COMMON et des variables système pour partager des valeurs globales entre les routines.
- fournit une forme de base de programmation orientée objet, quelque peu similaire à Smalltalk , ainsi que la surcharge d'opérateurs .
- implémente un tas global et persistant de variables pointeur et objet, utilisant le comptage de références pour le ramasse-miettes.
- compile en un p-code intermédiaire interprété et basé sur une pile (à la machine virtuelle Java ).
- offre une syntaxe d'indexation simple et efficace pour extraire des données de grands tableaux.
- propose des tailles entières variées, ainsi que des nombres réels et complexes à virgule flottante en simple et double précision.
- fournit des types de données composites tels que des chaînes de caractères, des tableaux de types homogènes, des listes, des tables de hachage et des structures d'enregistrement simples (non hiérarchiques) de types de données mixtes.
Problèmes
De nombreuses irrégularités historiques subsistent des origines du langage, obligeant le programmeur à trouver des solutions personnalisées. Par exemple :
- L'indexation des tableaux et l'entrée dans les sous-programmes peuvent être réalisées avec la même syntaxe (parenthèses). Cette ambiguïté, combinée à l'espace de noms unique pour toutes les variables et sous-programmes, peut entraîner un dysfonctionnement du code lorsque de nouveaux sous-programmes ou extensions de langage entrent en conflit avec les noms de variables locales. Les programmeurs IDL peuvent éviter nombre de ces problèmes en utilisant des crochets pour l'indexation des tableaux, évitant ainsi les conflits avec les noms de fonctions qui utilisent des parenthèses.
Le problème précédent peut être atténué grâce à cette option du compilateur :
COMPILE_OPT STRICTARR
ITT Visual Information Solutions (ITT VIS) , les développeurs d'IDL, ont pris des mesures explicites pour empêcher la compatibilité du bytecode avec d'autres environnements. Les fichiers contenant des routines compilées utilisent un format de structure de données binaire étiquetée qui n'a pas été publié officiellement, mais qui a été étudié et documenté par les utilisateurs . Ils contiennent également la mention suivante sous forme de texte ASCII intégrée dans chaque fichier enregistré :
Les fichiers de sauvegarde/restauration IDL contiennent des informations confidentielles non publiées relatives au programme IDL. Leur rétro-ingénierie est donc interdite conformément aux termes du Contrat de Licence Utilisateur Final IDL (CLUF IDL). Tous les utilisateurs d'IDL sont tenus de lire et d'accepter les termes du CLUF IDL lors de l'installation du logiciel. Tout logiciel lisant ou écrivant des fichiers au format de sauvegarde/restauration IDL doit être titulaire d'une licence délivrée par NV5 Geospatial Solutions, Inc. l'y autorisant explicitement. Dans ce cas, la licence sera fournie avec le logiciel pour consultation. Veuillez signaler tout logiciel ne disposant pas d'une telle licence à votre responsable de compte ou à votre représentant commercial.
Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.Plus d articles de Worldlex Wiki