IPOPT has been designed to be flexible for a wide variety of applications, and there are a number of ways to interface with IPOPT that allow specific data structures and linear solver techniques. Nevertheless, the authors have included a standard representation that should meet the needs of most users.
This tutorial will discuss six interfaces to IPOPT, namely the AMPL modeling language  interface, and the C++, C, Fortran, Java, and R code interfaces. AMPL is a 3rd party modeling language tool that allows users to write their optimization problem in a syntax that resembles the way the problem would be written mathematically. Once the problem has been formulated in AMPL, the problem can be easily solved using the (already compiled) IPOPT AMPL solver executable, ipopt. Interfacing your problem by directly linking code requires more effort to write, but can be far more efficient for large problems.
We will illustrate how to use each of the four interfaces using an
example problem, number 71 from the Hock-Schittkowsky test suite ,
You can find further, less documented examples for using IPOPT from your own source code in the Ipopt/examples subdirectory.