[comp.sys.amiga] Multi-Tasking Languages?

daveh@cbmvax.UUCP (Dave Haynie) (10/16/87)

in article <1858@crash.CTS.COM>, haitex@pnet01.CTS.COM (Wade Bickel) says:

>         As far as the Transputer goes, I think the Transputer language,
>      OCCAM, would be a natural for the amiga.  It supports multi-tasking
>      at the language level, and looks to be fairly complete.

That may or may not be good, depending upon the language.  Every multi-tasking
system has some inherent task model, and (hopefully) an associated message
model.  Occam uses the Transputer model, of course, since the language was
designed to directly support the Transputer hardware.  Transputers basically
support message passing and prioritized tasks in hardware.  The problem here
is the Occam tie to the Transputer hardware.  For example, a message port
would necessarily look like a Transputer link.  Which is great if you've got
them in hardware and want all your code to function independently of physical
vs. soft links.  But not so great if you're all soft links, and in addition
you've got OS support (Exec) with better links available.  You could certainly
build an Occam compiler for the Amiga, and model Transputer links with Amiga
messages and signals, and then hide all that below the compiler so you think
you're on a Transputer, but it would be inefficient.  Similarly, you could
use the Transputer task model in Occam, building it on top of the Amiga task
model.  But Transputers only support two levels of priority, so again you're
missing features.

This certainly isn't a problem specific to Occam, though it's perhaps a bit
worse in Occam since the Occam task/link models were designed to support 
specific hardware, and being hardware, it's not necessarily as robust as a
hardware independent model.  And you'd run into some of the same problems
using the Ada Task model, in that it probably isn't a perfect fit with the
Amiga model either.  What you get with Exec, although non-standard, does
fit the philosophy of both C and Modula2 when it comes to things like Tasks,
or I/O for that matter.  The philosopy being that the language only gives
you the means to compile very basic and low level code, and your libraries
give you the means to print a character on screen, or handle interrupts, 
or task in the mode of your host machine, or whatever.  
> 
>                                         Wade.

> UUCP: {cbosgd, hplabs!hp-sdd, sdcsvax, nosc}!crash!pnet01!haitex
> ARPA: crash!pnet01!haitex@nosc.mil
> INET: haitex@pnet01.CTS.COM
-- 
Dave Haynie     Commodore-Amiga    Usenet: {ihnp4|caip|rutgers}!cbmvax!daveh
   "The B2000 Guy"              PLINK : D-DAVE H             BIX   : hazy
    "Computers are what happen when you give up sleeping" - Iggy the Cat