Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!philabs!cmcl2!harvard!seismo!rochester!bullwinkle!svax!rossiter From: rossiter@svax.cs.cornell.edu (David G. Rossiter) Newsgroups: net.lang Subject: Re: Escape structures (retitled) Message-ID: <270@svax.cs.cornell.edu> Date: Wed, 9-Apr-86 15:31:11 EST Article-I.D.: svax.270 Posted: Wed Apr 9 15:31:11 1986 Date-Received: Mon, 14-Apr-86 03:23:04 EST References: <1187@mmintl.UUCP> <6925@cca.UUCP> <7040@cca.UUCP> Reply-To: rossiter@svax.UUCP (David G. Rossiter) Organization: Cornell Univ. CS Dept, Ithaca NY Lines: 33 Richard Harter writes: > > Another thought is that the whole problem of exception >handling is a mess. C's setjmp/longjmp mechanism is no more than >a "here is a low level primitive for the job -- you figure out >how to do it yourself" approach. The PL/I ON condition handlers >are only a small cut above C. It seems to me that the whole area >of error handling is in need of major theoretical analysis. > > Richard Harter, SMDS Inc. There is an *excellent* theoretical and practical analysis of error handling in a recent PhD thesis by Andrew P. Black, from Balliol College of Oxford University, UK. The title is "Exception Handling: the case against", submitted January 1982. Black is now at Univ. of Washington, I believe. I have a copy of the thesis which I obtained from the chairman of my PhD committee; I'm not sure where it is publically available. One could presumably email to Black. Anyway, he examines in detail exception handling mechanisms in producation languages like PL/I, Algol W, Algol 68, Mesa, and Ada, as well as in academic (but implemented) languages like CLU. He concludes that the way to think of so-called "exceptions" is as named constituents of a discriminated union data type (sort of like Pascal variant records, but type secure). It's very clean semantically and seems easy to program in and write compilers for. If there's more interest I can post the abstract and summary. David Rossiter / CS Dep't / Cornell University / Ithaca / NY / 14850 / USA {uw-beaver,ihnp4,decvax,vax135}!cornell!rossiter (UUCP) rossiter@gvax.cs.cornell.edu (ARPAnet) ; rossiter@CRNLCS (BITNET)