Theory of Computation Unit-3: Context Free Grammar
26 Questions
0 Views

Theory of Computation Unit-3: Context Free Grammar

Created by
@HeavenlyGoblin

Questions and Answers

What are the two types of derivation used to find whether a string belongs to a given grammar?

Leftmost derivation and Rightmost derivation

What is the characteristic of an ambiguous grammar?

  • Produces multiple leftmost derivations
  • Produces multiple rightmost derivations
  • Produces more than one derivation for the same sentence
  • All of the above (correct)
  • For every S in the language, aSb is ______.

    in L

    Define ambiguous grammar.

    <p>An ambiguous grammar is a type of context-free grammar where a single sentence can have more than one valid parse tree.</p> Signup and view all the answers

    Is the grammar 'S -> aS | Sa | 𝜖' ambiguous?

    <p>True</p> Signup and view all the answers

    Which form of the grammar helps eliminate the ambiguity?

    <p>CNF (Chomsky Normal Form)</p> Signup and view all the answers

    In CNF, every production is of the form A -> BC or A -> a. (Fill in the blanks)

    <p>BC, a</p> Signup and view all the answers

    What is the Chomsky hierarchy used for?

    <p>classification of grammar</p> Signup and view all the answers

    What type of grammar is also known as Phrase Structure Grammar?

    <p>Type 0 grammar</p> Signup and view all the answers

    Context Sensitive Grammar can have strings that are empty.

    <p>True</p> Signup and view all the answers

    Type 2 grammars are also known as ____________.

    <p>Context Free Grammar</p> Signup and view all the answers

    Match the type of grammar with its corresponding form of production:

    <p>Type 3 Grammar (Regular) = Production: A -&gt; a | aY Type 1 Grammar (Context Sensitive) = Production: AB -&gt; AbBc Type 0 Grammar (Phrase Structure) = Production: CB -&gt; DB Type 2 Grammar (Context Free) = Production: X -&gt; a</p> Signup and view all the answers

    Write the CFG for the language consisting of any strings of 'a' and 'b'.

    <p>S -&gt; aS | bS | a | b</p> Signup and view all the answers

    Provide the CFG for generating strings that start and end with the same symbol from '0' and '1'.

    <p>S -&gt; 0A0 | 1A1 A -&gt; 0A | 1A | ^</p> Signup and view all the answers

    Create a CFG for the language of even and odd-length palindrome strings over the alphabet {a, b}.

    <p>S -&gt; aSa | bSb | a | b | ^</p> Signup and view all the answers

    Write the CFG for regular expression (a+b)*a(a+b)a(a+b).

    <p>S -&gt; XaXaX X -&gt; aX | bX | ^</p> Signup and view all the answers

    Write a CFG for the language where the number of 0's is equal to the number of 1's.

    <p>S -&gt; 0S1 | 1S0 | ^</p> Signup and view all the answers

    Define the set Vc.

    <p>V1 U V2 U {Sc}</p> Signup and view all the answers

    What are the first two steps in deriving x in Gc?

    <p>Sc -&gt; S1 S2, S1 S2 -&gt; *x1 S2</p> Signup and view all the answers

    In the context of Kleene (), what does L1 contain?

    <p>Strings of the form x1x2 ... xk, where each xi ∈ L1</p> Signup and view all the answers

    How is the language L1* generated?

    <p>By including the production S -&gt; S1S | ^ in P</p> Signup and view all the answers

    What is the final step in converting a Context-Free Grammar (CFG) to Chomsky Normal Form (CNF)?

    <p>Shorten the string of NT to length 2</p> Signup and view all the answers

    Which step is not required in the process of converting a CFG to CNF if there are no epsilon (^) productions?

    <p>Step 1</p> Signup and view all the answers

    In the Union operation for Context-Free Grammars, if L1 and L2 are context-free languages, the language L1 U L2 will also be a context-free language.

    <p>True</p> Signup and view all the answers

    In the Concatenation operation for Context-Free Grammars, a grammar Gc generating L1L2 is denoted by Gc= (Vc, Ʃ, Sc, ___).

    <p>Pc</p> Signup and view all the answers

    Match the following components of the CFG conversion process to their respective descriptions:

    <p>Step 2 = Eliminate Unit Productions Step 3 = Replace all mixed strings with solid nonterminals Step 4 = Shorten the string of nonterminals to length 2</p> Signup and view all the answers

    Study Notes

    Theory of Computation

    Unit 3: Context Free Grammar

    Chomsky Hierarchy

    • Classification of grammar:
      • Unrestricted grammar (type 0)
      • Context sensitive grammar (type 1)
      • Context free grammar (type 2)
      • Regular grammar (type 3)

    Type 0 Grammar (Phrase Structure Grammar)

    • Productions are of the form: α → β, where α and β can be strings of terminal and non-terminal symbols.
    • Example: S → ACaB, Bc → acB, CB → DB, aD → Db

    Type 1 Grammar (Context Sensitive Grammar)

    • Productions are of the form: αAβ → αγβ, where A is non-terminal, and α, β, and γ are strings of terminals and non-terminals.
    • Example: AB → AbBc, A → bcA, B → b

    Type 2 Grammar (Context Free Grammar)

    • Productions are of the form: A → α, where A is non-terminal, and α is a string of terminals and non-terminals.
    • Example: S → Xa, X → a, X → aX, X → abc

    Type 3 Grammar (Linear or Regular Grammar)

    • Productions are of the form: A → a or A → aB, where A and B are non-terminals, and a is a terminal.
    • Example: X → a | aY, Y → b

    Hierarchy of Grammar

    • Type 3 (Regular) is a subset of Type 2 (Context Free), which is a subset of Type 1 (Context Sensitive), which is a subset of Type 0 (Unrestricted)

    Context Free Grammar

    • A context free grammar (CFG) is a 4-tuple: G = (V, Σ, S, P)
    • V is a finite set of non-terminals
    • Σ is a disjoint finite set of terminals
    • S is an element of V and is the start symbol
    • P is a finite set of productions of the form: A → α, where A is non-terminal and α is a string of terminals and non-terminals

    Context Free Language

    • A language is a context free language (CFL) if there is a CFG that generates it.

    CFG Examples

    • Write CFG for:
      • either a or b: S → a | b
      • a+: S → aS | a
      • a*: S → aS | ^
      • (ab)*: S → abS | ^
      • any string of a and b: S → aS | bS | a | b
    • Write CFG for:
      • ab*: S → aX, X → ^ | bX
      • ab: S → XY, X → aX | ^, Y → bY | ^
      • (a+b)*: S → aS | bS | ^
      • a(a+b)*: S → aX, X → aX | bX | ^
    • Write CFG for:
      • a* | b*: S → A | B, A → ^ | aA, B → ^ | bB
      • (011+1)(01): S → AB, A → 011A | 1A | ^, B → 01B | ^
      • balanced parenthesis: S → [] | {} | [S] | {S} | ^
    • Write CFG for:
      • at least three times: S → A1A1A1A, A → 0A | 1A | ^
      • must start and end with same symbol: S → 0A0 | 1A1, A → 0A | 1A | ^
      • language of even & odd length palindrome string over {a,b}: S → aSa | bSb | a | b | ^
      • no. of a and no. of b are same: S → aSb | bSa | ^
    • Write CFG for:
      • regular expression (a+b)*a(a+b)a(a+b): S → XaXaX, X → aX | bX | ^
      • number of 0's and 1's are same: S → 0S1 | 1S0 | ^
      • L={aibjck | i=j or j=k}: S → AB, A → aAb | ab, B → cB | c, or S → CD, C → aC | a, D → bDc | bc

    Recursive Definitions

    • Example: CFG for {a,b}*: S → aS | bS | ^
    • Recursive definition of a language L: S ∈ L, aS ∈ L, bS ∈ L, and no other strings are in L.### Recursive Definition of Palindrome
    • A CFG (Context-Free Grammar) is defined as S → aSa | bSb | a | b, where Σ = {a, b} and L = {aSa, bSb, a, b}.
    • Any string S in L can be generated as aSa or bSb, and no other strings are in L.

    Recursive Definition of a Language

    • A CFG is defined as S → b, and for any string S in L, aSb is in L.
    • The language L consists of all strings of the form b, where n ≥ 0.

    FA to Regular Grammar

    • A FA (Finite Automaton) can be converted to a regular grammar.
    • The grammar rules are derived from the transitions of the FA.

    Derivation

    • A derivation is a way to find whether a string belongs to a given grammar or not.
    • There are two types of derivation: leftmost derivation and rightmost derivation.

    Leftmost Derivation

    • A leftmost derivation is a derivation where at every step, the leftmost non-terminal is replaced.
    • The parse tree represents the structure of the derivation.

    Rightmost Derivation

    • A rightmost derivation is a derivation where at every step, the rightmost non-terminal is replaced.
    • It is also called canonical derivation.

    Ambiguous Grammar

    • An ambiguous grammar is a grammar that produces more than one leftmost or rightmost derivation for the same sentence.
    • Example: S → S+S | SS | (S) | a, output string: a+aa.

    Unambiguous Grammar

    • An equivalent unambiguous grammar is a grammar that produces only one leftmost or rightmost derivation for the same sentence.
    • Example: S → S+T | T, T → TF | F, F → (S) | a, output string: a+aa.

    Simplified Forms and Normal Forms

    • Simplified forms and normal forms of a grammar are used to simplify the grammar and remove unnecessary productions.

    Nullable Variable

    • A nullable variable in a CFG is a variable that can be derived to the empty string.
    • A variable is nullable if it is possible to derive the empty string from it.

    Eliminate ˄ Production

    • A production of the form A → ˄ can be eliminated by replacing A with ˄ in all productions containing A on the RHS.

    A-Derivable

    • A variable is A-derivable if it can be derived from A using a sequence of productions.
    • A variable is A-derivable if it can be derived from A using a sequence of productions, and the production is of the form A → B.### Unit Production & Elimination of Unit productions
    • A production of the form A→B is termed as unit production, where A and B are non-terminals.
    • Algorithm to eliminate unit productions:
      • Initialize P1 to be P.
      • For each A ∈ V, find the set of A-derivable variables.
      • For every pair (A, B) such that B is A-derivable and every non-unit production B→α, add the production A→α to P1 if it is not already present in P1.

    Elimination of Unit Productions

    • Example: Eliminate unit productions from the given CFG: S→ABA|BA|AA|AB|A|B, A→aA|a, B→bB|b
    • Steps:
      • Remove unit productions S→A and S→B
      • Resulting CFG: S→ABA|BA|AA|aA|a|bB|b, A→aA|a, B→bB|b

    CFG to CNF (Chomsky Normal Form)

    • A CFG is in CNF if every production is one of the two forms:
      • A→a, where A is a non-terminal and a is a terminal
      • A→BC, where A, B, and C are non-terminals
    • Steps to convert CFG to CNF:
      1. Eliminate ʌ-productions
      2. Eliminate unit productions
      3. Restrict the right side of productions to single terminal or string of two or more non-terminals
      4. Final step of CNF: shorten the string of NT to length 2

    Examples of CFG to CNF

    • Example 1: Convert CFG to CNF: S→AAC, A→aAb|ʌ, C→aC|a
    • Steps:
      • Eliminate ʌ-production: A→aAb|ab
      • Eliminate unit productions: S→AAC|AC|aC, A→aAb|ab, C→aC|a
      • Resulting CNF: S→AX1, X1→AC, A→PQ, Q→AQ, C→PC, P→a, Q→b
    • Example 2: Convert CFG to CNF: S→aAbB, A→Ab|b, B→Ba|a
    • Steps:
      • Eliminate unit productions: S→aAbB, A→Ab|b, B→Ba|a
      • Resulting CNF: S→PT1, T1→AT2, T2→QB, A→AQ|b, B→BP|a, P→a, Q→b

    Backus-Naur Form (BNF)

    • BNF is a notation technique for context-free grammar.
    • It is often used to describe the syntax of a language used in computing.
    • Variables written between < > are non-terminals.
    • Vertical bar ‘|’ indicates an alternate choice.
    • […] is used to enclose an optional specification.

    Union, Concatenation, and Kleene's of CFG

    • Theorem: If L1 and L2 are context-free languages, then the languages L1 U L2, L1L2, and L1* are also CFLs.
    • Constructive proof: Starting with CFGs G1 = (V1, Σ, S1, P1) and G2 = (V2, Σ, S2, P2) generating L1 and L2, respectively, we show how to construct a new CFG for each of the three cases:
      1. Gu = (Vu, Σ, Su, Pu) generating L1 U L2
      2. Gc = (Vc, Σ, Sc, Pc) generating L1L2
      3. G* = (V, Σ, S, P) generating L1*

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Description

    This quiz covers the fundamentals of Context Free Grammar in the Theory of Computation, specifically in Unit-3. Test your understanding of the concepts taught by Prof. Dixita B.Kagathara.

    More Quizzes Like This

    EP 1
    41 questions

    EP 1

    FavoredDivisionism avatar
    FavoredDivisionism
    Use Quizgecko on...
    Browser
    Browser