Related articles |
---|
CFGs vs. "declare variable before use" devriese@cs.tcd.ie (Edsko de Vries) (2005-05-26) |
Re: CFGs vs. "declare variable before use" wyrmwif@tsoft.org (SM Ryan) (2005-05-28) |
Re: CFGs vs. "declare variable before use" mefrill@yandex.ru (mefrill) (2005-05-28) |
Re: CFGs vs. "declare variable before use" torbenm@diku.dk (2005-05-28) |
Re: CFGs vs. "declare variable before use" cfc@shell01.TheWorld.com (Chris F Clark) (2005-05-28) |
Re: CFGs vs. "declare variable before use" torbenm@diku.dk (2005-05-31) |
Re: CFGs vs. "declare variable before use" gah@ugcs.caltech.edu (glen herrmannsfeldt) (2005-05-31) |
Re: CFGs vs. "declare variable before use" devriese@cs.tcd.ie (Edsko de Vries) (2005-06-02) |
[5 later articles] |
From: | SM Ryan <wyrmwif@tsoft.org> |
Newsgroups: | comp.compilers |
Date: | 28 May 2005 13:58:25 -0400 |
Organization: | Quick STOP Groceries |
References: | 05-05-216 |
Keywords: | syntax, semantics |
Posted-Date: | 28 May 2005 13:58:25 EDT |
"Edsko de Vries" <devriese@cs.tcd.ie> wrote:
# A common statement I read about the limitations of CFGs is that they
# cannot be used to express the requirement that "variables must be
# declared before they are used". However, I have been unable to find
In a type 2 grammar, essentially you can't compare a substring of the
generated string to any arbitrary substring elsewhere. You're limitted
to adjacent substrings, P->QR, or substrings left and right of an
embedding core, P->QPR. So if you're limitting the variable to one
declaration and one reference, and all such variable ranges are
disjoint or properly nested, you can use a type 2 grammar for such a
language.
To match the substring(s) corresponding to a declaration to
substring(s) corresponding to a usage that can appear more freely, you
have to have a type 0 or perhaps type 1 grammar to move the
information around the generating string.
--
SM Ryan http://www.rawbw.com/~wyrmwif/
I ASSURE YOU WE'RE OPEN!
Return to the
comp.compilers page.
Search the
comp.compilers archives again.