Lecture # 19. Example Consider the following CFG ∑ = {a, b} Consider the following CFG ∑ = {a, b} 1. S  aSa | bSb | a | b | Λ The above CFG generates.

Slides:



Advertisements
Similar presentations
Lecture # 8 Chapter # 4: Syntax Analysis. Practice Context Free Grammars a) CFG generating alternating sequence of 0’s and 1’s b) CFG in which no consecutive.
Advertisements

Translator Architecture Code Generator ParserTokenizer string of characters (source code) string of tokens abstract program string of integers (object.
Grammars, constituency and order A grammar describes the legal strings of a language in terms of constituency and order. For example, a grammar for a fragment.
Context Free Grammars.
Theory Of Automata By Dr. MM Alam
CS5371 Theory of Computation
Discussion #31/20 Discussion #3 Grammar Formalization & Parse-Tree Construction.
COMMONWEALTH OF AUSTRALIA Copyright Regulations 1969 WARNING This material has been reproduced and communicated to you by or on behalf of Monash University.
Specifying Languages CS 480/680 – Comparative Languages.
Lecture 9UofH - COSC Dr. Verma 1 COSC 3340: Introduction to Theory of Computation University of Houston Dr. Verma Lecture 9.
Context-Free Grammars Chapter 3. 2 Context-Free Grammars and Languages n Defn A context-free grammar is a quadruple (V, , P, S), where  V is.
Lecture 13 Parsing and Ambiguity. Given a string x and a CFG G = (V, Σ, R, S), determine whether x L(G) and if x L(G), find a derivation S * x. This problem.
Problem of the DAY Create a regular context-free grammar that generates L= {w  {a,b}* : the number of a’s in w is not divisible by 3} Hint: start by designing.
Chapter 4 Context-Free Languages Copyright © 2011 The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 1.
Formal Grammars Denning, Sections 3.3 to 3.6. Formal Grammar, Defined A formal grammar G is a four-tuple G = (N,T,P,  ), where N is a finite nonempty.
Lecture 16 Oct 18 Context-Free Languages (CFL) - basic definitions Examples.
CMSC 330: Organization of Programming Languages
1 Section 3.3 Grammars A grammar is a finite set of rules, called productions, that are used to describe the strings of a language. Notational Example.
Context-free Grammars Example : S   Shortened notation : S  aSaS   | aSa | bSb S  bSb Which strings can be generated from S ? [Section 6.1]
Design contex-free grammars that generate: L 1 = { u v : u ∈ {a,b}*, v ∈ {a, c}*, and |u| ≤ |v| ≤ 3 |u| }. L 2 = { a p b q c p a r b 2r : p, q, r ≥ 0 }
1 Context-Free Languages Not all languages are regular. L 1 = {a n b n | n  0} is not regular. L 2 = {(), (()), ((())),...} is not regular.  some properties.
Classification of grammars Definition: A grammar G is said to be 1)Right-linear if each production in P is of the form A  xB or A  x where A and B are.
Context Free Grammars CIS 361. Introduction Finite Automata accept all regular languages and only regular languages Many simple languages are non regular:
Chapter 5 Context-Free Grammars
Grammars CPSC 5135.
Languages & Grammars. Grammars  A set of rules which govern the structure of a language Fritz Fritz The dog The dog ate ate left left.
Lecture # 9 Chap 4: Ambiguous Grammar. 2 Chomsky Hierarchy: Language Classification A grammar G is said to be – Regular if it is right linear where each.
Dept. of Computer Science & IT, FUUAST Automata Theory 2 Automata Theory V Context-Free Grammars andLanguages.
Context Free Grammar. Introduction Why do we want to learn about Context Free Grammars?  Used in many parsers in compilers  Yet another compiler-compiler,
So far... A language is a set of strings over an alphabet. We have defined languages by: (i) regular expressions (ii) finite state automata Both (i) and.
Module 2 How to design Computer Language Huma Ayub Software Construction Lecture 8.
Lecture # 5 Pumping Lemma & Grammar
Context Free Grammars.
CMSC 330: Organization of Programming Languages
Lecture 11 Theory of AUTOMATA
Context Free Grammars CFGs –Add recursion to regular expressions Nested constructions –Notation expression  identifier | number | - expression | ( expression.
CSCI 3130: Formal languages and automata theory Tutorial 4 Chin.
1 A well-parenthesized string is a string with the same number of (‘s as )’s which has the property that every prefix of the string has at least as many.
1 Simplification of Context-Free Grammars Some useful substitution rules. Removing useless productions. Removing -productions. Removing unit-productions.
Re-enter Chomsky More about grammars. 2 Parse trees S  A B A  aA | a B  bB | b Consider L = { a m b n | m, n > 0 } (one/more a ’s followed by one/more.
Grammars Hopcroft, Motawi, Ullman, Chap 5. Grammars Describes underlying rules (syntax) of programming languages Compilers (parsers) are based on such.
Grammars CS 130: Theory of Computation HMU textbook, Chap 5.
Introduction Finite Automata accept all regular languages and only regular languages Even very simple languages are non regular (  = {a,b}): - {a n b.
Chapter 5 Context-free Languages
Syntax Analyzer (Parser)
Context-Free Languages
CSC312 Automata Theory Lecture # 26 Chapter # 12 by Cohen Context Free Grammars.
Lecture # 4.
Transparency No. 1 Formal Language and Automata Theory Homework 5.
Chomsky Normal Form.
1 A well-parenthesized string is a string with the same number of (‘s as )’s which has the property that every prefix of the string has at least as many.
1 Recap lecture 28 Examples of Myhill Nerode theorem, Quotient of a language, examples, Pseudo theorem: Quotient of a language is regular, prefixes of.
Theory Of Automata By Dr. MM Alam
Syntax Analysis By Noor Dhia Syntax analysis:- Syntax analysis or parsing is the most important phase of a compiler. The syntax analyzer considers.
Recap lecture 31 Context Free Grammar, Terminals, non- terminals, productions, CFG, context Free language, examples.
Context Free Grammars & Parsing CPSC 388 Fall 2001 Ellen Walker Hiram College.
Lecture 17: Theory of Automata:2014 Context Free Grammars.
Describing Syntax and Semantics Chapter 3: Describing Syntax and Semantics Lectures # 6.
Context Free Grammars Chapter 12.
CONTEXT-FREE LANGUAGES
Formal Language & Automata Theory
Recap lecture 33 Example of trees, Polish Notation, examples, Ambiguous CFG, example,
CSC312 Automata Theory Grammatical Format Chapter # 13 by Cohen
Recap Lecture 34 Example of Ambiguous Grammar, Example of Unambiguous Grammer (PALINDROME), Total Language tree with examples (Finite and infinite trees),
Even-Even Devise a grammar that generates strings with even number of a’s and even number of b’s.
Theory Of Automata By Dr. MM Alam
Chapter 7 Regular Grammars
Stdnt id: roll no..
ReCap Chomsky Normal Form, Theorem regarding CNF, examples of converting CFG to be in CNF, Example of an FA corresponding to Regular CFG, Left most and.
Task Construct CFG that generates the language L = {w  {a,b}*: length(w)  2 and second letter of w from right is a}
Presentation transcript:

Lecture # 19

Example Consider the following CFG ∑ = {a, b} Consider the following CFG ∑ = {a, b} 1. S  aSa | bSb | a | b | Λ The above CFG generates the language PALINDROME. The above CFG generates the language PALINDROME. It may be noted that the CFG S  aSa | bSb | a | b generates the language NON-NULLPALINDROME. It may be noted that the CFG S  aSa | bSb | a | b generates the language NON-NULLPALINDROME.

Example Consider the following CFG ∑ = {a, b} Consider the following CFG ∑ = {a, b} 1. S  aSb | ab | Λ It can be observed that the CFG generates the language {a n b n : n=0,1,2,3, …}. It can be observed that the CFG generates the language {a n b n : n=0,1,2,3, …}. It may also be noted that the language {a n b n : n=1,2,3, …} can be generated by the following CFG S  aSb|ab It may also be noted that the language {a n b n : n=1,2,3, …} can be generated by the following CFG S  aSb|ab

Example Consider the following CFG ∑ = {a, b} Consider the following CFG ∑ = {a, b} 1. S  aXb | bXa | Λ 2. X  aX | bX | Λ The above CFG generates the language of strings, defined over ∑ ={a,b}, beginning and ending in different letters. The above CFG generates the language of strings, defined over ∑ ={a,b}, beginning and ending in different letters.

Trees As in English language any sentence can be expressed by parse tree, so any word generated by the given CFG can also be expressed by the parse tree, e.g. As in English language any sentence can be expressed by parse tree, so any word generated by the given CFG can also be expressed by the parse tree, e.g. 1. S  AA 2. A  AAA | bA | Ab |a Obviously, baab can be generated by the above CFG. To express the word baab as a parse tree, start with S. Replace S by the string AA, of nonterminals, drawing the downward lines from S to each character of this string as follows Obviously, baab can be generated by the above CFG. To express the word baab as a parse tree, start with S. Replace S by the string AA, of nonterminals, drawing the downward lines from S to each character of this string as follows

Trees continued … Now let the left A be replaced by bA and the right one by Ab then the tree will be Now let the left A be replaced by bA and the right one by Ab then the tree will be

Trees continued … Replacing both A’s by a, the above tree will be Replacing both A’s by a, the above tree will be

Trees continued … Thus the word baab is generated. Thus the word baab is generated. The above tree to generate the word baab is called Syntax tree or Generation tree or Derivation tree as well. The above tree to generate the word baab is called Syntax tree or Generation tree or Derivation tree as well.

Ambiguous CFG The CFG is said to be ambiguous if there exists atleast one word of it’s language that can be generated by the different production trees. The CFG is said to be ambiguous if there exists atleast one word of it’s language that can be generated by the different production trees. Example: Consider the following CFG S  aS|Sa|a Example: Consider the following CFG S  aS|Sa|a The word aaa can be generated by the following three different trees The word aaa can be generated by the following three different trees

Example continued … Thus the above CFG is ambiguous, while the CFG S  aS|a is not ambiguous as neither the word aaa nor any other word can be derived from more than one production trees. Thus the above CFG is ambiguous, while the CFG S  aS|a is not ambiguous as neither the word aaa nor any other word can be derived from more than one production trees.

Example Consider the following CFG Consider the following CFG S  aS | bS | aaS | Λ It can be observed that the word aaa can be derived from more than one production trees. Thus, the above CFG is ambiguous. This ambiguity can be removed by removing the production S  aaS It can be observed that the word aaa can be derived from more than one production trees. Thus, the above CFG is ambiguous. This ambiguity can be removed by removing the production S  aaS Following is another example Following is another example

Example Consider the CFG of the language PALINDROME S  aSa|bSb|a|b| Λ Consider the CFG of the language PALINDROME S  aSa|bSb|a|b| Λ It may be noted that this CFG is unambiguous as all the words of the language PALINDROME can only be generated by a unique production tree. It may be noted that this CFG is unambiguous as all the words of the language PALINDROME can only be generated by a unique production tree. It may be noted that if the production S  aaSaa is added to the given CFG, the CFG thus obtained will be no more unambiguous. It may be noted that if the production S  aaSaa is added to the given CFG, the CFG thus obtained will be no more unambiguous.

Total language tree For a given CFG, a tree with the start symbol S as its root and whose nodes are working strings of terminals and non-terminals. For a given CFG, a tree with the start symbol S as its root and whose nodes are working strings of terminals and non-terminals. The descendants of each node are all possible results of applying every production to the working string. This tree is called total language tree. Following is an example of total language tree The descendants of each node are all possible results of applying every production to the working string. This tree is called total language tree. Following is an example of total language tree

Example Consider the following CFG Consider the following CFG S  aa|bX|aXX X  ab|b, then the total language tree for the given CFG may be

Example continued … It may be observed from the previous total language tree that dropping the repeated words, the language generated by the given CFG is It may be observed from the previous total language tree that dropping the repeated words, the language generated by the given CFG is {aa, bab, bb, aabab, aabb, abab, abb}

Example Consider the following CFG Consider the following CFG S  X|b, X  aX then following will be the total language tree of the above CFG Note: It is to be noted that the only word in that the only word in this language is b. this language is b.

Regular Grammar All regular languages can be generated by CFGs. Some nonregular languages can be generated by CFGs but not all possible languages can be generated by CFG, e.g. All regular languages can be generated by CFGs. Some nonregular languages can be generated by CFGs but not all possible languages can be generated by CFG, e.g. The CFG S  aSb|ab generates the language {a n b n : n=1,2,3, …}, which is nonregular. The CFG S  aSb|ab generates the language {a n b n : n=1,2,3, …}, which is nonregular. Note: It is to be noted that for every FA, there exists a CFG that generates the language accepted by this FA. Following is an example in this regard Note: It is to be noted that for every FA, there exists a CFG that generates the language accepted by this FA. Following is an example in this regard

Regular grammar continued … Example: Example: Consider the language L expressed by (a+b)*aa(a+b)* i.e.the language of strings, defined over ∑ ={a,b}, containing aa. To construct the CFG corresponding to L, consider the FA accepting L, as follows

Regular grammar continued … CFG corresponding to the above FA may be CFG corresponding to the above FA may be S  bS|aA A  aB|bS B  aB|bB| Λ

Regular Grammar continued … Semiword: A semiword is a string of terminals (may be none) concatenated with exactly one nonterminal on the right i.e. a semiword, in general, is of the following form (terminal)(terminal)… (terminal)(nonterminal) Semiword: A semiword is a string of terminals (may be none) concatenated with exactly one nonterminal on the right i.e. a semiword, in general, is of the following form (terminal)(terminal)… (terminal)(nonterminal) word: A word is a string of terminals. Λ is also a word. word: A word is a string of terminals. Λ is also a word.

Theorem If every production in a CFG is one of the following forms If every production in a CFG is one of the following forms 1. Nonterminal  semiword 2. Nonterminal  word then the language generated by that CFG is regular.

Thank You…