Related articles |
---|
[2 earlier articles] |
Re: target language grammars. dobes@dobesland.com (Dobes Vandermeer) (2004-11-07) |
Re: target language grammars. lujoplujop@gmail.com (Lujop) (2004-11-07) |
Re: target language grammars. vbdis@aol.com (2004-11-07) |
Re: target language grammars. cgweav@aol.com (2004-11-07) |
Re: target language grammars. kenrose@tfb.com (Ken Rose) (2004-11-14) |
Re: target language grammars. idbaxter@semdesigns.com (Ira Baxter) (2004-11-14) |
target language grammars. a.t.hofkamp@tue.nl (A.T. Hofkamp) (2004-11-14) |
Re: target language grammars. zbigniew@planet.nl (Zbigniew Chamski) (2004-11-14) |
From: | "A.T. Hofkamp" <a.t.hofkamp@tue.nl> |
Newsgroups: | comp.compilers |
Date: | 14 Nov 2004 22:43:39 -0500 |
Organization: | Compilers Central |
References: | 04-11-013 |
Keywords: | syntax |
Posted-Date: | 14 Nov 2004 22:43:39 EST |
X-X-Sender: | hat@se-126.se.wtb.tue.nl |
Hello all,
> Can anyone point to applications where the target language
> grammar is made use of?
What about an interactive compiler construction environment where you
define a context-free source language, a context-free target language,
and a set of (functional-style) rewrite rules to rewrite input syntax
to output syntax (with the rewrite rules using both the input and the
output syntax)?
The language that does this is called ASF+SDF, and the implementation
of it is called Meta. You can find it (with many publications) at
http://www.cwi.nl/htbin/sen1/twiki/bin/view/SEN1/MetaEnvironment
I have been using it for almost 2 years now for writing my compiler.
At first having everything based on grammars feels weird, but now I
wouldn't want to go back to the 'old' way with eg lex/yacc.
> Perhaps, in translating a program, we could generate a representation
> of the program as a parse tree in the target language and then
No need to do anything yourselves, Meta does it all for you.
> Mostly here I am thinking of cases where the target language is
> something like postscript, pdf, or latex. (The Lyx program translates
> Lyx files to latex files.)
Since the grammar is context-free, you get context-free output, for
example without proper indentation.
The grammar simply does not contain this layout-information, so it
cannot do layouting of the output.
On the other hand, since the output is available in a tree, you can
quite easily write a formatter if you want.
> I am particularly interested in the case that a target language
> program represents how some data is to be displayed on a computer
If you have a context-free grammar, Meta can give you the output in
tree-format.
Albert
Return to the
comp.compilers page.
Search the
comp.compilers archives again.