caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "David McClain" <dmcclain1@mindspring.com>
To: "caml" <caml-list@inria.fr>
Subject: [Caml-list] CFG's and Camlp4
Date: Fri, 13 Aug 2004 11:11:31 -0700	[thread overview]
Message-ID: <006b01c48160$f932dc40$0401000a@dylan> (raw)

Actually, after having put off learning Camlp4 for quite some time because
it seemed so arcane, I now decided at the urging of several people to dig
into it.

I have to say that I am quite impressed. Camlp4 represents a kind of
paradigm shift that I was hoping to see when pleading for more modern
approaches. In fact it seems so modern that I'm still trying to wrap my
brain around it.

Already I have several other uses for this preprocessing. But the idea of an
extensible grammar, on the fly, is very appealing. I do huge amounts of Lisp
macrology and came to miss that. I thought to myself that OCaml at least
made up for it by being so darned convenient to use at the functional level
that macros just seemed nonessential. But that isn't quite true, and now
Camlp4 comes to the rescue.

The difficulty I have been having with YACC seems to be caused by the
reduction from LL(1) to LALR(1), where tables have shrunk by coalescing what
appear to be common productions. That is in fact true for expressions and
patterns. However, we (Inria and myself) both expect to use different
semantic actions on these two similar syntactic breeds. That becomes
problematic when the parser folds the two cases together. What I'm doing
would probably work just fine in LL(1), but not entirely correctly in
LALR(1).

[I studied the "Dragon Book" many years ago, and was ever so grateful when
that came to an end. I see now that many of my misconceptions about language
grammar compilers were never properly reoriented during that period. I must
also say that I much prefer the arcane new world of Camlp4. Perhaps I just
like new ideas. I certainly do like new ideas that both work, and force my
brain onto an entirely new plane. YACC was a great idea at the time. I know
it still has heavy use -- I use it myself. But dynamically extensible
grammars seem like a neat new idea.]

David McClain
Senior Corporate Scientist
Avisere, Inc.

+1.520.390.7738 (USA)
david.mcclain@avisere.com



-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


             reply	other threads:[~2004-08-13 18:10 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-08-13 18:11 David McClain [this message]
2004-08-13 18:48 ` Paul Snively

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='006b01c48160$f932dc40$0401000a@dylan' \
    --to=dmcclain1@mindspring.com \
    --cc=caml-list@inria.fr \
    /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).