caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Jack Andrews" <effbiae@ivorykite.com>
To: caml-list@yquem.inria.fr
Subject: Re: some comments on ocaml{lex,yacc} from a novice's POV
Date: Mon, 4 Apr 2005 13:42:03 +1000 (EST)	[thread overview]
Message-ID: <51945.202.164.198.46.1112586123.squirrel@www.ivorykite.com> (raw)
In-Reply-To: <50130.202.164.198.46.1112418605.squirrel@www.ivorykite.com>

Jack Andrews said:
> have used ply (python lex-yacc) most recently for parsing and believe it
> to be one of the more elegant mechanisms i've seen.
> http://systems.cs.uchicago.edu/ply/ply.html
>
> elegant because there are no lex and yacc input files, but rather the
> tokens and grammar rules are defined in python code -- succinctly!

i've now found the most elegant parser generator i have seen (scheme):
 http://www.iro.umontreal.ca/~boucherd/Lalr/documentation/lalr.html

here's the usual calc example that generates a parser:

 (define expr-parser
  (lalr-parser
   ; Terminal symbols
   (ID + - * /)
   ; Productions
   (e (e + t)    : (+ $1 $3)
      (e - t)    : (- $1 $3)
      (t)        : $1)
   (t (t * f)    : (* $1 $3)
      (t / f)    : (/ $1 $3)
      (f)        : $1)
   (f (ID)       : $1)))

isn't that nice?!?  this is an example of the power of lisp macros that
paul graham talks about.

compare with caml solutions? compare with any other solution?

i'm genuinely trying to choose my next language.  i was drawn to ocaml
because it's a fast, functional language: i want that power without having
to optimize to C.  i'm told there are good scheme compilers.  i was drawn
to ocaml because of it's score in the "language shootout"(s) and because
of it's high placing in the programming contest.

so this post is a troll, i guess, but i want to make an informed choice.

tia,   jack


  parent reply	other threads:[~2005-04-04  3:42 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-04-01 11:32 bug in "developing applications with objective caml" (english translation) Jack Andrews
2005-04-01 20:03 ` [Caml-list] " Ken Rose
2005-04-02  5:10   ` some comments on ocaml{lex,yacc} from a novice's POV Jack Andrews
2005-04-02  7:02     ` [Caml-list] " Erik de Castro Lopo
2005-04-02  7:38     ` Jacques Garrigue
2005-04-03 16:18       ` Parser combinators [was: some comments on ocaml{lex,yacc} from a novice's POV] Alex Baretta
2005-04-04  0:40         ` [Caml-list] Parser combinators Jacques Garrigue
2005-04-05 16:06       ` [Caml-list] some comments on ocaml{lex,yacc} from a novice's POV Oliver Bandel
     [not found]   ` <50130.202.164.198.46.1112418605.squirrel@www.ivorykite.com>
2005-04-04  3:42     ` Jack Andrews [this message]
2005-04-04  5:44       ` [Caml-list] " Erik de Castro Lopo
2005-04-04  9:51         ` Jon Harrop
2005-04-05 12:00           ` Geoff Wozniak
2005-04-05 13:49             ` Jon Harrop
2005-04-05 14:26               ` Richard Jones
2005-04-05 16:13                 ` Oliver Bandel
2005-04-06  4:52               ` Geoff Wozniak
2005-04-06  5:12                 ` Kenneth Knowles
2005-04-06  6:15                 ` some comments on ocaml{lex,yacc} from anovice's POV Jack Andrews
2005-04-04 10:29         ` [Caml-list] Re: some comments on ocaml{lex,yacc} from a novice's POV Daan Leijen
2005-04-04 17:39         ` Paul Snively
2005-04-04 18:16           ` skaller
2005-04-04 18:49             ` 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=51945.202.164.198.46.1112586123.squirrel@www.ivorykite.com \
    --to=effbiae@ivorykite.com \
    --cc=caml-list@yquem.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).