Mailing list for all users of the OCaml language and system.
 help / color / mirror / Atom feed
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/




  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