인터페이스 정의 언어

인터페이스 정의 언어(Interface Description Language 또는 Interface Definition Language, IDL)는 소프트웨어 컴포넌트의 인터페이스를 묘사하기 위한 명세 언어이다. IDL은 어느 한 언어에 국한되지 않는 언어중립적인 방법으로 인터페이스를 표현함으로써, 같은 언어를 사용하지 않는 소프트웨어 컴포넌트 사이의 통신을 가능하게 한다.
예를 들면, C++을 사용하여 작성한 컴포넌트와 자바를 사용한 컴포넌트 사이에서 국한되지 않고, 인터페이스를 묘사하는 개념이다.

IDL 은 보통 RPC를 이용한 소프트웨어에서 사용된다. 이때, RPC "연결"의 양 쪽에 있는 컴퓨터는 다른 운영 체제와 프로그래밍 언어를 사용할 수 있다. IDL은 다른 두 개의 시스템을 연결하는 다리 역할을 한다.

IDL을 기반으로 한 시스템 
 썬의 ONC RPC
 오픈 그룹의 분산 컴퓨팅 환경
 IBM의 시스템 오브젝트 모델
 OMG의 CORBA
 WSDL - 웹 서비스에서 사용된다.
 페이스북의 Thrift

인터페이스 정의 언어 
 IDL specification language - 최초의 인터페이스 정의 언어
 AIDL 안드로이드 인터페이스 정의 언어 - 구글의 안드로이드를 위한 IDL
 마이크로소프트 인터페이스 정의 언어
 오픈 서비스 인터페이스 정의
 플랫폼 독립 컴포넌트 모델링 언어
 WSDL, 웹 서비스 기술 언어.
 유니버설 네트워크 오브젝트 - OpenOffice.org의 컴포넌트 모델
 SWIG - 단순 래퍼(wrapper)이자 인터페이스 생성기
 XPIDL - 모질라의 크로스플랫폼 IDL
 Etch - 시스코의 Etch 크로스 플랫폼 서비스 기술 언어
 프로토콜 버퍼 - 구글의 IDL
 슬라이스 - ICE의 규격 언어

데이터 모델링 언어
원격 프로시저 호출