> Esko asked:> > 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> > any formal justifications for this statement (e.g., in the style of> > the proof using the pumping lemma that a^n b^n c^n is not a context> > free language). Could anyone point me to some relevant literature?> > Also, are people aware of any other limitations of CFGs, esp. in the> > context of (the semantics of) programming languages, such as the one I> > mentioned, preferably with proofs?>> I probably should let Quinn Tyler Jackson answer this as he's been> working fairly extensively in this area, that is defining grammars for> solving these kinds of problems.

The most cited proof of this general concept that I can think of is due to
[Floyd].

It's the the ACM Digital Library -- and is a very short read.
--
Quinn