From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by walapai.inria.fr (8.13.6/8.13.6) with ESMTP id p04Kau1I030255 for ; Tue, 4 Jan 2011 21:36:56 +0100 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApQAAEMTI03RVdI2kGdsb2JhbACDd59WVggVAQEBAQkJDAcRBCCkW4k7glSEe4ZHAQEDBYEbgzZ0BIsHiUGBcQ X-IronPort-AV: E=Sophos;i="4.60,274,1291590000"; d="scan'208";a="85404273" Received: from mail-pz0-f54.google.com ([209.85.210.54]) by mail2-smtp-roc.national.inria.fr with ESMTP; 04 Jan 2011 21:36:50 +0100 Received: by pzk32 with SMTP id 32so3480683pzk.27 for ; Tue, 04 Jan 2011 12:36:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=yIXpP+LZDSQGJ4ea3ZOWntn0DdE+bKBs3LFPdbDhw8U=; b=ESvbMeDONsAV7mCuecRHMFTZkWQ0NlQ4XTMJHbctPxJ8F/1VjON56tSHs2B85Obi2e fmhrIyjYCyrAiAcyhIs/6j1+0tKMs8rYYPhTJ+/YQCOWMgXs0gOvLErdY336O3IobSPq ZzPcpoLssSYVtB2qQLwkT/iyUTB408iSSTcvY= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=x34b93OlX64639/Nri2aZxHN+Rr7cg9ZMfoq+p3SW1tVSaC6AMXNnPwhYab9PiVg6f zkHBg9mMiSZjMi6f/+5oa8UgHLBpWj6EnrWO2IelOj4eAbqGTU5XeorgR/VIUIBF/r1W vHsVP//gF99Ub1pVhlRtdIQLUFHGhHYaZDGLY= MIME-Version: 1.0 Received: by 10.143.27.29 with SMTP id e29mr18267055wfj.336.1294173410212; Tue, 04 Jan 2011 12:36:50 -0800 (PST) Sender: daniel.c.buenzli@gmail.com Received: by 10.142.89.17 with HTTP; Tue, 4 Jan 2011 12:36:50 -0800 (PST) In-Reply-To: <5D8B19DD-7BE3-4ECB-83E3-C20D5463CFDF@cs.princeton.edu> References: <4D23353C.8020803@gmail.com> <1259991756.440008.1294155536392.JavaMail.root@zmbs2.inria.fr> <20110104174545.GA1535@yquem.inria.fr> <5D8B19DD-7BE3-4ECB-83E3-C20D5463CFDF@cs.princeton.edu> Date: Tue, 4 Jan 2011 21:36:50 +0100 X-Google-Sender-Auth: P6IjhfiT-dj2DL-aT1HBCuyZjYQ Message-ID: From: =?UTF-8?Q?Daniel_B=C3=BCnzli?= To: Yitzhak Mandelbaum Cc: Caml-list List Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by walapai.inria.fr id p04Kau1I030255 Subject: Re: [Caml-list] Array.make exception and parser > 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