Interface Definition Language (IDL)
The interface between components rather than actual code is specified.
These specifications are written in a neutral IDL that defines a components boundaries - basically its interface to potential clients.
Components written to IDL should be portable across languages, tools, OSs and networks.