IDL (ohjelmointikieli)

IDL (interaktiivinen datakieli, ) on 1970-luvun loppupuolella syntynyt ohjelmointikieli, jota on käytetty erityisesti luonnontieteissä kerätyn tiedon analysointiin ja visualisointiin. IDL:n kehittäjä on yhdysvaltalainen yhtiö ITT Visual Information Solutions (entinen Research Systems, Inc.).

Yleistä 
IDL on vektorien käsittelyyn suuntautunut numeerinen vuorovaikutteiseen työskentelyyn sopiva kieli. Monet sen piirteet muistuttavat Fortrania. Sitä käytetään suurten tietoaineistojen vuorovaikutteiseen käsittelyyn, esimerkiksi kuvankäsittelyyn.

IDL:n toteutus 1980-luvulla pohjautui Fortraniin VAX/VMS-ympäristössä. Tämä näkyy yhä IDL:n syntaksissa:
 x = findgen(100)/10
 y = sin(x)/x
 plot,x,y
Huomaa, että toisen rivin laskutoimitus kohdistuu koko 100-alkioiseen ensimmäisellä rivillä luotuun ja alustettuun taulukkoon. Tämä muistuttaa yleiskäyttöisten vektoriohjelmointikielten (kuten APL tai J) ilmaisutapaa.

Kuten useimmilla muilla vektorien käsittelyyn suuntautuneilla ohjelmointikielillä, IDL:llä voi suorittaa vektorien laskutoimituksia hyvin nopeasti (joskus nopeammin kuin vastaavalla Fortran- tai C-kielisellä toteutuksella), mutta alkioiden käsittely yksitellen on hidasta. Siten osa IDL-ohjelmointitaitoa on käyttää raskaissa numeerisissa laskutoimituksissa kieleen sisäänrakennettuja vektorioperaatioita.

Ominaisuuksia 
 dynaaminen tyypitys
 yksi yhteinen nimiavaruus
 yksisäikeinen ohjelman suoritus
 yleensä funktioiden argumentit välitetään viittauksena
 muuttujia ei tarvitse määritellä
 globaaleja muuttujia voi jakaa aliohjelmien välillä vain COMMON-alueiden välityksellä
 tuki yksinkertaiselle oliopohjaiselle ohjelmoinnille
 ohjelmat käännetään tulkittavaksi välikoodiksi, samaan tapaan kuin Javan virtuaalikoneessa
 yksinkertainen ja tehokas indeksointi, jolla taulukosta voidaan poimia osia
 eri kokonaislukutyyppejä, yksin- ja kaksinkertaisen tarkkuuden liukuluvut reaali- ja kompleksiluvuille
 yhdistettyjä tietotyyppejä (merkkijonot, yhtä alkiotyyppiä sisältävät taulukot, yksinkertaiset (ei-hierarkkiset) eri tietotyyppejä yhdistävät struktuurit)

Vaikeuksia 
Jotkin ominaisuuksista, jotka tekevät IDL:stä helpon vuorovaikutteisessa käytössä, vaikeuttavat laajojen ohjelmistojen kirjoittamista. Yhteinen nimiavaruus hankaloittaa mm. eri lähteistä olevien ohjelmien yhdistämistä. IDL:ssä ei ole tyhjiä taulukoita, muuttuvankokoisia dynaamisia taulukoita eikä mahdollisuutta sisäkkäisiin taulukoihin. Kielen olio-ominaisuudet jättävät muistinhallinnan ohjelmoijan vastuulle.

Lähteet

Aiheesta muualla 
 ITT Visual Information Solutions: IDL  

Ohjelmointikielet