GObject Introspection
A GNOME project that defines a syntax for introspection annotation pragmas to be used in the GObject library source code. Rather than actual introspection, these are intended to allow automatic generation of bindings (APIs) to expose the library to higher-level languages. The sort of information provided is the type and direction (in, out, inout) of function parameters and the responsibility for freeing memory used by data structures.