| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| ConcurrencySuite.zip | 2007-08-13 | 1.2 MB | |
| vn-1-7.zip | 2007-07-31 | 228.9 kB | |
| readme-pcdp.txt | 2007-07-31 | 3.4 kB | |
| idot-1-0.zip | 2007-07-25 | 1.6 MB | |
| daj3-4.zip | 2007-07-25 | 411.5 kB | |
| vn-1-6.zip | 2007-07-25 | 252.2 kB | |
| jspin-4-1-3.zip | 2007-07-25 | 592.1 kB | |
| Totals: 7 Items | 4.3 MB | 0 | |
ConcurrencySuite
Tools for teaching concurrency and nondeterminism
http://sourceforge.net/projects/pcdp/
Mordechai (Moti) Ben-Ari
http://stwww.weizmann.ac.il/g-cs/benari/
Concurrency and nondeterminism are two of the most challenging topics in
computer science. Concurrency is difficult because you cannot test
a concurrent program so formal verification techniques are indispensable.
Nondeterminism is difficult because it is unnatural to students who have
studied deterministic algorithms and programming.
From this site you can download a suite of software tools
for teaching and learning these subjects:
jSpin - A development environment for the Spin model checker.
SpinSpider - A tool for automatically creating state transition
diagrams of concurrent programs. (SpinSpider is integrated
into jSpin and is not downloaded separately.)
iDot - A program for incremental visualization of Dot graphs
such as those generated by SpinSpider.
VN - A software tool for visualizing and "experiencing" nondeterminism.
DAJ - An interactive program for studying distributed algorithms.
The tools are described in more detail below.
The programs are written in Java and are available under the
GNU General Public License.
Other tools that are needed (Spin, Graphviz/dot, an ANSI C
compiler, JFLAP) can be freely downloaded
as described in the documentation of each tool.
The tools are coordinated with my textbooks:
Principles of Concurrent and Distributed Programming (Second Edition),
Addison-Wesley, 2006.
Principles of Spin. Springer, 2007.
See also:
Gerard J. Holzmann. The Spin Model Checker, Addison-Wesley, 2004.
Spin
Spin was developed by Gerard J. Holzmann for verifying communications
protocols; it earned him the ACM Software System Award for 2001.
Concurrent programs are written in a simple C-like language called Promela,
and simulation and verification are carried out by Spin.
jSpin
jSpin is a development environment for Spin. Additionally,
jSpin filters the scenario data that is generated by Spin so that
it can be flexibly displayed.
SpinSpider
The semantics of concurrent programs are defined in terms of automata,
displayed graphically as state transition diagrams. SpinSpider is a tool that
uses data available from Spin to construct the state transition diagram, which
is then written in the dot language of Graphviz. The dot tool is called to
layout the graph.
VN
Nondeterminism appears in several contexts such as nondeterministic
finite automata (NDFA) and nondeterministic algorithms. VN is a
software tool that leverages the nondeterministic execution of a
Promela program by Spin and the graph layout capabilities of dot
to enable the student "experience" the nondeterminism of an NDFA. VN can
run in three modes: (1) random resolution of nondeterminism;
(2) interactive resolution of nondeterminism;
(3) verification mode to find an accepting computation if one exists.
DAJ
Distributed Algorithms in Java (DAJ) is designed for studying distributed
algorithms like the Byzantine Generals algorithm for consensus and
the Ricart-Agrawala algorithm for distributed mutual exclusion.
The data stored at each node is displayed and the student
can create scenarios interactively.