IDL IDL's syntax looks quite similar to C++'s class definition syntax. One may define a module, that contains one or more interfaces. An interface is similar to an abstract class. You define a set of methods, each with their parameter types and return value types, and possibly define a set of attributes, which may be accessed by clients. Data types supported by IDL include basic types (int, short, string...), and complex types (structures, unions, arrays, sequences...).