DETERMINISTIC CONTEXT FREE LANGUAGES
Transcription
DETERMINISTIC CONTEXT FREE LANGUAGES
DETERMINISTIC CONTEXT FREE LANGUAGES Ethakota Krishnamurthi Surendranath Manoj Gujjari • What is a CFL(Context Free Language)? • Deterministic Context Free Language – Description – Properties – Importance CONTEXT FREE LANGUAGES • A context-free language (CFL) is a language generated by some context-free grammar (CFG). • Different CF grammars can generate the same CF language, or conversely, a given CF language can be generated by different CF grammars. • The class of context-free languages generalizes the class of regular languages, i.e., every regular language is a contextfree language. • The reverse of this is not true, i.e., every context-free language is not necessarily regular. DCFL • Deterministic context-free languages are a proper subset of context-free languages. • Context free languages that can be accepted by Deterministic Push-Down Automata. • DCFLs are always unambiguous. • Many programming languages can be described by means of DCFLs. DCFL Description Consider $: end of string marker Consider an example: Let L = a* {anbn : n > 0}. When it begins reading a’s, M must push them onto the stack. In case there are going to be b’s it runs out of input without seeing b’s, it needs a way to pop the a’s from the stack before it can accept. The end-of-string marker allows the popping to happen, when all the input has been read. Add $ to make it easier to build DPDAs, it does not add power (to allow building a PDA for L that was not context-free) There exist CLFs that are not deterministic, e.g., L = {aibjck, i j or j k}. A DETERMINISTIC PDA FOR L L = a* {anbn : n > 0}. A NDPDA FOR L( No end-marker) L = a* {anbn : n > 0}. Properties of DCFL • DCFLS are not closed under union. • DCFLS are not closed under intersection. • DCFLS are closed under complement. DCFLS are not closed under UNION L1 = {aibjck, i, j, k 0 and i j}. L2 = {aibjck, i, j, k 0 and j k}. (a DCFL) (a DCFL) L = L1 L2. = {aibjck, i, j, k 0 and (i j) or (j k)}. L = L. = {aibjck, i, j, k 0 and i = j = k} {w {a, b, c}* : the letters are out of order}. L = L a*b*c*. = {anbncn, n 0}. L is not even CF, much less DCF. DCFLS are not closed under Intersection L1 = {aibjck, i, j, k 0 and i = j}. L2 = {aibjck, i, j, k 0 and j = k}. L = L1 L2 = L1 and L2 are deterministic context-free: CFL HIERARCHY References • Automata, Computability and Complexity, Elaine Rich. • http://en.wikipedia.org/wiki/Deterministic_contextfree_language • http://en.wikipedia.org/wiki/Context-free_language • http://en.wikipedia.org/wiki/Unambiguous_grammar QUESTIONS?