Useful Links
Mathematics
Discrete Mathematics
Automata Theory and Formal Languages
Finite Automata
Deterministic Finite Automata (DFA)
Definition and Structure
States
Alphabet
Transition Function
Start State
Accept States
Language Recognition
Formal Definition of Language Recognition by DFA
Examples of Recognizable Languages
Minimization of DFA
Equivalence of States
Myhill-Nerode Theorem
Minimization Algorithm
Applications of DFAs
Pattern Matching
Lexical Analysis in Compilers
Non-deterministic Finite Automata (NFA)
Definition and Structure
States
Alphabet
Transition Function (including ε-transitions)
Start State
Accept States
Language Recognition
ε-Closure
Subset Construction Method for DFA Conversion
Equivalence of DFA and NFA
Applications of NFAs
Modeling Parallel Processes
Simplified Design of Automata
Regular Languages
Definition and Properties
Closure Properties (Union, Concatenation, Kleene Star)
Decision Properties (Emptiness, Finiteness, Subset, Equality)
Regular Expressions
Syntax and Operators
Conversion from Regular Expressions to NFA
Conversion from NFA/DFA to Regular Expressions
Pumping Lemma
Statement and Usefulness
Proving Non-Regularity of Languages
Context-Free Grammars (CFGs)
Definitions and Components
Variables (Non-terminals)
Terminals (Alphabet)
Production Rules
Start Symbol
Derivations
Leftmost and Rightmost Derivation
Parse Trees and Syntax Trees
Normal Forms
Chomsky Normal Form (CNF)
Greibach Normal Form (GNF)
Conversions between Normal Forms
Applications of CFGs
Language Parsers
Syntax Analysis in Compilers
Natural Language Processing
Limitations of CFGs
Non-Context-Free Languages
The Pumping Lemma for Context-Free Languages
Pushdown Automata (PDA)
Definition and Structure
States, Input Alphabet, Stack Alphabet
Transition Function
Start State and Stack Symbol
Accept States
PDA and CFG Correspondence
From CFG to PDA
From PDA to CFG
Deterministic and Non-deterministic PDA
Differences and Examples
Deterministic Context-Free Languages
Turing Machines
Definition and Structure
States
Tape Alphabet
Transition Function
Start State
Accept and Reject States
Computation Model and Language Recognition
Configurations and Moves
Church-Turing Thesis
Universal Turing Machines
Variants of Turing Machines
Multi-tape Turing Machines
Non-deterministic Turing Machines
Turing Reductions
Decidability and Undecidability
Recursive and Recursively Enumerable Languages
Halting Problem
Reductions and Rice’s Theorem
Chomsky Hierarchy
Classification of Formal Languages
Regular Languages
Context-Free Languages
Context-Sensitive Languages
Recursively Enumerable Languages
Machine Models and Grammar Types Associated with Each Class
Regular Grammars and Finite Automata
Context-Free Grammars and Pushdown Automata
Context-Sensitive Grammars and Linear Bounded Automata
Unrestricted Grammars and Turing Machines
Formal Language Theory
Relations Between Grammar Types and Automata
Operations on Languages
Union, Intersection, Complementation
Homomorphism, Inverse Homomorphism
Language Equivalence and Inclusion
Decision Procedures
Closure Properties Among Different Classes
Applications of Automata and Formal Languages
Compiler Construction
Formal Verification and Model Checking
Cryptography
Artificial Intelligence and Machine Learning
Game Theory and Control Systems
6. Boolean Algebra
First Page
8. Discrete Probability