Self-Stabilization Preserving Compiler

The project is part of our group effort towards realizing self-stabilizing systems. As we show in [DHS05], traditional compilers do not preserve the stabilization property of the source code. Our compiler preserves this property by ensuring that the target program, started in any state, eventually behaves as the source program. Apart from placing the theoretical foundations in [DHS05], the project included the design and implementation of a self-stabilization preserving compiler. Moreover, the compiler was integrated into the Eclipse development environment by two project students, Carmel Cohen and Amir Emanueli.

Exploring and building source code

·         Download the code of the compiler and the eclipse plug-in here.

·         Open Eclipse -> import (right click on the package explorer) -> Existing projects into workspace -> Select archive file -> Choose the downloaded archive -> Finish.

·         The SASM project contains the compiler and the distributed environment simulator. You can build the jar file using the pre-made jar description (sAsm-jar-on-project.jardesc). Then, copy the output file, sAsm.jar, from the workspace dir to the "<workspace>/project/tempbin" dir (run over the file I left there). Last, export the "project" project as an eclipse plug-in, choose your eclipse directory as your output directory.

·         Use the JavaDoc of packages and classes (and the paper of course) to get around in the code.

Getting started – using the compiler plug-in

·         Build the plug-in or simply download it here.

·         Place the plug-in in your eclipse/plugins directory.

·         Run eclipse, and import the (sAsm) projects in this archive. The TokenCirculation project contains Dijkstra's famous self-stabilizing algorithm – with adoption to atomic registers.

·         Follow the instructions on how to use the plug-in – here.

·         The report made by the project students – explains how to install and use the eclipse plug-in. Do not download the sources from there, use the link above instead.

Downloads:

·         The source code

·         The plug-in

·         The sample sAsm code

References

·         [DHS05] Shlomi Dolev, Yinnon Haviv, Mooly Sagiv, "Self-stabilization Preserving Compiler (Extended Abstract)" – SSS 2005, the paper

·         [DHS05a] Shlomi Dolev, Yinnon Haviv, Mooly Sagiv, "Self-stabilization Preserving Compiler" – Technical report, the paper