Re: translation tools?

"Mike Dimmick" <mike@dimmick.demon.co.uk>
19 Jan 2001 23:23:47 -0500

          From comp.compilers

Related articles
translation tools? Maciej.Komosinski@cs.put.poznan.pl (Maciej Komosinski) (2001-01-18)
Re: translation tools? mike@dimmick.demon.co.uk (Mike Dimmick) (2001-01-19)
Re: translation tools? tmk@netvision.net.il (Michael Tiomkin) (2001-01-19)
| List of all articles for this month |
From: "Mike Dimmick" <mike@dimmick.demon.co.uk>
Newsgroups: comp.compilers.tools.pccts,comp.compilers
Date: 19 Jan 2001 23:23:47 -0500
Organization: Compilers Central
References: 01-01-094
Keywords: tools, C++
Posted-Date: 19 Jan 2001 23:23:47 EST

"Maciej Komosinski" <Maciej.Komosinski@cs.put.poznan.pl> wrote in message
> I have to write a translator from a simple scripting language to a
> complex assembler. I'd like to use some yacc-similar tool, but I would
> prefer a C++ output. What are up-to-date, free tools for that?


I'm probably just preferring the tool that I'm using to write my final
year project with here, but I would currently recommend ANTLR (known
as PCCTS in version 1). Version 1 is written in C++, and can produce
C or C++ output, and the latest maintenance release is available from
http://www.polhode.com/pccts, while version 2 is written in Java and
can produce either Java or C++ (available from http://www.antlr.org).


I found it to be well documented and supported, partly through the
comp.compilers.tools.pccts newsgroup. It seems to have pretty
powerful parsing concepts.


The only slight disadvantage you might have with it is that it
generates recursive-descent parsers, which may require a lot of stack
space with heavily nested code. The output produced is much easier to
debug, though! If stack space is a premium, you're better off with a
tool that produces a table-driven parsing automaton, possibly such as
PRECCX. I found this to be badly documented, though (which I find to
be a common failing of free/open source tools).


HTH,


--
Mike Dimmick


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.