Formal Languages and Automata theory presents the theoretical aspects of computer science, and helps define infinite languages in finite ways; construct algorithms for related problems and decide whether a string is in language or not. These are of practical importance in construction of compilers and designing of programming languages, thus establishing the course as a core paper in third/fourth year of various universities.
This book adopts a holistic approach to learning from fundamentals of formal languages to undecidability problems. Its organization follows the order in which the course is taught over the years, and is well-accepted by the student community. The contents of each topic motivate the reader to easily understand the concepts rather than remember and reproduce.