Newsgroups: comp.sys.transputer
From: md@pact.srf.ac.uk (Mark Debbage)
Subject: Re: OCCAM3 (was :- Revision of occam 2 Referenc
Organization: University of Bristol, England
Date: Wed, 10 Aug 1994 12:38:50 GMT
Message-ID: <CuBKGr.9u0@info.bris.ac.uk>

Hi Bryan!

Bryan Carpenter (dbc@ecs.soton.ac.uk) wrote:

: You should also dissallow:

: integer division, because you might accidentally divide by zero;

: any other integer or floating point arithmetic which might lead to an
: overflow (ie, +, -, *, etc);

: arrays, because you might introduce a subscript-out-of-bounds error;

These are different from deadlock and livelock since these are error
conditions which can be detected. They can stop the process or stop the
program in a controlled manner. Partial deadlock of a program cannot be 
easily detected. Livelock is worse as it just consumes your computing 
resources with no other externally visible effect.

: variables, because you might read an uninitialised value;

Hmm, that's harder to handle though often the compiler can detect it.
Variables that are not declared within a function also add further
complexity. I guess occam makes a few concessions to real world
programming after all.

: recursion, because it's too useful.

Yes, it's far too useful and a whole new story.

: :-)

: Bryan

Mark.

PS. Is their a Southampton contigent going to Cropredy this weekend?
    See you (or Ian) there maybe?

