jBACI Concurrency Simulator

Moti Ben-Ari

jBACI is an integrated development environment for learning concurrent programming by simulating concurrency. It was built from the compilers from BACI (Ben-Ari Concurrency Interpreter), developed by Bill Bynum and Tracy Camp, and from the interpreter BACI Debugger, developed by David Strite.

The BACI compilers translate concurrent programs in (subsets of) Pascal and C into an intermediate language called PCode. They support synchronization primitives like semaphores and monitors. BACI is written in C, so separate versions need to be built for each platform. The BACI Debugger is an interpreter for PCode written in Java so that it is portable. The debugger allows breakpoints and single-stepping by source statement or PCode instruction, and the GUI includes a comprehensive display of source code, PCode, variables, stack and history of executed PCode instructions. The major modifications of jBACI include (screen shot):

Versions (see documentation for release notes)

Version 1.4.6
Gonen Raveh of the Tel Aviv University has modified jBACI to increase its support for graphics programming. The new version can be downloaded from the jbaci project at Google Code.

Version 1.4.5

The jBACI distribution includes only the build for the Intel/Windows platform; the modified Flex, Bison and C files needed for building the compilers are included in the source distribution.

jBACI documentation and lab exercises in Hebrew can be found at the site of the course Hishuv Makbili uMevuzar under the link Klei Tokhna laMa'abada.

This tool is one of a suite of tools for teaching concurrent and distributed programming:

Last update 18 April 2010.