Exam 2 Topics - Fall 2017
- No updates at this time.
- The exam will focus on the following material:
Notes and Chapters 11, 12, 16 (skip 14 and 15)
and an overview understanding of Pumping Theorems from Chapters 8 and 13
- Definitions: Define the following terms and/or
and use them appropriately
- Context Free Grammar (CFG)
- Language of a grammar
- Context Free Language (CFL)
- Derive in 0 or more steps
- Derive Ambiguously
- Ambiguous Grammar
- Inherently Ambiguous Language
- Chomsky Normal Form (CNF) [Not On Exam (NOE)]
- PDA M recognizes Language L
- Grammar and PDA Symbols - Define the following symbols and use them
- Single arrow (ie →)
- Double arrow - derives (ie ⇒)
- Double arrow starred (ie ⇒*)
- Yields (⊦ and ⊦*)
- Describe the parts in the formal definition of a CFG
- Identify the parts of a given grammar
- Create a grammar that generates a given language
- Analyze a given grammar to find the language it generates
- Find the derivation of a given string with a given grammar, if one exists
- Define rightmost and leftmost derivations, and give the RM and LM derivation of a string.
- Find the parse tree of a given string with a given grammar, if one exists
- Identify the correspondences among a grammar, derivation of a string, and the parse tree for that string
- Prove that a given grammar is ambiguous
- Recognize whether a grammar is in CNF [NOE]
Pushdown Automata (PDA)
- Describe when a PDA accepts a string, rejects a string, or does neither.
- Define the language that a PDA accepts.
- Describe the difference in components and operation between a PDA, a DFSM, and/or a NDFSM
- Describe the parts in the formal definition of a PDA and a
configuration and computation
- Convert between the formal and graphical representations of a given PDA
- Identify the correspondences between the formal and graphical representations of a given PDA
- Describe the basic operation of a PDA, including how a PDA recognizes a string
- Trace the behavior of a given PDA on a given input string
- Analyze a PDA to identify the language it recognizes
- Create a PDA that recognizes a given language
- Create a PDA that recognizes the language of a given CFG, either natural or using the CFG to PDA algorithm.
- Describe what it means for a PDA to be deterministic (ie no competing
transitions and no competition between accepting and making an empty
- Describe 2 ways to reduce nondeterminism in a machine (eg push
stack marker and mark end of input), and create a deterministic
PDA that uses these techniques.
- Top Down : Basic algorithm, tree creation, relation between parse and derivation
- Bottom Up
- LL and LR grammars: connection to deterministic TD/BU parsing, importance of LR category
Context Free Languages
- State and explain the following listing of the language
recognition/generation power of various machines:
DFSM = NFSM < DPDA < NDPDA = CFG
- State and explain the following listing of languages, and give examples of
languages in each category:
Regular Languages < Deterministic Context Free Languages < Context Free
Languages < Non-CFL
- For each category above, give an example language that is in the
category and not in the next larger category (if there is a larger
Use the algorithm given to convert a grammar
into an equivalent PDA and explain the significance of this.
- Explain what a Pumping Theorem/Lemma (PL) is used to prove
(in the context of both Regular and CF PL).
- Explain why long strings are pumpable (both regular and CF).
- [NOE] State the Pumping Theorem for Regular Languages
- [NOE] Use a Pumping Lemma to prove an intuitive proof that a simple language
is not Regular/CF.