IDL (od ang. Interactive Data Language) – język programowania przeznaczony do analizy i wizualizacji danych, popularny w astronomii, naukach o Ziemi, teledetekcji, fizyce atmosfery oraz diagnostyce obrazowej. Stworzony w 1977 roku przez Davida Sterna, jest obecnie rozwijany przez firmę NV5 Geospatial Solutions. Istnieją także wolne implementacje języka: GNU Data Language (GDL) i Fawlty Language (FL).

Historia Poprzednicy IDL powstali w latach 70. XX wieku w Laboratory for Atmospheric and Space Physics (LASP) na Uniwersytecie Kolorado w Boulder, gdzie David Stern pracował nad narzędziami pozwalającymi naukowcom samodzielnie testować hipotezy na danych, bez angażowania programistów. Pierwszym programem w tej linii był Rufus – prosty wektorowy kalkulator na komputer PDP-12; jego wersja na PDP-8, nazwana Mars Mariner Spectrum Editor (MMED), służyła do interpretacji danych z sond Mariner 7 i Mariner 9. Kolejny program, SOL, był już pełnoprawnym językiem programowania o składni wzorowanej na Fortranie, zorientowanym na operacje tablicowe i wyposażonym w podstawową grafikę.

W 1977 roku Stern odszedł z LASP i założył firmę Research Systems Inc. (RSI), której pierwszym produktem był IDL na komputery PDP-11. W 1981 roku ukazała się wersja na VAX/VMS, napisana w makroasemblerze VAX i Fortranie, a w 1987 roku firma przeniosła rozwój języka do środowiska Unixa, co wymagało całkowitego przepisania kodu w języku C. W kolejnych latach IDL przeniesiono na kolejne platformy, w tym Microsoft Windows (1992) i Mac OS (1994); w 1992 roku język zyskał widgety umożliwiające budowę graficznych interfejsów użytkownika, a w 1997 roku ograniczone mechanizmy programowania obiektowego. W 1994 roku ukazała się pierwsza wersja napisanego w IDL pakietu ENVI do analizy teledetekcyjnych obrazów wielo- i hiperspektralnych.

Zmiany właścicielskie W marcu 2004 roku RSI zostało przejęte przez koncern ITT Industries i od 2006 roku działało jako ITT Visual Information Solutions, przekształcone w 2011 roku w Exelis Visual Information Solutions. W 2015 roku spółkę Exelis przejął koncern Harris Corporation, a po fuzji Harrisa z L3 Technologies w 2019 roku IDL rozwijała spółka L3Harris Geospatial Solutions. W kwietniu 2023 roku geoprzestrzenną część oprogramowania L3Harris, wraz ze znakami towarowymi IDL i ENVI, przejęła firma NV5 Global; produkt rozwijany jest odtąd pod szyldem NV5 Geospatial Solutions.

Charakterystyka IDL jest językiem tablicowym (wektorowym), numerycznym i interaktywnym, stosowanym do przetwarzania dużych zbiorów danych, w tym obrazów cyfrowych. Składnia łączy konstrukcje z Fortranu i C, a rodowód języka widać w poniższym przykładzie: x = findgen(100)/10 y = sin(x)/x plot, x, y Funkcja findgen zwraca jednowymiarową tablicę liczb zmiennoprzecinkowych o wartościach kolejnych liczb całkowitych od zera, a operacja w drugim wierszu wykonywana jest wektorowo na całej stuelementowej tablicy – analogicznie jak w językach tablicowych pokroju APL. Występujące w przykładzie dzielenie przez zero skutkuje zapisaniem wartości NaN w pierwszym elemencie tablicy, pomijanej następnie przy rysowaniu wykresu.

Język cechuje dynamiczne typowanie, brak wymogu deklarowania zmiennych, przekazywanie argumentów przez referencję, nazwane parametry (słowa kluczowe) oraz bogaty zestaw typów złożonych (łańcuchy, tablice, listy, tablice mieszające, struktury rekordowe); kod kompilowany jest do pośredniego p-kodu wykonywanego przez interpreter. Cechy ułatwiające pracę interaktywną bywają źródłem problemów przy budowie dużych programów: wszystkie zmienne, funkcje i procedury współdzielą jedną, płaską przestrzeń nazw, przez co nowe funkcje wbudowane wprowadzane w kolejnych wersjach języka potrafiły unieważniać istniejące biblioteki naukowe.

Zastosowania IDL zdobył szczególną popularność w astronomii i naukach o kosmosie; centrum Goddarda NASA utrzymuje obszerną bibliotekę procedur astronomicznych IDL Astronomy User's Library. Z języka korzysta m.in. Niemieckie Centrum Lotnictwa i Kosmonautyki (DLR) przy przetwarzaniu danych obserwacji Ziemi. Od lat 2010. udział IDL w środowisku astronomicznym maleje na rzecz Pythona: ankieta przeprowadzona wśród astronomów w 2015 roku wykazała, że z Pythona korzystało 67% badanych, a z IDL – 44%, przy czym wśród młodszych naukowców przewaga Pythona była wyraźnie większa.

Wolne implementacje GNU Data Language (GDL) to rozwijany od 2004 roku wolny kompilator zgodny składniowo z IDL, dostępny w większości dystrybucji Linuxa. Drugą wolną implementacją jest Fawlty Language (FL), kompilator zgodny z IDL w wersji 8.

Zobacz też GNU Data Language MATLAB NumPy

Przypisy

Linki zewnętrzne Strona produktu IDL IDL Astronomy User's Library

Kategoria:Języki programowania