
Introduction to Automata Theory or Theory of Computation
Applications of Automata Theory or Theory of Computation
Basic Fundamentals /Central Concepts of Automata Theory
Basic Fundamentals /Central Concepts of Automata Theory
Language - Language Operations
Formal Language
Grammar or Formal Grammar
Problems
Formal Languages and Chomsky Hierarchy
OUTLINE:
Introduction to Finite Automata (FA)
Model of FA
Formal Definition of FA
Example of FA
Transition Table of FA
Transition Diagram of FA
Example Problems on FA
OUTLINE:
Acceptance of Strings and Languages by FA
Structural Representations: Grammars and Regular Expressions
Automata and Complexity: Decidability and Intractability
OUTLINE:
Definition of DFA
How a DFA Processes Strings
Simpler Notations for DFA’s
Extending the Transition Function to Strings
The Language of DFA
OUTLINE:
Introduction to NFA
Definition of NFA
Extended Transition Function
The Language of NFA
OUTLINE:
Equivalence of NFA and DFA
An Application: Text Search
OUTLINE:
Finite Automata with Epsilon-Transitions(NFA-ϵ)
Uses of ϵ-Transitions
The Formal Notation for an ϵ-NFA
Epsilon-Closures
Extended Transitions and Languages for ϵ-NFA’s
Acceptance of Strings and Languages by ϵ-NFA
OUTLINE:
Equivalence of NFA with and without ϵ-moves (Eliminating ϵ-transitions)
Eliminating ϵ-Transitions (Conversion of NFA with ԑ-transitions to NFA without ϵ-transitions)
Example Problems
OUTLINE:
Conversion of NFA-ϵ (with epsilon) to DFA
Conversion of NFA-ϵ (with epsilon) to Direct DFA
Example Problems
OUTLINE:
Finite Automata with output
Moore Machine-Definition, Example
Mealy Machine-Definition, Example
OUTLINE:
Moore Machine
Mealy Machine
Equivalence of Moore and Mealy machines
Conversion of Mealy to Moore machine
OUTLINE:
Moore Machine
Mealy Machine
Equivalence of Moore and Mealy machines
Conversion of Moore machine to Mealy machine
OUTLINE:
Equivalence of Regular Expressions and Finite Automata (FA)
Kleens Theorem
Conversion of Regular Expressions to NFA with epsilon moves
OUTLINE:
Equivalence of Regular Expressions and Finite Automata (FA)
Kleens Theorem
Conversion of Finite Automata (FA) to Regular Expression
OUTLINE:
Introduction to Pumping Lemma
Statement of Pumping Lemma
Applications of Pumping Lemma
Example problems on Pumping Lemma
OUTLINE:
Closure Operation
Closure Property
Closure Properties for Regular Sets / Regular Languages
Decision Properties for Regular Sets / Regular Languages
Converting among Regular Expressions
OUTLINE:
FSM Equivalence
FSM Equivalence Algorithm
FSM Equivalence -Example Problems
OUTLINE:
Minimization of Deterministic Finite Automata (DFA) part-1
Minimization of Finite State Machine (FSM) / Deterministic Finite Automata (DFA)
Myhill Nerode Theorem
Distinguishable and indistinguishable states
Minimization Algorithm: Table filling algorithm
Example problems
OUTLINE:
Minimization of Deterministic Finite Automata (DFA) part-2
Minimization of Finite State Machine (FSM) / Deterministic Finite Automata (DFA)
Myhill Nerode Theorem
Distinguishable and indistinguishable states
Minimization Algorithm: Table filling algorithm
Example problems
OUTLINE:
Definition of Formal Grammar
Left-linear and Right-linear grammars
Regular Grammars
Examples
OUTLINE:
Definition of Formal Grammar
Left-linear and Right-linear grammars
Regular Grammars
Regular Grammars and Finite Automata
Conversion of Regular Grammars to Finite Automata
Conversion of Finite Automata to Regular Grammars
Example problems
OUTLINE:
Definition of Context-Free Grammars
Derivations Using a Grammar
Leftmost and Rightmost Derivations
The Language of a Grammar
Sentential Forms
OUTLINE:
Parse Tree or Derivation Tree
Applications of CFGs: Parser and Markup Languages
OUTLINE:
Ambiguity in Grammars and Languages
Ambiguous Grammar
Example problems on ambiguous grammars
OUTLINE:
Ambiguity in Grammars and Languages
Ambiguous Grammar
Eliminating Ambiguity in CFGs
Example problems on ambiguous grammars
OUTLINE:
Introduction of PDA
Model of PDA
Formal Definition of PDA
Instantaneous Description (ID) of PDA
Example of PDA
Graphical Notations for PDA: Transition Table & Transition Diagram
Accepted Languages of PDA
OUTLINE:
Accepted Languages of PDA
Acceptance of Languages by Final State of PDA
Acceptance of Languages by Empty Stack or Null Stack of PDA
Acceptance of Languages by both Final State and Empty Stack or Null Stack of PDA
Example problems with solutions
OUTLINE:
Design of PDA for the given CFL
Pushdown Automata (PDA)
Context Free Language (CFL)
Example problem-1
OUTLINE:
Design of PDA for the given CFL
Pushdown Automata (PDA)
Context Free Language (CFL)
Example problem-2
OUTLINE:
Equivalence of PDA’s and CFL’s
Equivalence of PDA's and CFG's
Conversion of CFG to PDA
Pushdown Automata (PDA)
Context Free Language (CFL)
Example Problem
OUTLINE:
Equivalence of PDA’s and CFL’s
Equivalence of PDA's and CFG's
Conversion of PDA to CFG
Example Problem
OUTLINE:
Deterministic Pushdown Automata (DPDA) Definition
DPDA Conditions
Checking whether a PDA is DPDA or not
DPDA Example Problems
Deterministic Context Free Language (DCFL)
Relation of Regular Language, CFL and DCFL
Prefix property of CFL
OUTLINE:
Normal forms for CFGs
A useful substitution rule
Removing useless symbols
Removing useless productions
Example problems
OUTLINE:
Normal forms for CFGs
Removing Null productions
Removing Unit productions
Example problems
OUTLINE:
Normal forms for CFGs
Removing Null productions
Removing Unit productions
Removing Useless symbols and useless productions
Chomsky Normal Form (CNF): Definition
Reducing a CFG to Chomsky Normal Form (CNF)
Solving Example Problem
OUTLINE:
Normal forms for CFGs
Chomsky Normal Form (CNF)
Reducing a CFG to Chomsky Normal Form (CNF)
Greibach Normal Form (GNF): Definition
Reducing a CFG to Greibach Normal Form (GNF)
Solving Example Problems
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.