4.4 NON CONTEXT FREE LANGUAGES; ANOTHER PUMPING LEMMA
In this section we prove a pumping lemma for CFL that is similar, but as expected from the richer structure of the PDA, more complex than the one for regular languages. We will benefit in our proof from the concept of parse tree for a CFG. The reader has most likely encountered trees in courses on discrete mathematics, data structures, etc. A tree is a structure like the one drawn below:

Since by default all edges point “downwards”, one does not need to emphasize so by drawing them as arrows. The round nodes may or may not have names. Our parse trees will have all their nodes named. The precise angle or slope of the edges does not matter—meaning, we allow variation in drawings without changing the tree we want to depict. However, left to right order matters, thus the following is a different tree from the one above. Our trees are ordered.

Of course, the reader has encountered many aspects of discrete mathematics before, but this did not stop me from reintroducing some such concepts in Chapter 1. So, let us revisit the definition of trees. A tree has both a “data” component (the node “contents”, whatever they may be) and a structural component or geometry, that is, how the nodes are interconnected. This motivates us to opt for ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access