|Thesis now available "Methods for Handling Exceptions in Object O. Pro email@example.com (MMC) (1995-10-22)|
|Re: Thesis now available "Methods for Handling Exceptions in Object O. firstname.lastname@example.org (1995-10-29)|
|Keywords:||OOP, report, available|
|Date:||Sun, 22 Oct 1995 23:47:06 GMT|
My M.Sc. Thesis "Methods for Handling of Exceptions in Object-oriented
Programming Languages" is now available for download (see below).
I began writing the thesis in early 1994 because I noticed that C++ compilers
for the PC platform which supported exceptions all imposed a considerable
time and space overhead during normal program flow. Determined to examine
whether this overhead was truly necessary I consequently began my
study into exception handling (EH) in object-oriented programming
In April 1994 I posted a message asking for references regarding the
subject of EH and its implementation. The response was positively
overwhelming - and very helpful indeed! Thanks!
In the message posted I stated that the results of my study into
this subject would be posted when finished. I finished late
January this year and have since then, right until now, been very busy
doing non-related work. However now, as promised, but a bit
late (sorry), the results is finally available.- Hence this message.
The thesis presents a number of methods for handling of exceptions
in modern object-oriented programming languages (OOPL's), focusing
on efficient approaches. Handling of exceptions which, as considered
in the thesis, is synchronous, termination based, multi level and
general parameterized.- In the tradition of C++ and Modula-3.
As a basic requirement the thesis demands of the implementation that:
* The normal run-time overhead is minimal!
* Space overhead is small.
* It's possible to port.
* It supports mixed-language programming.
The thesis points out that methods for exception handling (EH) can be
classified according to the approach used for transfer of control and
object cleanup. Two alternative standard approaches to EH are discussed
which are called the dynamic registration approach (in references
sometimes called "portable EH"), and the static table approach (by one
reference called "efficient EH").
The thesis shows that neither of these standard approaches to EH meet
all the requirements for handling of exceptions specified. The problem
being the large ever-present runtime overhead for the registration
approach and the missing support for mixed-language programming for
the static table approach (except if the target-architecture has
strictly defined call-frames such as the SPARC RISC).
For minimal runtime overhead combined with mixed-language support
the thesis proposes a new unified method based on a modified static
table approach with support of mixed-language programming through
internal registration of calls to external functions which may indirectly
raise an exception. To this a language syntax enabling the programmer
to state for external functions called, whether the function might
indirectly throw an exception, is used.
The size overhead must be considered for any efficient implementation
of EH. Noticeably, the thesis shows how so called "code inspection
techniques" can be used to minimise the potentially very large amount
of storage space used for the static tables!
The design of a compiler for an OOPL called MEHL (a mix of interesting
EH related constructs from C++ and Modula-3) featuring EH with the
proposed unified method, targeted for Intel 80x286, is presented in
the thesis. - A compiler which handles exceptions AND, due to the new
unified method + unique code inspection techniques, features:
* Absolutely no time overhead for the normal program flow (except
when external functions which may indirectly throw exceptions are
called - which should happen very, very seldom).
* Very little space overhead (the static tables used are small in
comparison with any other implemation of EH I know of).
On the downside the compiler's performance is poor when exceptions
are actually thrown (which should be considered an abnormal situation
if exceptions are used as they should - with error situations!). Also
the implementation is complex and rather target-depended and thus
time-consuming to port!
NOTES AND DOWNLOAD INSTRUCTIONS:
The document file "EH.PDF" can be retrieved using World Wide Web from
"www.cybercity.dk/users/ccc2550/archive.html". The document is in
Adobe Acrobat Format (PDF) so you will need the Adobe Acrobat
Reader program to read it. The Adobe Acrobat Reader 2.1 is available
FREE for PC's, MAC's & UNIX-platforms at www.adobe.com.
The PDF document supports all the Adobe Acrobat Reader features
including, bookmarks, thumbnails, hotsports (links) and notes.
If you chose to download the document, please read the note on top
of page 1.
Although not having to do with compiler construction at the time (alas,
compiler-construction related jobs are very rare in Denmark), I am still
very interested in the subject of EH. - Thus, please feel free to email
me in case of problems/clarifications/comments/etc (My current internet
provider does not provide news-access at the moment, so don't expect me
to be present actively at comp.compilers for the time being).
Morten M. Christensen
Odense - Denmark
Return to the
Search the comp.compilers archives again.