From: "Pat Rogers" <progers@classwide.com>
Subject: Re: Ada and embedded applications
Date: Thu, 14 Jun 2001 11:27:43 -0500
Date: 2001-06-14T11:27:43-05:00 [thread overview]
Message-ID: <cC5W6.13$n8.10114@nnrp2.sbc.net> (raw)
In-Reply-To: wccvgm6bk7b.fsf@world.std.com
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1287 bytes --]
"Robert A Duff" <bobduff@world.std.com> wrote in message
news:wccvgm6bk7b.fsf@world.std.com...
> John English <je@brighton.ac.uk> writes:
>
> > Hmm, the "obvious" way to handle exceptions involves one extra word
> > in the stack frame (a pointer to the start of the exception handling
> > code) which costs (typically) 4 bytes per handled block and 1 extra
> > word to pop on exit, which may or may not cost nothing, but is certainly
> > pretty cheap.
>
> But the more desirable implementation is to save the small cost of
> setting that pointer, and spend perhaps 10,000 instructions searching a
> table of code addresses when an exception is raised. If exceptions
> being raised are rare, but blocks protected by exception handlers are
> more common, that's a win.
>
> > Does anyone have any references to alternative ways of implementing
> > exception handling?
>
> One variant of the code-table technique was decribed in the Ada 83
> rationale. The implementation you described above is essentially
> equivalent to the VAX/VMS standard method. I don't have other
> references at hand, but surely a lot of this stuff is common lore, and
> documented somewhere.
T. P. Baker and G. A. Riccardi, �Implementing Ada Exceptions,� IEEE
Software, vol. 3, no. 5, pp. 42-51, 1986.
next prev parent reply other threads:[~2001-06-14 16:27 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-06-04 18:59 Ada and embedded applications Chris Campbell
2001-06-04 19:34 ` Marin David Condic
2001-06-04 21:12 ` Chris Campbell
2001-06-04 21:33 ` Matthew Woodcraft
2001-06-04 21:33 ` Ted Dennison
2001-06-04 22:33 ` Chris Campbell
2001-06-05 7:55 ` Chris Campbell
2001-06-05 15:03 ` Ted Dennison
2001-06-04 22:09 ` Marin David Condic
2001-06-05 2:18 ` tmoran
2001-06-05 13:38 ` Marin David Condic
2001-06-06 4:09 ` Jeffrey Carter
2001-06-05 18:23 ` Randy Brukardt
2001-06-05 18:25 ` Randy Brukardt
2001-06-05 20:18 ` Marin David Condic
2001-06-05 7:45 ` Martin Dowie
2001-06-05 13:49 ` Marin David Condic
2001-06-05 20:47 ` Martin Dowie
2001-06-05 10:15 ` Rod Chapman
2001-06-04 21:02 ` Larry Kilgallen
2001-06-04 20:06 ` Ehud Lamm
2001-06-04 21:18 ` Ted Dennison
2001-06-05 12:35 ` Marc A. Criley
2001-06-05 19:00 ` Pascal Obry
2001-06-04 21:15 ` Robert A Duff
2001-06-04 21:30 ` Chris Campbell
2001-06-05 2:06 ` Jeffrey Carter
2001-06-05 14:04 ` Marin David Condic
2001-06-05 7:50 ` Martin Dowie
2001-06-05 14:24 ` John English
2001-06-08 23:55 ` Robert A Duff
2001-06-09 12:47 ` Ehud Lamm
2001-06-14 16:27 ` Pat Rogers [this message]
2001-06-06 2:31 ` Ken Garlington
2001-06-06 11:14 ` Chris Campbell
2001-06-06 15:47 ` Marin David Condic
2001-06-06 17:57 ` Jerry van Dijk
2001-06-06 22:32 ` Chris Campbell
2001-06-06 22:37 ` Chris Campbell
2001-06-06 15:42 ` Marin David Condic
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox