Context free languages and Push-down automata

  • Last Updated : 21 Jan, 2014

Question 1
Consider the following languages. gatecs2013.12 Which one of the following statements is FALSE?
Cross
L2 is context-free.
Cross
L1 intersection L2 is context-free.
Cross
Complement of L2 is recursive.
Tick
Complement of L1 is context-free but not regular.


Question 1-Explanation: 
(D) is false. L1 is regular, so its complement would also be regular. L1 is a regular language of the form 0^* 1^* 0^*. L2 on the other hand is a CFL as it can be derived from the following CFG L2 = { 0^p 1^q 0^r | p,q,r>0   And p notEqualTo r } S -> AC|CA C -> 0C0|B A -> 0A|0 B -> 1B|epsilon If coming up with a CFG for L2 is difficult, one can intuitively see that by reducing it to a simpler problem. L2 is very similar to a known CFL L3 = { a^m b^l | m notEqualTo n } (A) L2 is context free, which is true [CORRECT] (B) L1 intersection L2 is context free, which is again true because L1 is a regular language and L2 is a CFL. RL union CFL is always a CFL. Hence [CORRECT] (C) Complement of L2 is recursive, which is true due to the fact that complement of a CFL is CSL for sure (Context sensitive language), which in turn (CSL) is a subset of recursive languages. Hence [CORRECT] (D) Complement of L1 is context free but not regular, which is false due to closure laws of regular languages. Complement of a RL is always a RL. Hence [INCORRECT]   This solution is contributed by Vineet Purswani .
Question 2
Which of the following pairs have DIFFERENT expressive power?
Cross
Deterministic finite automata(DFA) and Non-deterministic finite automata(NFA)
Tick
Deterministic push down automata(DPDA)and Non-deterministic push down automata(NPDA)
Cross
Deterministic single-tape Turing machine and Non-deterministic single-tape Turing machine
Cross
Single-tape Turing machine and multi-tape Turing machine


Question 2-Explanation: 

NDPDA can handle languages or grammars with ambiguity, but DPDA cannot handle languages with ambiguity and any context-free grammar.

Question 3

Let P be a regular language and Q be context-free language such that Q \subseteq P. (For example, let P be the language represented by the regular expression p*q* and Q be {pnqn|n \in N}). Then which of the following is ALWAYS regular? (A) P \cap Q (B) P - Q (C) \sum * - P (D) \sum * - Q

Cross

A

Cross

B

Tick

C

Cross

D



Question 3-Explanation: 

1. P ∩ Q would be Q, due to the given fact that Q ⊆ P, hence context free but not regular. 2. P − Q = P ∩ Q might not even be a context free language, due to the closure properties of context free languages. 3. Σ∗ − P is equivalently complement of P, hence regular. Refer to closure laws of regular languages. 4. Σ∗ − Q is equivalently complement of Q, hence it might not even be a context free language. Refer to closure laws of CFLs. Reference: https://www.geeksforgeeks.org/closure-properties-of-context-free-languages/ See http://www.geeksforgeeks.org/automata-theory-set-4/ This solution is contributed by Vineet Purswani. 

Question 4
Consider the language L1,L2,L3 as given below. L1={0^{p}1^{q} | p,q \in N} L2={0^{p}1^{q} | p,q \in N and p=q} L3={0^{p}1^{q}0^{r} | p,q,r \in N and p=q=r} Which of the following statements is NOT TRUE?
Cross
Push Down Automata (PDA) can be used to recognize L1 and L2
Cross
L1 is a regular language
Tick
All the three languages are context free
Cross
Turing machine can be used to recognize all the three languages


Question 4-Explanation: 
L1 is regular. Its DFA is given as
       gate2011A35
L2 is not regular, can be proved using pumping lemma (refer to Ullman). But L2 is CFL.
        S → AB
        A → 0A|ε
        B → 1B|ε
L3 is not CFL, can be proved using pumping lemma (refer to Ullman). But L3 is Recursive. gate2011A35b Every regular language is also a CFL. So PDA can be used to recognized L1 and L2. As a CFL and Regular language is algo a Recursive language. Hence, Turing machine can be used to recognise L1, L2 and L3. L2 is not regular, can be proved using pumping lemma (refer to Ullman). But L2 is CFL.
        S → AB
        A → 0A|ε
        B → 1B|ε
L3 is not CFL, can be proved using pumping lemma (refer to Ullman). But L3 is Recursive. Every regular language is also a CFL. So PDA can be used to recognised L1 and L2. As a CFL and Regular language is algo a Recursive language. Hence, turing machine can be used to recognise L1, L2 and L3. Source: http://clweb.csa.iisc.ernet.in/rahulsharma/gate2011key.html
Question 5
Consider the languages L1 = {0i1j | i != j}. L2 = {0i1j | i = j}. L3 = {0i1j | i = 2j+1}. L4 = {0i1j | i != 2j}.
Cross
Only L2 is context free
Cross
Only L2 and L3 are context free
Cross
Only L1 and L2 are context free
Tick
All are context free


Question 5-Explanation: 
  All these languages have valid CFGs that can derive them. Hence, all of them are CFLs. Intuitively, (A) & (B) are well known CFLs and CFGs for (C) & (D) could be made by little modifications in A & B’s CFGs.   img_40   This solution is contributed by vineet purswani.
Question 6
S -> aSa|bSb|a|b; The language generated by the above grammar over the alphabet {a,b} is the set of
Cross
All palindromes
Tick
All odd length palindromes.
Cross
Strings that begin and end with the same symbol
Cross
All even length palindromes


Question 6-Explanation: 
The possible palindrome generated by above grammar can be of odd length only as there is no rule for S -> \epsilon For example generated palindromes are aba, aaa, bab, ababa, aaaaa, ..
Question 7
Let L = L1∩L2, where L1 and L2 are languages as defined below:
L1 = {a^{m}b^{m}ca^{n}b^{n} | m, n >= 0 }
L2 = {a^{i}b^{j}c^{k} | i, j, k >= 0 }
Then L is
Cross
Not recursive
Cross
Regular
Tick
Context free but not regular
Cross
Recursively enumerable but not context free.


Question 7-Explanation: 
The language L1 accept strings {c, abc, abcab, aabbcab, aabbcaabb, …} and L2 accept strings {a, b, c, ab, abc, aabc, aabbc, … }. Intersection of these two languages is L1 \cap L2 = \{a^{k}b^{k}c | k >= 0\} which is context free, but not regular.
Question 8
The language L= {0i21i | i≥0 } over the alphabet {0,1, 2} is:
Cross
not recursive
Tick
is recursive and is a deterministic CFL.
Cross
is a regular language.
Cross
is not a deterministic CFL but a CFL.


Question 8-Explanation: 
Let us first design a deterministic pushdown automata for the given language.
  • For each occurrence of ‘0’ , we PUSH X in the stack.
  • When ‘2’ appears, no stack operation is performed. But, state of the automata is changed.
  • For each occurrence of ‘1’ , we POP X from the stack.
  • If at the end Z0 is on the stack top then input string is accepted
We also design a Turing machine for the given language.
  • When ‘0’ appears in the input string , we replace it with X .Then, traverse to the rightmost corner and replace ‘1’ with Y.
  • We go back to the leftmost ‘0’ and repeat the above process.
  • While traversing rightwards from the beginning of the input string, if after X, ‘2’ appears and after ‘2’, Y appears then we reach the HALT state. Thus, the given language is recursive. Every recursive language is a CFL. Thus, option (B) is the answer. Please comment below if you find anything wrong in the above post.
Question 9
Consider the CFG with {S,A,B) as the non-terminal alphabet, {a,b) as the terminal alphabet, S as the start symbol and the following set of production rules
S --> aB        S --> bA
B --> b         A --> a
B --> bS        A --> aS
B --> aBB       A --> bAA
Which of the following strings is generated by the grammar?
Cross
aaaabb
Cross
aabbbb
Tick
aabbab
Cross
abbbba


Question 9-Explanation: 
Given below production rules.
S --> aB        S --> bA
B --> b         A --> a
B --> bS        A --> aS
B --> aBB       A --> bAA
We can derive aabbab using below sequence
S  -> aB      [Using S --> aB] 
   -> aaBB    [Using B --> aBB]
   -> aabB    [Using B --> b]
   -> aabbS   [Using B --> bS]
   -> aabbaB  [Using S --> aB]
   -> aabbab  [Using B --> b]
Question 10

For the correct answer strings to above question, how many derivation trees are there?

Cross

1

Tick

2

Cross

3

Cross

4



Question 10-Explanation: 

When it asks about the no of derivations tree, we should consider either left most derivation(LMD) or right most derivations(RMD), but not both. Here two left most derivations are possible for the correct string of the previous question "aabbab" from the given grammar. LMD-1 S -> aB [Using S --> aB] -> aaBB [Using B --> aBB] -> aabB [Using B --> b] -> aabbS [Using B --> bS] -> aabbaB [Using S --> aB] -> aabbab [Using B --> b] LMD-2 S -> aB [Using S --> aB] -> aaBB [Using B --> aBB] -> aabSB [Using B --> bS] -> aabbAB [Using S --> bA] -> aabbaB [Using A --> a] -> aabbab [Using B --> b] The Derivation tress are shown below : 

 

There are 93 questions to complete.