Newsgroups: comp.realtime
Path: utzoo!utgpu!cunews!bertrand!greg
From: greg@organia.sce.carleton.ca (Greg Franks)
Subject: Re: RSX -- one of the best?
In-Reply-To: klaus@captain-crunch.ai.mit.edu's message of 4 Jun 91 21: 22:59 GMT
Message-ID: <GREG.91Jun5150023@organia.sce.carleton.ca>
Sender: news@cunews.carleton.ca
Organization: /home/organia/greg/.organization
References: <22847@shlump.lkg.dec.com> <41618@genrad.UUCP>
	<GREG.91May24100015@organia.sce.carleton.ca> <16302@life.ai.mit.edu>
Distribution: comp.realtime
Date: Wed, 5 Jun 1991 20:00:23 GMT

In article <16302@life.ai.mit.edu> klaus@captain-crunch.ai.mit.edu (Klaus B. Biggers) writes:

   In article <GREG.91May24100015@organia.sce.carleton.ca> greg@organia.sce.carleton.ca (Greg Franks) writes:
   >
   >The *lack* of a C compiler is often considered an advantage in the
   >context of larger real-time systems (i.e., those with lots of people
   >working on the same 8-megabyte program).  Type checking -- what't
   >that?  :-).
   >--

   I think they call it ANSI C and prototyped functions... or there's lint
   which will do your type checking. C has some really nice advantages..

C still doesn't do enumerations well.  Arguments of values 1..10 are
still stuffed in integers or characters or whatever in C.  The
compilers I used for real time switching systems put range checks in
strategic locations for enumerated types (Dialed digit '60' is out of
range 0-9: core dump).  We never turned the range checking off,
despite the hit on performance, because reliability was more important
than speed.  We also found that the performance hit was not all that
bad anyway.  Next, of course, is the issue of "pointer surprise".  We
had enough troubles with Pascal-style pointers.

Ansi C has not been in existance for all that long.  Regrettably, lint
is not used.  (Try running lint on some AT&T System V.3 source code
sometime.  :-().  If it isn't built into the compiler, it will not be
used. 

   portability-- what't that?
   data abstraction-- what't that?

   what did you use on RSX11?? fortran?

I forgot about the RSX connection, it was a long time ago.  To answer
your question, Macro-11.  Portability, who cares.  Data abstraction,
what's that? :-)

Portability is often not an issue with real time systems because it is
expensive to change the hardware.  And if you change the hardware,
almost everything else changes too because much of the code deals with
all of those fancy devices you have hooked up to the system.  The
RSX-system was designed to run for 30 years after a 10 year
development period.  The hardware chosen for the project was not the
newest or sexiest, but one that would probably still be available in
some form or another for the entire life span of the plant.

Don't get me wrong.  I do like C.  I use it all the time, but only on
software with small teams (< 5 people).  But I get scared when I
consider the consequences of large design teams (> 50 developers)
using it as *the* development language, especially on hardware with
minimal or non-existant memory management support.  Fortran is no
better.  (I like Concurrent Euclid myself -- real time programming
made easy!  Who knows, I might even like Ada.)


--
Greg Franks, (613) 788-2800 x5726         | "The reason that God was able to    
Systems Engineering, Carleton University, | create the world in seven days is   
Ottawa, Ontario, Canada  K1S 5B6.         | that he didn't have to worry about 
greg@sce.carleton.ca  ...!cunews!sce!greg | the installed base" -- Enzo Torresi  
