What you'll learn:
- Develop a formal notation for strings, languages and machines.
- Design finite automata to accept a set of strings of a language.
- Prove that a given language is regular and apply the closure properties of languages.
- Design context free grammars to generate strings from a context free language and convert them into normal forms.
- Prove equivalence of languages accepted by Push Down Automata and languages generated by context free grammars.
- Identify the hierarchy of formal languages, grammars and machines
- Distinguish between computability and non-computability and Decidability and undecidability.
Formal Languages and Automat Theory deals with the concepts of automata, formal languages, grammar, algorithms, computability, decidability, and complexity.
The reasons to study Formal Languages and Automat Theory are Automata Theory provides a simple, elegant view of the complex machine that we call a computer.
Automata Theory possesses a high degree of permanence and stability, in contrast with the ever-changing paradigms of the technology, development, and management of computer systems. Further, parts of the Automata theory have direct bearing on practice, such as Automata on circuit design, compiler design, and search algorithms; Formal Languages and Grammars on compiler design; and Complexity on cryptography and optimization problems in manufacturing, business, and management.
The purpose of this course is to acquaint the student with an overview of the theoretical foundations of computer science from the perspective of formal languages.
At the end of the course, the students will be able to:
Provide introduction to some of the central ideas of theoretical computer science from the perspective of formal languages.
Introduce the fundamental concepts of formal languages, grammars and automata theory.
Classify machines by their power to recognize languages.
Employ finite state machines to solve problems in computing.
Understand deterministic and non-deterministic machines.
Understand the differences between decidability and undecidability.