Grammars and Languages
Introduction
As part of our Formal Languages and Automata Theory, in this blog, we will be heading up for something that we haven't discussed so far. If you have noticed in the previous blog, we discussed that a Finite Automata is something that accepts Regular Language. We didn't discussed much about that in the previous blog but, now we are going to.
Now, we have a basic idea of Chomsky hierarchy of languages. Let's just recall the hierarchy of languages
Grammar
Let's first get habituated with the word 'Grammar'. We all know that grammar means the rules of a language. We all know that every language have grammar. Just like that every language that gets accepted by any automaton also has its own set of rules to construct the language which is grammar.
Let's define grammar formally. Let G be a grammar then it is defined as,
G = ( N, T, P, S )
where,
N is the set of non-terminals
T is the set of Terminals
P is the set of production rules
S is the start symbol of the production
Now, you all must be wondering what are N, T, P and S. Let's get to know about these in the following example:
S -> aSa|A
A -> a|ε
The above are the productions of the language. Which is the production set. Productions are what define language. Let's first keep it that way and know about other things. You can see S and A are the Non-Terminals. the symbol a is a terminal. Whenever we derive some set of strings, we will be starting from one Non-terminal which is, in this case 'S'.
Let's derive a few strings from this grammar:
As we know we should start from start symbol, we start from the symbol S
S -> aSa
S -> aaSaa
S -> aaAaa
S -> aaεaa
S -> aaaa
This grammar generates the language, that accepts the strings a^n where n > 1. This is how we derive a Language from a given grammar.
According to Noam Chomsky, we have 4 types of grammar:
Regular Grammar
Context Free Grammar
Context Sensitive Grammar
Recursively Enumerable Grammar
In detail discussion of these different kind of grammars is a topic of another day.
That's up for today, If you have came to this far, like and share is very much appreciable and subscribe to the news letter to never miss any of the blog posts.
Thank you...
Subscribe to my newsletter
Read articles from Shaik Dadapeer directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Shaik Dadapeer
Shaik Dadapeer
Computer Science enthusiast, just getting started with open source and soon will land on a remote job.