The GNU PDF Library codebase is written using the C programming language. C does not support the notion of object as used in object-oriented programming.
Instead of objects we are using a kind of data-control abstraction called abstract data types. This abstraction provides high encapsulation of the implementation details of the data types and thus allow the definition of opaque types.
An ADT is composed by: