2. Course Objectives:
This course is designed to enable the students to
study and mathematically model various abstract
computing machines that serve as models for
computations and examine the relationship between
these automata and formal languages.
3. Course Outline
Regular expressions, TG, DFA and NFAs. Core
concepts of Regular Languages and Finite
Automata; Moore and Mealy Machines, Decidability
for Regular Languages; Non-regular Languages;
Transducers (automata with output). Context-free
Grammar and Languages; Decidability for Context-
free Languages; Non-context-free Languages;
Pushdown Automata, If time allows we will also
have a short introduction to Turing machines.
4. Course Organization
Text Book:
i) Denial I. A. Cohen Introduction to Computer Theory,
Second Edition, John Wiley & Sons.
Reference Books:
i) Automata, Computability and Complexity: Theory and
Applications, by Elaine Rich, 2011
ii) An Introduction to Formal Languages and Automata, by Peter
Linz, 4th edition, Jones & Bartlett Publishers, 2006
iii)Theory of Automata, Formal Languages and Computation, by S.
P. Eugene, Kavier, 2005, New Age Publisher
Weights: Assignments 10%
Quizzes 5%
Mid-term 25%
Final Exam 60%
5. Schedule of Lectures
Lect.# Topics/Contents
1 Introduction to Automata theory, Its background, Mathematical Preliminaries,
Sets, Functions, Graphs, Proof Techniques
2 Formal Languages, Introduction to defining languages, alphabet, language,
word, null string, length of a string, reverse of a string, Palindrome, Kleene
closure.
3 Formal definition of Regular Expressions, Defining languages with regular
expressions, Languages associated with regular expressions.
4 Equality of Regular Expressions, Introducing the language EVEN-EVEN.
5 More examples related to regular expressions.
6 Introducing Finite Automata., Defining languages using Finite Automata.
Constructing Finite Automata for different languages.
7 Recognizing the language defined by the given Finite Automata.
8 More examples related to Finite Automata.
9 Transition Graphs with examples, Generalized Transition Graphs, Non-
determinism in case of Transition Graphs.
10 Non-deterministic FA’s. Differences between FA, TG and NFA.
11 Sessional I
6. Schedule of Lectures
Lect.# Topics/Contents
12 Discussion on the solution of S-I
13 Kleene’s Theorem, Algorithm for turning TGs into REs
14 Kleene’s Theorem, Algorithm for turning REs into FAs
15 Different Rules for turning Res into FAs
16 Nondeterminism, NFA, converting NFA into FA. Union of two FAs using
NFA.
17 Finite Automata with output, Moore’s machines and Mealy machines with
examples. 1’s Complement machine, Increment machine.
18 Theorems for Converting Moore machines into Mealy machines and vice
versa.
19 Transducers as models of sequential circuits.
20 Regular Languages, Closure properties (i.e. , Concatenation and Kleene
closure) of Regular Languages with examples.
21 Complements and Intersections of Regular Languages, Theorems relating to
regular languages and the related examples.
22 Non-Regular Languages, The pumping Lemma, Examples relating to
Pumping Lemma.
7. Schedule of Lectures
23 Sessional-II
24 Decidability, decision procedure, Blue-paint method, Effective decision
procedure to prove whether two given RE’s or FA’s are equivalent. Myhill-
Nerode theorem, Related Examples.
25 Context-Free Grammars, CFG’s for Regular Languages with examples.
CFG’s for non-regular languages.
26 CFG’s of PALINDROME, EQUAL and EVEN-EVEN languages, Backus-
Naur Form.
27 Parse Trees, Examples relating to Parse Trees, Lukasiewicz notation, Prefix
and Postfix notations and their evaluation.
28 Ambiguous and Unambiguous CFG’s, Total language tree. Regular
Grammars, Semi-word, Word, Working String, Converting FA’s into
CFG’s.
29 Regular Grammars, Constructing Transition Graphs from Regular
Grammars. Killing null productions. Killing unit productions,
30 Chomsky Normal form with examples, Left most derivations.
Pushdown Automata, Constructing PDA’s for FA’s, Pushdown stack.
8. Some basics
• Automaton = A self-operating machine or
mechanism (Dictionary definition), plural is
Automata.
• Automata = abstract computing devices
• Automata theory = the study of abstract
machines (or more appropriately, abstract
'mathematical' machines or systems), and the
computational problems that can be solved
using these machines.
• Mathematical models of computation
• Finite automata
• Push-down automata
• Turing machines
9. History
• 1930s : Alan Turing defined machines more powerful
than any in existence, or even any that we could
imagine – Goal was to establish the boundary
between what was and was not computable.
• 1940s/1950s : In an attempt to model “Brain
function” researchers defined finite state
machines.
• Late 1950s : Linguist Noam Chomsky began the
study of Formal Grammars.
• 1960s : A convergence of all this into a formal
theory of computer science, with very deep
philosophical implications as well as practical
applications (compilers, web searching, hardware,
A.I., algorithm design, software engineering,…)
17. 17
Different Kinds of Automata
Automata are distinguished by the temporary memory
• Finite Automata: no temporary memory
• Pushdown Automata: stack
• Turing Machines: random access memory
23. 23
}
3
,
2
,
1
{
A
A set is a collection of elements
SETS
}
,
,
,
{ airplane
bicycle
bus
train
B
We write
A
1
B
ship
24. 24
Set Representations
C = { a, b, c, d, e, f, g, h, i, j, k }
C = { a, b, …, k }
S = { 2, 4, 6, … }
S = { j : j > 0, and j = 2k for some k>0 }
S = { j : j is nonnegative and even }
finite set
infinite set
25. 25
A = { 1, 2, 3, 4, 5 }
Universal Set: all possible elements
U = { 1 , … , 10 }
1 2 3
4 5
A
U
6
7
8
9
10
26. 26
Set Operations
A = { 1, 2, 3 } B = { 2, 3, 4, 5}
• Union
A U B = { 1, 2, 3, 4, 5 }
• Intersection
A B = { 2, 3 }
• Difference
A - B = { 1 }
B - A = { 4, 5 }
U
A B
2
3
1
4
5
2
3
1
Venn diagrams
4
5
34. 34
Powersets
A powerset is a set of sets
Powerset of S = the set of all the subsets of S
S = { a, b, c }
2S
= { , {a}, {b}, {c}, {a, b}, {a, c}, {b, c}, {a, b, c} }
Observation: | 2S
| = 2|S|
( 8 = 23
)
35. 35
Cartesian Product
A = { 2, 4 } B = { 2, 3, 5 }
A X B = { (2, 2), (2, 3), (2, 5), ( 4, 2), (4, 3), (4, 5) }
|A X B| = |A| |B|
Generalizes to more than two sets
A X B X … X Z
37. 37
Let A & B be sets. A binary relation “R” from A to B
R = {(x1, y1), (x2, y2), (x3, y3), …}
Where and
R ⊆ A x B
xi R yi to denote
e. g. if R = ‘>’: 2 > 1, 3 > 2, 3 > 1
RELATIONS
A
xi B
yi
R
b
a
)
,
(
38. 38
GRAPHS
A directed graph
• Nodes (Vertices)
V = { a, b, c, d, e }
• Edges
E = { (a,b), (b,c), (b,e),(c,a), (c,e), (d,c), (e,b), (e,d) }
node
edge
a
b
c
d
e