Non sequential programming

Matej Kosik kosik at
Tue May 31 11:16:52 UTC 2005

Andreas Raab wrote:
>> ( is down) 
> Try instead (they're having a server upgrade)
> Just for the records: The above presentation is about the E language 
> ( and has nothing to do with Erlang.
>> By V2 I want to show that, it is possible to do parallel programming
>> - without the threat of interference
>> - without the threat of deadlocks.
>> - conveniently (as in Smalltalk).
>> - consistently (as in Smalltalk).
> E is a good place to look at if only for comparison (since your paper 
> quotes Joule I'm assuming you are aware of E).

E is valuable (also) for its ideas in the area of security. 

When I started to implement V2 I was not aware of these problems. In the last autumn I installed E and revealed (thanks to E) what it really means security in distributed systems. V2 is a transient and throw away prototype. The next prototype (V3) shall heed these problems.

V2 is valuable for its capability to find parallelism also there, where noone would normally sought for it. This

is one (not very interesting becaouse it is so obvious) example. There are also other (also boring because they are so obvious) examples scattered around.

When I these days tried to show the power of V2 on more complicated examples, I have revealed that the strategy employed to break the cycles which appear in virtual machine state which under normal conditions should form partial order of activations, is not general enogh. I knew that, but I have finally come to those situations which reveal that fact. This is not a lucky situation because right now I cannot show you the power of V2 when operating on matrices or other mutable objects (such as Transcript) shared and used between multiple parallel "activities". The non-perfectness of the strategy prevents me to do so. This is on the other hand a luck because I have to solve the problems mentioned in the esug2005 article sooner than I expected.

The problem is, that right now I cannot view conveniently the state of the virtual machine. When I previously had to draw all the states of the virtual machine through which it transfered from the initial state to the final state. If the total number of steps (and related states) was 12, this took me more than one hour to draw the series of virtual machine state diagrams. That was passable for short computation which did not last more then 12 steps. This approach is however completely useless when a computation lasts, say, 100 steps. I need a functionality which draws those steps automatically. That is another unfortunate requirement because this again hinders me because it has no theoretical worth. But, it will is worthwhile to have it when I need to explain the effects of the V2 language on the V2 virtual machine states. I will not need to create something like this

(follow the links at the bottom of the page) manually. I will be able to generate such a "movie" on the fly. Also for less trivial computations. I expect that implementing such a "movie generator" will take one month. Then I will be able to conveniently reason about the proper strategy for breaking the cycles. Answering that question how
* to detect them effectively
* to break them without introducing interference
are crucial. Finding out the answer will hopefully not take too long.

Matej Kosik, icq://300133844,

More information about the Squeak-dev mailing list