Related articles |
---|
[12 earlier articles] |
Re: Ada GC (was about Java VM) dewar@cs.nyu.edu (1996-02-01) |
Re: Ada GC (was about Java VM) darius@phidani.be (Darius Blasband) (1996-02-01) |
Re: Ada GC (was about Java VM) dave@occl-cam.demon.co.uk (Dave Lloyd) (1996-02-02) |
Re: Ada GC (was about Java VM) mg@asp.camb.inmet.com (1996-02-02) |
Re: Ada GC (was about Java VM) boehm@parc.xerox.com (1996-02-02) |
Re: Ada GC (was about Java VM) root@linux_pc.org (1996-02-03) |
Re: Ada GC (was about Java VM) tmb@best.com (1996-02-04) |
Re: Ada GC (was about Java VM) bobduff@world.std.com (1996-02-04) |
Re: Ada GC (was about Java VM) truesoft!sw@uunet.uu.net (1996-02-04) |
Re: Ada GC (was about Java VM) boehm@parc.xerox.com (1996-02-09) |
Re: Ada GC (was about Java VM) eachus@spectre.mitre.org (1996-02-09) |
Re: Ada GC (was about Java VM) kdm@Rational.COM (1996-02-13) |
From: | tmb@best.com |
Newsgroups: | comp.compilers,comp.lang.ada |
Date: | 4 Feb 1996 01:04:29 -0500 |
Organization: | home |
References: | 96-01-037 96-01-137 96-02-032 |
Keywords: | realtime, GC |
hbaker@netcom.com (Henry Baker) writes:
>Let's see, RT GC has now been around for almost 20 years (Wadler's
>CACM paper was published in Sept. 1976 and my MIT AI working paper was
>published in 1977 and received wide distribution). There have been
root@linux_pc.org (root) writes:
| It is real tough to sell runtime GC in safety-critical app's, period!
"Safety critical" is very different from "real time". There are lots
of safety critical applications that aren't real time, and there are
lots of real time applications that aren't safety critical.
| The perception amongst the customers (& I agree with them) is that if
| you can't model the system well enough to build it without!!! GC, then
| you don't understand the system well enough to build it at all!
There are numerous applications that you can't build without GC, in
the sense that their storage management requires a periodic
reachability check. If it isn't built into the language, you end up
doing it by hand, and I suspect that most programmers don't have a
clue how to write that kind of code in a real-time setting, and even
if they do, doing that manually is very error prone.
| You can take all kinds of shortcuts if you're building a spreadsheet
| program or a network-server or some such where if the system crashes
| once in awhile, you just reboot or whatever and tell the customers
| "tough!" ... but that approach literally does not "fly" when airplane
| control-movements & weapon-releases and such hang in the balance.
Garbage collection _helps_ you avoid system crashes. I don't think
that has been the concern of the people who are against GC in real
time system. They don't worry that GC makes systems crash, they worry
that GC will cause them to fail to meet real time deadlines.
| I program a little in c & c++, and it's real nice to be able to have
| the RTS [run time system] manage memory ... but if ever there came along a
| safety-critical customer who allowed an off-the-shelf RTS to manage
| memory, I'd "launch" off to another job in my reliable little GC-free
| Ada-powered jet!
The C/C++ runtime gives you pretty much the same storage management
options that the Ada runtime system does. In any case, the Ada
community does not represent real time proramming or safety critical
programming as a whole; Ada probably attracts the more conservative
element, and even then only in particular communities. Most people
who do real-time programming probably do it in assembly, Fortran, and
C/C++. Some more progressive groups have moved on to real time
languages with garbage collection, and/or languages whose definitions
and implementations have been formally verified (sadly, such tools
aren't widely available yet).
As for me, I have done real time programming for scientific
experiments, usually in C. I have generally found that the
environment (OS, processor) and language implementation (runtime, code
generator) are much more important than the language itself in
ensuring reliable real time performance.
Thomas.
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.