Actions Home Page

Action orientation is a computation model, where no processes are needed. Actually, we claim that processes are harmful - most of the problems faced in concurrent programming exist because of processes. The reason is the fact that a process is an abstraction of a single processor running a single program in its exclusive memory.

Actions are atomic units of execution that are enabled if their guard (a Boolean expression) is true. Any disjoint set of enabled actions can be selected in execution. Disjoint here means that the actions do not access the same objects.

In addition to action, the model has objects. The state of the computation is solely expressed by the contents of objects. This means thet there are no internal state in actions.

The goal of this reseach is to build an action-oriented processor, where several cores execute actions, and hardware-accelerated schedule takes care of the scheduling of the actions. On the link below is a package containing a software simulator of the action-oriented processor. The software is for reseach purpose only, and offer as it is without any warranty. The package include also instructions how to use the software. It is written in C, and requires POSIX threads. It has been run on Windows and Linux environments.

More about actions: actions.pdf
Load tar-file

A version to be run on Raspberry PI 2 is under development (one core acting as a scheduler, three cores executing actions).