- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Give the examples of a context free language that are not regular?
A context-free grammar (CFG) consisting of a finite set of grammar rules is a quadruple (V, T, P, S)
Where,
V is a variable (non terminals).
T is a set of terminals.
P is a set of rules, P: V→ (V ∪ T)*, i.e., the left-hand sides of the production rule. P does have any right context or left context.
S is the start symbol.
By using the rules of any language, we can derive any strings in that language.
For language a* CFG is as follows −
S -> aS
S -> ɛ
Here,
S are the variables.
a and ɛ terminals.
S is the start symbol.
By using these rules, we can derive any number of a's.
For Example, consider string aaaaa as CFG as shown below −
S aS rule 1 aaS rule 1 aaaS rule 1 aaaaS rule 1 aaaaaS rule 1 aaaaaɛ rule 2 aaaaa
Context free language is created by context free grammar and it includes regular languages.
The same context free languages can be generated by multiple context free grammars.
Example 1
Example of language that is not regular but it is context free is { anbn | n >= 0 }
The above example is of all strings that have equal number of a's and b's and the notation a3b3 can be expanded out to aaabbb, where there are three a's and three b's.
The pumping Lemma provides the ability to perform negative test. If the language does not satisfy the pumping lemma, then it can be said that it is not context free. Pumping lemma is mathematical proof which takes time to apply it on context free languages.
Example 2
Consider another example of context free that is not regular.
S -> aSb | ɛ
This example is not regular because we cannot express it with a finite state machine or regular expression. We should be able to count the number of A's and check that number of B's matches. Moreover, it cannot be done with finite state as n could be anything.