Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] CFG's and Camlp4
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: David McClain <dmcclain1@m...>
Subject: [Caml-list] CFG's and Camlp4
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