"Introduction to the Theory of Computation" Reading notes - Ch. 2

Chapter 2 is a generalized chapter 1, just like (G)NFA to DFA. 

Combining GNFA|Regular lang., readers should be able to understand PDA|Ctx-Free grammar without too much effort.. Yes, this is what you saw in your compiler classes. With (G)NFA existed, a stack is added for "recording extra info", so to make PushDown Automata more powerful than GNFA, because it "recording extra info" in that stack. 

Make a comparison btw. GNFA and PDA: GNFA is so simple that a lot info is simply "forgotten" after each movement - the visibility of GNFA is limited to "neighbor" states; but with a stack, we have memories of information from the past ! That means, the "linear" style of GNFA (I know, it could be a graph, but it is still directive) becomes a tree, a grammar tree. 

The big star of the 2 chapters: Pumping lemma. It is adopted to prove some language is NOT a Regular | Context-Free language. Essentially a pumping style (no, not gangnam style) reflects its corresponding gist of GNFA or Context-Free grammar: GNFA is essentially a linear (as above) procedure so its pumping is a linear pumping; while Ctx-Free pumping lemma is a recursive (stack like) type of pumping. Smart maths tricks are applied to the 3 conditions in these lemmas. Contradiction from Ch.0 is used as the proof strategy.

P.S. I don't like terminology in this field from the very beginning. Language? Grammar? They remind me of ETS - Educational Testing Service. The first big boss you conquered before your first flight ticket to US.

Anyway, Michael Sipser is an excellent teacher. He knows how students learn theory of computation. For sure he had assignments to his students, which part I totally skipped - don't blame me i have no plan to be a professor.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章