[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Too good to be true: Re: Asynchronous Exceptions in Java

   From: <Bill.Foote@xxxxxxxxxxx>
>   ... IMHO the next one that's needed is a way of
>   really understanding and modeling concurrency. 

I think my interests are some distance from the mainstream of this discussion
group, but I thought it was time to throw a pebble in the pond.

IMHO concurrency is *not enough* when real-time, or high-performane or
genuinely concurrent (I mean here parallel hardware) systems are involved. The
missing element is time. You need a model, a language, a compiler and an
execution environment which support the expression and manipulation of temporal
constraints in order to build such systems.

I am particularly concerned with high speed, highly parallel, interactive,
embedded systems and have developed the Handel-C system to support such
systems. The Handel-C language is a subset of C, extended with CSP parallelism
and communication primitives, but crucially it also has a (ludicrously simple)
timing semantics. With this compiler and an FPGA chip as the execution
environment, a programmer can routinely build, for instance, a C/CSP style
program that runs fast enough to generate a video signal directly from its
output primitives in which multiple parallel processes (are these objects
perhaps?) are (each) invoked 25 million times per second.

Our timing model states that an assignment statement takes one clock cycle to
execute. No time at all is taken by any of the programming language cconstructs
and true concurrency is used in the implementation which means that it is
straightforward for a programmer to control the cycle-by-cycle behaviour of
large parallel systems, which is what we need for our target applications. 

My guess is that this timing model is too tight for most of the systems that
you are interested in, but I think the basic observation is just as true for
you as it is for me: without the ability to express, reason about and control
the temporal behaviour of programs, you simply cannot expect to build real-time
systems routinely.

More information is available at:

Thanks for your indulgence,

Ian Page, Reader in Computing Science,  
Oxford University Computing Lab, Parks Road, Oxford OX1 3QD
Tel: (+44/0) 1865 273853 direct, 273840 sec, 273839 fax.
------------ http://www.comlab.ox.ac.uk/~page -------------