Re: Regular Tree Grammar vs. Context-Free Grammar
- From: Eric Wohlstadter <wohlstad@xxxxxxxxx>
- Date: Mon, 11 Dec 2006 22:29:50 -0800
Yes, this is exactly my interest. If there is an isomorphism from tree structures to word structures (strings), then we should be able to evaluate the "power" of regular tree grammars relative to the classical Chomsky hierarchy of grammars. My thought is that they lie between regular grammars and context-free grammars. Although, I can't seem to find any references which actually state this.
Eric
Ben Bacarisse wrote:
haberg@xxxxxxxxxx (Hans Aberg) writes:.
In article <87mz5zdru4.fsf@xxxxxxxxx>, Ben Bacarisse
<ben.usenet@xxxxxxxxx> wrote:
Perhaps you might add this to:I am wondering if anyone can help me with information aboutThe right hand sides of the productions of an RTG are trees and those
the relationship between regular tree grammars and CFGs? In particular
do the languages accepted by CFGs include (subsume) the languages
accepted by regular tree grammars?
of a CFG are sequences, but the way the productions of an RTG are
written gives you a CFG if you just turn the meta-notation into
notation! Construct a CFG whose terminal alphabet is augmented with
three symbols: "{", ";" and "}" and turn each RTG production of the
form:
A -> f(X,Y)
into:
A -> f { X ; Y }
and so on. I've changed the brackets and separator to make the
transformation clearer, but there is no need to.
http://en.wikipedia.org/wiki/Regular_tree_grammar
I am a little unsure about the value of saying anything. The trouble
is that the equivalence is not very formal. The Languages of RTGs are sets
of trees and those of CFGs are sets of strings.
All one can say, formally, is that one can construct a CFG whose
language can be mapped to that of the RTG with a rather trivial 1-to-1
function. There is no CFG that describes the same language as an RTG.
And you might just as well augment the terminal set by a disjoint union of
the set {'(', ',', ')'}, a way to say that if these already exist, add a
formally distinct copy. Use indices to make a distinction at need. Then
A -> f(X,Y)
is replaced by
A -> f '(' X ',' Y ')'
which by "abuse of notation" may be written
A -> f(X,Y)
:-)
Indeed. But one also has to add the tedious detail that one is
building a CFG whose language is {flatten(t) | t ∈ L_r} with
flatten: T_Σ ↦ Σ'*
flatten(s) = s
flatten(s(t₁, … t_n)) = s '(' flatten(t₁) ',' … flatten(t_n) ')'
so the result is not equivalent except to computer scientist who can
see that flatten (and, importantly, its inverse) are trivial to compute.
- Follow-Ups:
- Re: Regular Tree Grammar vs. Context-Free Grammar
- From: Chris F Clark
- Re: Regular Tree Grammar vs. Context-Free Grammar
- References:
- Regular Tree Grammar vs. Context-Free Grammar
- From: Eric Wohlstadter
- Re: Regular Tree Grammar vs. Context-Free Grammar
- From: Ben Bacarisse
- Re: Regular Tree Grammar vs. Context-Free Grammar
- From: Hans Aberg
- Re: Regular Tree Grammar vs. Context-Free Grammar
- From: Ben Bacarisse
- Regular Tree Grammar vs. Context-Free Grammar
- Prev by Date: Re: An easy way to prove P != NP
- Next by Date: Re: An easy way to prove P != NP
- Previous by thread: Re: Regular Tree Grammar vs. Context-Free Grammar
- Next by thread: Re: Regular Tree Grammar vs. Context-Free Grammar
- Index(es):
Relevant Pages
|