Chapter 3 Managing Data and Memory in Mixed-Language Applications
ECLiPSe is a software engine for constraint propagation and search tasks.
As such, it represents its data in a form that is different
from how it would be represented in a traditional C/C++ program.
the ECLiPSe data representation supports automatic memory management
and garbage collection, modifications that can be undone in a search context,
referential transparency and dynamic typing.
In a mixed-language application, there are two basic ways of communicating
information between the components coded in the different languages:
Both techniques are supported by the ECLiPSe/C and ECLiPSe/C++ interface.
- When data is needed for processing in another language,
it can be converted to the corresponding representation.
This technique is appropriate for simple data types (integers, strings),
but can have a lot of overhead for complex structures.
- The bulk of the data is left in its original representation,
referred to by a handle, and interface functions (or methods) provide
access to its components when required.