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.
next prev 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