Related articles |
---|
Implementation and Optimization of exceptions ( static analysis possi sdm7g@elvis.med.virginia.edu (Steven D. Majewski) (1995-07-21) |
Re: Implementation and Optimization of exceptions ( static analysis p bobduff@world.std.com (1995-07-26) |
Re: Implementation and Optimization of exceptions ( static analysis p macrakis@osf.org (1995-07-28) |
Re: Implementation and Optimization of exceptions ( static analysis p chase@centerline.com (1995-07-28) |
Re: Implementation and Optimization of exceptions ( static analysis p pardo@cs.washington.edu (1995-08-03) |
Re: Implementation and Optimization of exceptions ( static analysis p mfinney@inmind.com (1995-08-07) |
Re: Implementation and Optimization of exceptions ( static analysis p bill@amber.ssd.hcsc.com (1995-08-13) |
Newsgroups: | comp.compilers |
From: | mfinney@inmind.com |
Keywords: | errors, GC |
Organization: | In Mind, Inc. |
References: | 95-07-142 95-08-051 |
Date: | Mon, 7 Aug 1995 23:26:42 GMT |
I've been considering implementing a scheme in my next compiler
(probably a couple of years off) in which the information needed for
exception handling and for garbage collection is combined. Namely,
you can regard each block of code that defines data element(s) or
which starts an exception as an object with a single implicit method.
That approach can be extended to the definition of functions with the
paramters and local objects as the data elements. It can be very
desirable that a garbage collector be able to scan the stack of each
thread in a rigourous manner. Much of the same information is needed
by the exception handler in unwinding the stack. It seems that this
information could be profitably combined and therefore the overhead
in exception handling could be combined with the overhead in garbage
collecting.
This approach, perhaps with a few restrictions (such as prohibiting
the conversion of a pointer to an intergral type) might make
non-conservative garbage collectors reasonable for languages such as
C++.
Michael Lee Finney
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.