A large number of programming systems are known which can be used to produce programs for data processing installations.  Examples used to a large extent and below are the programming languages JAVA and C. The abstract specification of the programming language includes translators, which produce program code.  These translators are thus tools which are used to set up the computers to behave in a particular way. 
With the introduction of a new programming language, in this case JAVA, the problem always arises of how to call subprograms in the respective other programming language.  Generally known techniques convert the calling conventions of various programming language implementations, provided that the programming languages are sufficiently similar.  By way of example, joint use of C and Pascal is known, where usually one keyword characterizes the function or procedure as appropriate.  So long as a single variable is involved, this technique is simple and familiar.  Greater problems arise with the joint use of structures.  In this context, the solution normally involves joint representation being possible in the memory and, on the basis of knowledge of the memory structure, a pair of descriptions being produced manually which represent the same memory structure.  When coupling object-oriented languages, such as JAVA, and function-oriented languages, such as C, however, particular problems arise if structures are involved.  This is so because JAVA does not know any structures like C; the best approximation involves the use of objects, possibly interleaved. 
JAVA is already provided with an interface for calling C programs, in particular.  This interface is called ‘JAVA Native Interface’, and is abbreviated to JNI. 
Existing C functions for integration with Java programs, the signatures for these C functions will still have to be modified to work with the JNI.  It is thus not readily possible to call a prescribed C function from JAVA without producing an auxiliary function, normally called a ‘wrapper function’, for each function to be called in this manner.  In particular, the use of structures in C always needs to be implemented individually in parameter form, since there are no structures in JAVA.