130 likes | 326 Views
Chomsky Hierarchy Language Operations and Properties. The Chomsky Hierarchy. You don’t have to know this. The Chomsky Hierarchy. Partially Computable Languages. {M, H(<M>)}. Computable Languages. {a n b n c n , n ≥ 0}. Context Free Languages. {a n b n , n ≥ 0}. Regular Languages.
E N D
The Chomsky Hierarchy You don’t have to know this
The Chomsky Hierarchy Partially Computable Languages {M, H(<M>)} Computable Languages {an bn cn , n ≥ 0} Context Free Languages {an bn , n ≥ 0} Regular Languages {am bn , m,n ≥ 0}
Regular Languages To prove that a language is regular: • Find a DFA (NFA, NFAε) that recognizes it. • Find a regular expression that represents is. • Find a (right or left) regular grammar that generates it.
Context Free Languages To prove that a language is context free: • Find a NPDA that recognizes it. • Find a context free grammar that generates it.
Computable Languages To prove that a language is computable you must find a Turing Machine that decides membership in the language: • If the string is in the language then the machine should accept. • If the string is not in the language then the machine should reject. • The machine shouldn’t loop for any input.
Partially Computable Language To prove that a language is partially computable: • Find a Turing Machine that recognizes it: • if the string is in the language the machine should accept. • if the string is not in the language the machine should loop. • Give an unrestricted grammar that represents it (you won’t be asked to do that…)
Closure under operations • Regular Languages are closed under: Union, Concatenation, Star, Intersection and Complement • Context Free Languages are closed under: Union, Concatenation, Star. They are not closed under: Intersection, Complement. • Computable Languages are closed under: Union, Concatenation, Star, Intersection, Complement • Partially Computable Languages are closed under: Union, Concatenation, Star, Intersection. They are not closed under Complement.
Computable and Partially Computable Languages • Computable languages most of the times are called Decidable Languages because a Turing Machine can decide membership in those languages (it can either accept or reject a string). They are also called Recursive. • Partially Computable Languages most of the times are called Recognizable because a Turing Machine can recognize a string in the language (accept it) but it might not be able to decide if a string is not in the language (it might loop). They are also called Recursively Enumerable.
Computable Languages are also Partially Computable Proof: If L is Computable then there is a Turing Machine M that decides membership in L: • M accepts on x if x is in L • M rejects on x if x is not in L Change M to M’ in the following way: • For all the combinations (q,a) for which the machine rejects add the transition δ(q,a) = (q, a, S) Now the new machine M’: • Accepts on x if x is in L • Loops on x is x is not in L So M’ recognizes L.
Properties of Computable and Partially Computable Languages • If a language L and its complement are both partially computable then the language is computable Both L and its complement have TMs M and M’ that recognize them. To decide if x is in L: Run both machines M and M’ in parallel. Eventually one will halt. If M halts accept. If M’ halts reject.