From: djw@arrc.salf.ac.uk (David Wheable)
Newsgroups: comp.lang.eiffel
Subject: Eiffel and Transputers (was: RT GC Should ......)
Date: 2 Oct 92 08:54:08 GMT
Reply-To: djw@arrc.salf.ac.uk (David Wheable)
Organization: Advanced Robotics Research Centre, Salford, UK.

>  
>  For example at Advanced Robotics Research Limited in U.K. they
>  are building this mobile Robot , weighing 1/3 of a ton.

>  The response time has to be of the order of 20 ms.
>  
>  Clearly it is safety critical.

>  So they are not using the general run of the mill hardware
>  or even OS.

>  They are using  Transputers and fast data paths ( 200 MB/S).

>  The application programming is being done in Eiffel.

I'm sorry I have not replied to this earlier but I've been on holiday.

This appears to be a case of "Chinese Whispers", and so I will try to
set the record straight.

We are developing systems for a mobile robot (a Cybermotion Navmaster) as
part of a research programme funded by the DTI and UK industry. The work
for the mobile was divided into two projects; the first to improve the 
capabilities of the low level system by improving dead reckoning, and adding
collision avoidance and simple local path planning. The second, following on
from the first, to add task and motion planning allowing the robot to be
commanded at a much higher level.

For the first project we developed the system using Yourdon structured
analysis and C. The code run on 3 Heuikon 680x0 processors running VxWorks.

For the second project (which is obviously at a much higher level) we
decided that we wanted a more powerful method and language to improve
on our current software engineering practices. After a reasonably extensive
evaluation (including going on the Object Oriented Software Construction
course run be Bertrand Meyer) we came down on the side of Eiffel for the
language. As we were already using Cadre's Teamwork, and this supports
Shlaer/Mellor OO method, we decided to adopt this method.

Once again the code would eventially run on real-time processor cards (in
this case 6 Heurikon i960s), however, there are no real time constraints
and therefore we would not have the problems with the non-realtime aspects
of Eiffel.

I say "would" because we are have currently have only realy started the
analysis. We are looking at using both the methodolgy and language on
other projects.

John Reekie asks ....

> I'm curious about how exactly Eiffel fits into the transputer
> environment. Since Eiffel does not (yet) support concurrency
> directly in the language, is multi-tasking achieved by using
> explicit process creation and communications calls to the underlying
> hardware? Is there a Transputer-specific Eiffel, or is the output
> from a UNIX or PC implementation compiled on a Transputer
> C compiler?

Although we are not using transputers, the questions are still valid for
the environment in which we intend to use Eiffel. 

First of all the issue of concurrency, we would have to produce an OS support
library for VxWorks, but then we would have to deal with the concurrency
ourselves in much the same way as we currently do with C. I personally think
that the concurrency issue is taken to far, it would be a wonderful tool
and I would definately use it, however, currently there are few languages
that support a concurrency and so most of the design and implementation
is done by hand. There is no reason why this can't be done in Eiffel.

To compile the code for VxWorks we simply use Eiffel on the Sun and then
cross compile the C code using gcc to either 680x0 or i960.

Regards,

David Wheable,
National Advanced Robotics Research Centre
Salford,
UK
Newsgroups: comp.lang.eiffel