Język opisu interfejsu, język definiowania interfejsu, IDL (od ang. interface definition language lub interface description language – język specyfikacyjny stosowany do opisu interfejsu, używany na przykład w standardzie CORBA. IDL opisuje interfejs w sposób niezależny od języka, umożliwiając komunikację między komponentami programu na poziomie kodu źródłowego, które nie współdzielą danego języka programowania, przykładowo między składnikami napisanymi w C++ i składnikami napisanymi w języku Java.
IDL jest używany głównie w programowaniu zdalnego wywoływania procedur, tak aby współdziałające systemy komputerowe mogły używać zarówno różnych systemów operacyjnych, jak i różnych języków programowania. W takim ujęciu IDL zapewnia pomost między dwoma różnymi systemami (ściślej: pomost między dwoma systemami używającymi różnych interfejsów).
IDL umożliwia opisowe definiowanie interfejsu w postaci obiektu z wykazem procedur i opisami parametrów wejściowych i wyjściowych. Każdy parametr jest określony przez typ i kierunek (in, out, inout), określający sposób przekazywania parametru, na przykład in to przekazanie parametru przez klienta do obiektu. Opisy interfejsów tłumaczone są na różne języki programowania, zależnie od intencji programisty zamierzającego z nich skorzystać. Przykładowo: jeżeli programista opanował język Java, to wykonuje tłumaczenie interfejsu do języka Java i w nim wykorzystuje właściwości oferowane przez obiekt opisany w IDL.
Przykład IDL wzorowanego na C:
interface Hello {
string prosta_metoda (in string argument);
}