caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] Looking for parser + ast generator in OCAML
@ 2002-02-18 19:55 Lakshminarayanan R
  2002-02-18 20:49 ` Alain Frisch
  0 siblings, 1 reply; 3+ messages in thread
From: Lakshminarayanan R @ 2002-02-18 19:55 UTC (permalink / raw)
  To: caml-list


Hi,

I am new to this list and I am currently learning OCAML to
implement a compiler for a small (functional) language
called Alpha.

I am wondering what would be the fastest and robust way to
implement a parser in ocaml for our language. I am looking
for parser generators (I found ocamlyacc, are there any
others?). I am also looking for tools that can automatically
generate data structures to hold the Abstract Syntax Tree
and also tools that can generate functions that can be used
to traverse this AST. Basically I want tools that can take a
grammar spec. and generate a parser, ast, and tree traversal
functions, automatically.

I would highly appreciate any pointers to related tools.

A more general question: Is there some kind of Compiler
Development Kit (or set of tools) in Ocaml?

Thanks in advance,
Ln


-------------------
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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] Looking for parser + ast generator in OCAML
  2002-02-18 19:55 [Caml-list] Looking for parser + ast generator in OCAML Lakshminarayanan R
@ 2002-02-18 20:49 ` Alain Frisch
  2002-02-18 21:40   ` Remi VANICAT
  0 siblings, 1 reply; 3+ messages in thread
From: Alain Frisch @ 2002-02-18 20:49 UTC (permalink / raw)
  To: Lakshminarayanan R; +Cc: caml-list

On Mon, 18 Feb 2002, Lakshminarayanan R wrote:

> I am wondering what would be the fastest and robust way to
> implement a parser in ocaml for our language. I am looking
> for parser generators (I found ocamlyacc, are there any
> others?).

Camlp4 (http://caml.inria.fr/camlp4) is another option for parsing. I
rewrote the ocamlyacc parser for my CDuce language in camlp4; this gave
better parsing error messages. The drawback is that camlp4 does not signal
"conflicts" in the parser, but its parsing technology is simple enough to
detect conflicts by hand (globally, I feel more confident in the new
parser; I can predict easily what I break when I add or modify a rule).
Camlp4 parsers are also probably somewhat slowest, but who cares ?  I feel
Camp4 parsers esthetically superior: you don't have to
count the tokens to produce (and read) the correct $1, $2, $3; precedence
levels appear clearly; etc ...


> I am also looking for tools that can automatically
> generate data structures to hold the Abstract Syntax Tree
> and also tools that can generate functions that can be used
> to traverse this AST. Basically I want tools that can take a
> grammar spec. and generate a parser, ast, and tree traversal
> functions, automatically.

I second that, altough I do not see clearly what the tool should be.
Basically, I would like to give the same abstract syntax as in papers,
that is without parentheses, with overloading of symbols between several
syntactical categories, etc ... and let the tool inform me, maybe
interactively, when ambiguities have to be resolved, by showing "typical"
ambiguous case and suggesting solutions (precedence, associativity,
parentheses, ...). An automatically generated pretty-printer associated to
the grammar would be great too.

> I would highly appreciate any pointers to related tools.
>
> A more general question: Is there some kind of Compiler
> Development Kit (or set of tools) in Ocaml?

I'm not aware of such a thing, but there are many compilers written in
OCaml with available source code (OCaml itself for instance).


-- Alain

-------------------
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


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Caml-list] Looking for parser + ast generator in OCAML
  2002-02-18 20:49 ` Alain Frisch
@ 2002-02-18 21:40   ` Remi VANICAT
  0 siblings, 0 replies; 3+ messages in thread
From: Remi VANICAT @ 2002-02-18 21:40 UTC (permalink / raw)
  To: caml-list

Alain Frisch <frisch@clipper.ens.fr> writes:

> On Mon, 18 Feb 2002, Lakshminarayanan R wrote:

> > I am also looking for tools that can automatically
> > generate data structures to hold the Abstract Syntax Tree
> > and also tools that can generate functions that can be used
> > to traverse this AST. Basically I want tools that can take a
> > grammar spec. and generate a parser, ast, and tree traversal
> > functions, automatically.
> 
> I second that, altough I do not see clearly what the tool should be.
> Basically, I would like to give the same abstract syntax as in papers,
> that is without parentheses, with overloading of symbols between several
> syntactical categories, etc ... and let the tool inform me, maybe
> interactively, when ambiguities have to be resolved, by showing "typical"
> ambiguous case and suggesting solutions (precedence, associativity,
> parentheses, ...). An automatically generated pretty-printer associated to
> the grammar would be great too.
> 
IoXML can be a good start point for things like that, it work the
other way around (from type to parser and pretty_printer). It use
XML but one can hope that it can be adapt to something else. 


> > I would highly appreciate any pointers to related tools.
> >
> > A more general question: Is there some kind of Compiler
> > Development Kit (or set of tools) in Ocaml?
> 
> I'm not aware of such a thing, but there are many compilers written in
> OCaml with available source code (OCaml itself for instance).
> 

I've just read something about why ocaml is good for writing compilers: 
http://rum.cs.yale.edu/cs421/case-for-ml.html

It can be of some interest here.
-- 
Rémi Vanicat
vanicat@labri.u-bordeaux.fr
http://dept-info.labri.u-bordeaux.fr/~vanicat
-------------------
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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-02-18 21:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-02-18 19:55 [Caml-list] Looking for parser + ast generator in OCAML Lakshminarayanan R
2002-02-18 20:49 ` Alain Frisch
2002-02-18 21:40   ` Remi VANICAT

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).