comp.lang.ada
 help / color / mirror / Atom feed
From: rav@goanna.cs.rmit.edu.au (Robin Vowels)
Subject: Re: Exception Handling
Date: 1996/09/23
Date: 1996-09-23T00:00:00+00:00	[thread overview]
Message-ID: <525ku9$j61@goanna.cs.rmit.edu.au> (raw)
In-Reply-To: 96091317002428@psavax.pwfl.com


	"Marin David Condic, 407.796.8997, M/S 731-93" <condicma@PWFL.COM> writes:

	>Felix Kasza <felixk@MAILBAG.SHD.DE> writes:
	>>I don't know -- but I do know that IBM's /360 architecture uses a
	>>mechanism for OS calls which looks very much like a trap.  PDPs used
	>>similar features to handle illegal memory references.  In the late 60s
	>>or early 70s, I saw an APL interpreter for the PDP that expressly made
	>>use of this although it didn't export the functionality to the
	>>programmer (APL has no concept of an exception).
	>>
	>    Well, if we include "hardware" in the picture, you'd have to go
	>    back to the very first invention of an interrupt. Assemblers, of
	>    course, let you write an interrupt handler and in that sense had
	>    "exception processing."

	>    When did it get incorporated in computer languages? That requires
	>    an answer to the question: "What exactly do you mean by 'exception
	>    processing'?" "Asynchronous transfer of control when an error is
	>    detected by the hardware or the programmer" would allow any
	>    language which gave you the ability to write an interrupt service
	>    routine and/or write a software triggered interrupt to qualify.
	>    That's most of them - except since this was always hardware
	>    dependent, it was probably not done as part of any "language
	>    standard" (more likely a vendor supplied utility).

	>    If we mean "programmer triggered exceptions" then we'd have to
	>    look to all the languages which provided some kind of syntax
	>    similar to: "ON ERROR THEN GOTO XXXX" - which would include quite
	>    a few very antiquated languages.

	>    If we mean "language triggered exceptions" (runtime checks
	>    inserted by the language translator and unseen by the programmer
	>    which may or may not include various hardware interrupts or
	>    exceptions which transfer control to a programmer specified chunk
	>    of code) then I *think* that Ada83 pretty much invented it.

Certainly one of the earliest -- if not *the* earliest -- was
PL/I, which in 1966 introduced exception handling for a wide
range of machine and programmer-defined exceptions.

OTOMH, they included 
   fixed-point overflow, floating-point overflow, floating-point
underflow, subscriptrange (for subscript errors), stringrange
(for substring errors), division by zero, size, endpage (for
handling end-of-page exceptions), endfile (for end-of-file),
data conversion errors, various file exceptions,
as well as the programmer-defined exceptions.  There was also
a facility for handling errors of a general nature (ERROR),
and even one for handling the end-of-job (FINISH).

   For data conversion errors, built-in functions enabled
access to the erroneous data fields, and corresponding
pseudo variables enabled the erroneous data to be
replaced with legitimate data, and the conversion re-attempted
if reqquired.

   These facilities are still in PL/I, and -- of course --
have been enhanced over the years.

	>    I am
	>    reasonably fluent in Fortran, Cobol, Pascal, C, and Ada and I have
	>    a passing knowlege of a number of more obscure languages like
	>    Lisp, Snobol, RPG, etc., and Ada was the first language I've ever
	>    encountered which included something in its syntax which meets
	>    this definition.




  parent reply	other threads:[~1996-09-23  0:00 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1996-09-13  0:00 Exception Handling Marin David Condic, 407.796.8997, M/S 731-93
1996-09-15  0:00 ` Larry Kilgallen
1996-09-23  0:00 ` Robin Vowels [this message]
  -- strict thread matches above, loose matches on Subject: below --
2000-05-29  0:00 NANCY HEHIR
2000-05-29  0:00 ` Preben Randhol
2000-05-30  0:00 ` Robert Dewar
2000-05-30  0:00 ` Antonio Dur�n Dom�nguez
2000-05-30  0:00 ` Jeffrey D. Cherry
2000-05-30  0:00   ` Gautier
2000-06-05  0:00     ` Robert Dewar
2000-06-01  0:00   ` Preben Randhol
2000-06-01  0:00     ` Jeff Carter
2000-06-02  0:00       ` Preben Randhol
2000-06-02  0:00       ` Jeffrey D. Cherry
2000-06-01  0:00     ` Ehud Lamm
2000-06-01  0:00     ` Jeffrey D. Cherry
2000-06-02  0:00       ` David C. Hoos, Sr.
2000-06-02  0:00         ` Jeffrey D. Cherry
2000-06-01  0:00     ` Preben Randhol
1996-09-28  0:00 Robert Dewar
1996-09-17  0:00 Marin David Condic, 407.796.8997, M/S 731-93
1996-09-19  0:00 ` Larry Kilgallen
1996-09-17  0:00 John Goodenough
1996-09-12  0:00 Robbie Gates
1996-09-12  0:00 ` Bryce
1996-09-12  0:00   ` Larry Kilgallen
1996-09-13  0:00     ` Robbie Gates
1996-09-14  0:00       ` Paul A. Houle
1996-09-18  0:00         ` Rick Decker
1996-09-12  0:00 ` Patrick Doyle
1996-09-12  0:00   ` Rick Decker
1996-09-13  0:00     ` Larry Kilgallen
1996-09-13  0:00 ` Felix Kasza
1996-09-13  0:00   ` David B. Shapcott [C]
1996-09-18  0:00     ` Bart Termorshuizen
1996-09-16  0:00 ` Norman H. Cohen
1996-09-23  0:00   ` Robin Vowels
1996-09-24  0:00     ` Bob Halpern
1996-10-02  0:00       ` Fritz Schneider
1996-10-07  0:00         ` Robin Vowels
1996-10-09  0:00         ` shmuel
1996-10-09  0:00           ` Bob Halpern
1996-09-26  0:00     ` Thiago
1986-05-13 22:57 exception handling MIXSIM
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox