[comp.sys.transputer] transputer C compilers

J.Wexler@edinburgh.ac.uk (11/07/88)

I'm trying to classify Transputer C compilers according to whether they
handle concurrency by language extensions or by a library of special functions.
If you know about any particular C compiler, would you care to let me know
whether it
  (a) has a special type for channels?
  (b) does input by
      (1) evaluating the name of the channel as if it were a variable
      (2) by a function call
      (3) some other way
  (c) does output by
      (1) assigning to the name of the channel as if it were a variable
      (2) by a function call
      (3) some other way
  (d) has special constructs for PAR and ALT, or uses special functions?

Also I would like to reduce my list of compilers by eliminating any which
are merely relabellings of others.  I have got Pentasoft, Renishaw, "Penguin"
from Cornell, 3L, Parsec, Norcroft, Logical Systems and Definicon on the list.
Are there any duplicates here?  Are there any missing?

I think I've read seen all the relevant items in this news group over the last
six months or so - thanks to those who have contributed it - apologies if I've
missed your item - if you have already answered my questions, just give me the
reference and I'll find it in the back numbers.

    Many thanks,
    John Wexler

mmp@threel.UUCP (Marion Peat) (02/24/90)

As people seem to be talking about C compilers, here's some brief info about
3L Parallel C.

The compiler as we supply it runs on B004-type boards in PCs.  As it is itself
a transputer program, it's fairly easy to port it to other hosts and various
people have done this for Suns, VAXen etc (details on request).  The compiler's
output is a relocatable .BIN file which is cross-linkable with our other
compilers and with Inmos's occam compiler (but no guarantees for this last). 
This is the same binary format as is also produced by, for example, the Rowley
Modula-2 compiler and the Microway and Mark Ware assemblers. 

The tasks which are output by the linker can be combined by configuration tools
into an application file which can be booted into a network of transputers.
Two configurers are supplied with the compiler.  One supports arbitrary
networks; the other specialises in processor farms, and adds routing software
to the application.  A configurer which generates ROMable application files is
also available.

The compiler does not bring any new structures up into the language, but relies
on function calls to do transputer-specific things, such as channel I/O,
control of the timers and so on.  You can also fire up threads of execution to
run in parallel within a task, and perform something similar (tho' not
identical) to an occam ALT. 

The current version of the compiler is 2.1, and was released in Dec'89. This
includes a number of new things:

* support for our interactive debugger, Tbug.

* ANSI-style function prototypes and enum data type.

* the above-mentioned ALT functions.

* improvements in code size and speed.

* a multiplexer task allowing tasks which don't have a direct connection with
  the host to do I/O using ordinary C library functions.

Also much else. Further details from:

3L Ltd, Peel House, Ladywell, Livingston EH54 6AG, Scotland, UK.
Tel.: +44 506 415959   Fax: +44 506 415944  Net: support@ThreeL.UUCP