EQUIP2 C++ Introduction

Chris Greenhalgh, 2006-03-29; last updated 2007-06-06


EQUIP v.1 was originally written in C++ and then ported to Java. The two versions then had to be maintained and cross-patched in parallel. This tended not to work. Later on the Java version was ported to C# with the help of the Visual Studio porting tool, plus manual fix-ups. This suffered from the same problems, and the Java version is now the only stable/reliable/maintained version.

To avoid this issue, for EQUIP2, I have written a Java-to-C++ translator, which will convert the Java reference version to C++, currently targetting Posix/Unix, Windows OS and Symbian (used on mobile phones).

If you haven't already, you should probably now look at EQUIP2_CPP_Programming.html before coming back here for build information.

This means all cross-language development should be done on the Java version!!

This can currently be obtained from the same CVS as EQUIP2 in the parallel javatrans directory:

CVSROOT :pserver:anonymous@dumas.mrl.nott.ac.uk:/mrl/src/cvsroot
This is likely to move, e.g. to sourceforge, before too long.


Probably best to start with EQUIP2_CPP_Programming.html.
For general documentation on the translator, including build and usage information see ../../javatrans/docs/Javatrans_introduction.html

Building the C++ version

You need a version of javatrans (as above), compiled, and the javasupport library compiled - see Javatrans_introduction.html

You need to set the property javatranshome in ../build.properties to point to this javatrans installation (its top-level directory).

The translation is supported by the equip2 ANT build file, in particular:

The java subset of equip2 to be translated will be compiled into build.cpp/classes. The generated c++ files will be placed in build.cpp/src.cpp; headers will be copied over to dist/include. Similarly, a minimal interface/implementation of Log4j is comiled into build.cpp/log4j.classes, C++ files generated in build.cpp/log4j.src.cpp ; headers will be copied over to dist/include. Similarly, tests are comiled into build.cpp/test.classes, C++ files generated in build.cpp/test.src.cpp

These can be compiled by target platform-specific scripts in the subdirectories of the top-level targets/ directory, currently:

Known issues

Change log