In MINIMOS-NT the Algorithm Library is used which was developed by Mlekus . The library supports general C++ classes which simplify and standardize communication between models and the environment they are used in. Device models in MINIMOS-NT are represented by C++ classes  derived from a common base class Model which provides methods for the communication between the Algorithm Library, the actual Model instance and the simulator. Model classes encapsulate the algorithms, the private data values, an Interface containing the input and output Parameters, and the documentation of the Model within a single entity. The interface parameters provide the communication interface and are themselves classes. They are implemented as C++ templates Param<type> to allow for a maximum flexibility. The base class for all devices is MmxDevice which will be described in the following section. The Algorithm Library provides both C++ as models written in a special language called Model Definition Language (MDL). MDL was designed to be as much C++ compatible as possible. However, due to the non-standardized way C++ compilers internally treat variable and class names some restrictions are necessary. All devices are inherited from the class MmxDevice which defines the interface to the simulator. C++ does not support dynamic access to member functions and member variables by name (like e.g., r = getValueOf("R0")). This functionality is offered by the Param class in conjunction with the Interface class. The latter maintains a list of parameters which can be accessed by name via the Interface class. Hence, all member variables which must be accessible in both C++ and MDL models must be of class Param. Care had been taken not to deteriorate the performance but this issue is beyond the scope of this thesis.