From: Pierre Weis <Pierre.Weis@inria.fr>
To: jmp@arsdigita.com (John Prevost)
Cc: caml-list@inria.fr
Subject: Re: Question on language design (keywords vs Pervasives)
Date: Mon, 21 Aug 2000 23:41:43 +0200 (MET DST) [thread overview]
Message-ID: <200008212141.XAA05715@pauillac.inria.fr> (raw)
In-Reply-To: <877l9apf9z.fsf@localhost.localdomain.> from John Prevost at "Aug 21, 100 03:47:52 pm"
> >>>>> "pw" == Pierre Weis <Pierre.Weis@inria.fr> writes:
>
> pw> You're right, there is no really good example that uses
> pw> redefinition of raise. That's why the advantage to be able to
> pw> redefine it may overcome the inconvenience of not being always
> pw> sure of its meaning.
>
> Actually, I just thought of one. :) If you redefine raise in a
> special way, you could have it report that it was raising exceptions,
> even if those exceptions are later caught. Might be good for
> analyzing your code.
Mm. I don't think it could be considered ``good for analyzing your
code'' if you compare to real tools such as the replay debugger
(dynamic analysis) or Francois Pessaux's exception analyzer (static
analysis).
> pw> You're right, we don't want to have zillions of keywords. On
> pw> the other hand, you also need to have some level of confidence
> pw> into the words you use in the language, otherwise you can
> pw> write horrors as the famous
>
> pw> if else then else else then
>
> pw> when then and else are not reserved.
>
> Right. But I don't think this is necessarily the case for raise. I
> just gave a good example above. There's also the possibility of
> somebody who could really care less about raising exceptions most of
> the time (e.g. me) but who has some code which performs an operation
> named "raise". In that context, having to fight the system to get
> around it is bad.
But reading code that uses ``raise'' all over the place to do many
things other than raising exceptions could also be extreamely
confusing...
> There's always a tension here. For example, when I'm writing PL
> implementations, the fact that "type" is a keyword is rather
> upsetting. But, I can deal--especially because I know that O'Caml
> doesn't have that many gratuitous keywords--everything's there for a
> reason.
>
> John.
Exactly, that's why I explained the reasons why we used to have raise
as a keyword, just to get a cleaner language: nothing gratuitous here,
the notion of exception raising is considered important and worth a
keyword to handle them (try) and a keyword to throw them (raise).
Pierre Weis
INRIA, Projet Cristal, Pierre.Weis@inria.fr, http://cristal.inria.fr/~weis/
next prev parent reply other threads:[~2000-08-21 21:42 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-08-18 2:07 Fermin Reig
2000-08-19 16:57 ` Frank Atanassow
2000-08-20 19:01 ` Pierre Weis
2000-08-20 19:55 ` John Prevost
2000-08-21 8:58 ` Pierre Weis
2000-08-21 19:47 ` John Prevost
2000-08-21 21:41 ` Pierre Weis [this message]
2000-08-21 16:44 ` John Max Skaller
2000-08-21 21:24 ` Pierre Weis
2000-08-22 0:38 ` Kwangkeun Yi
2000-08-22 2:25 ` John Max Skaller
2000-08-22 9:08 ` Pierre Weis
2000-08-22 8:31 ` Pierre Weis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200008212141.XAA05715@pauillac.inria.fr \
--to=pierre.weis@inria.fr \
--cc=caml-list@inria.fr \
--cc=jmp@arsdigita.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox