caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Daniel Bünzli" <daniel.buenzli@erratique.ch>
To: Yitzhak Mandelbaum <yitzhakm@cs.princeton.edu>
Cc: Caml-list List <caml-list@inria.fr>
Subject: Re: [Caml-list] Array.make exception and parser
Date: Tue, 4 Jan 2011 21:36:50 +0100	[thread overview]
Message-ID: <AANLkTi=V9rbUt+DX_FEn318Qx-=xGG+=vOFtz6C+s_Lp@mail.gmail.com> (raw)
In-Reply-To: <5D8B19DD-7BE3-4ECB-83E3-C20D5463CFDF@cs.princeton.edu>

> There are more modern LR parser generators which do a far better job and there's no theoretical reason they can't do just as well as LL tools.

I'm not talking about theory. Practically I have never seen an LR
parser throw me good error messages. Besides ocaml users
(understandably) do use ocamlyacc since it comes with the distribution
and is needed by the ocaml compiler.

> Also, you might want to keep in mind that this is largely a zero-sum game. If the developers spend more time on the parser, that's less time on the rest of the compiler or new research. So, saving developer time does, in fact, mean *more* user convenience -- just in a different part of the compiler.

I dont buy this. Loosing the time of your users by producing crappy
error messages is never a user convenience. And for a programming
language like ocaml this also has the bad side effect to make the
beginner's learning curve much steeper, which doesn't benefit ocaml
developers as a whole.

I think you overestimate the time it takes to code a recursive descent
parser. The needed infrastructure is nothing more than a programming
pattern. After that your code pretty much follows your (LL factored)
grammar.

Best,

Daniel


  reply	other threads:[~2011-01-04 20:36 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-01-04 13:41 Jean Krivine
2011-01-04 14:56 ` Daniel Bünzli
2011-01-04 14:57   ` Daniel Bünzli
2011-01-04 14:57 ` Török Edwin
2011-01-04 15:14   ` Jean Krivine
2011-01-04 15:31     ` Daniel Bünzli
2011-01-04 16:22       ` Yitzhak Mandelbaum
2011-01-04 16:42         ` Daniel Bünzli
2011-01-04 17:03           ` Yitzhak Mandelbaum
2011-01-04 17:04       ` Jean Krivine
2011-01-04 17:22         ` Daniel Bünzli
2011-01-04 15:38     ` bluestorm
2011-01-04 17:43       ` Jean Krivine
     [not found]       ` <1125074892.441923.1294163043602.JavaMail.root@zmbs2.inria.fr>
2011-01-04 17:53         ` Francois Pottier
     [not found]     ` <1259991756.440008.1294155536392.JavaMail.root@zmbs2.inria.fr>
2011-01-04 17:45       ` Francois Pottier
2011-01-04 19:30         ` Daniel Bünzli
2011-01-04 19:52           ` Yitzhak Mandelbaum
2011-01-04 20:36             ` Daniel Bünzli [this message]
     [not found]         ` <1263353434.442766.1294169448342.JavaMail.root@zmbs2.inria.fr>
2011-01-04 20:31           ` Francois Pottier
2011-01-04 20:40             ` Lukasz Stafiniak
2011-01-04 21:03               ` Török Edwin
2011-01-05  3:24                 ` Yitzhak Mandelbaum
2011-01-05 14:12             ` Boris Yakobowski
2011-01-05 21:12             ` Boris Yakobowski
2011-01-05 13:37 ` Xavier Leroy
2011-01-05 13:46   ` Jean Krivine

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='AANLkTi=V9rbUt+DX_FEn318Qx-=xGG+=vOFtz6C+s_Lp@mail.gmail.com' \
    --to=daniel.buenzli@erratique.ch \
    --cc=caml-list@inria.fr \
    --cc=yitzhakm@cs.princeton.edu \
    /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;
as well as URLs for NNTP newsgroup(s).