IDL (ohjelmointikieli)

ohjelmointikieli
Tämä artikkeli käsittelee ohjelmointikieltä. Lyhenne IDL voi viitata myös ohjelmistorajapintojen kuvauskieliin.

IDL (interaktiivinen datakieli, engl. interactive data language) 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ä muokkaa

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 muokkaa

  • 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 muokkaa

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 muokkaa

  • What’s new in IDL 6.1 : IDL version 6.1. Boulder (Colo.): Research Systems, 2004. (englanniksi)

Aiheesta muualla muokkaa