ACD Module - 1 Notes
ACD Module - 1 Notes
-------------MODULE-1-------------
Introduction to Automata Theory: Central Concepts of Automata theory, Deterministic Finite
Automata (DFA), Non- Deterministic Finite Automata(NFA) ,Epsilon- NFA, NFA to DFA Conversion,
Minimization of DFA
Alphabets: A symbol is an abstract entity. Letters and digits are examples of frequently used symbol. An
alphabet is a finite, non-empty set of symbol and is denoted by ∑.
Operations on string:
Concatenation: of two strings is formed by writing first string followed by second string with no
space.Ex. V=’a’, W=’cat’ then V.W=’acat’
Reverse: of the string W is obtained by writing the symbols of the string in reverse order and is denoted as W R. ex.
W=’the’ then WR =’eht’.
Length: of a string W, denoted |W| is the number of symbols composing the string. Ex.W=’the’ then
|W|=3
Power of Alphabets:if ∑ is alphabet, the set of all strings of certain length can be expressed from that
alphabet by using exponential notation. Ex. ∑={a,b} then
∑0 = { Ɛ}
∑1={a,b}
1
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
∑2={aa,ab,bb,ba}
∑3 ={aaa,aab,aba,abb,bbb,baa,bab,bba}
∑*=∑0Ս∑1Ս∑2Ս….∑ n
Language: set of strings, all are chosen from ∑*, where ∑ is a particular alphabet is called a language.
L ∑*.
Finite automata are computing devices that accept/recognize regular languages and are used to model
operations of many systems. Their operations can be simulated by a very simple computer program.
Automaton:
A finite automaton (FA, also called a finite-state automaton or a finite-state machine) is a mathematical
tool used to describe processes involving inputs and outputs. An FA can be in one of several states and
can switch between states depending on symbols that it inputs. Once it settles in a state, it reads the next
input symbol, performs some computational task associated with the new input, outputs a symbol, and
switches to a new state depending on the input. Notice that the new state may be identical to the current
state.
DFA: Deterministic Finite Automata
Definition: DFA is a finite automaton in which for each input symbol there is exactly one transition out
of each state
2
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
transitions from a state also) and it is sure (or can determine) to which state the machine enters. So, the
machine is called Deterministic machine. Since it has finite number of states the machine is called
Deterministic finite machine or Deterministic Finite Automaton or Finite State Machine (FSM).
The language accepted by DFA is
L(M) = { w | w ∈ ∑* and δ*(q0, w) ∈ F }
3
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
4
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
5
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
6
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
7
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
8
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
9
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
10
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
11
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
12
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
13
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
NFA is defined as follows: at some point in processing a string on a machine, the machine has a choice of
moves; when this happens, it selects a move in an unspecified way. In other words, there can be zero, one
or more than one transition out of a state with the same label. So the machine must choose which path to
take. This leads us to the observation that a string may have more than one path through the machine that
is each entry in the table for NFA is a set. This represents a relaxation of the rules for defining FA's.
Definition: Let M = (Q, ∑, δ, q0, A) be a DFA where Q is set of finite states, ∑ is set of input alphabets
(from which a string can be formed), δ is transition function from Q x {∑U ε} to 2Q, q0 is the start state
and A is the final or accepting state. The string (also called language) w accepted by an NFA can be
defined in formal notation as:
Examples
14
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
15
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
16
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
17
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
Extended Transition δ*: Describes what happens when we start in any state and follow sequence of
inputs.
Definition:
Let M = (Q, ∑, δ, q0, F) where
Q is non-empty, finite set of states.
∑ is non-empty, finite set of input alphabets.
q0 ∈Q is the start state.
F ⊆ Q is set of accepting or final states.
δ* is extended transition function, which is a mapping from Q X ∑ -> Q. as follows:
i. For any q ∈ Q , δ*(q, ∈)=q
ii. For any q∈Q, y ∈ ∑ *, a ∈ ∑
δ*(q, ya)= δ(δ*(q,y),a)
18
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
19
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
q0∈ Q is the start state.
F ⊆ Q is set of accepting or final states
Ɛ-Closure of a state
Definition:
Ɛ-closure is a set of all vertices p such that there is a path from q to p labelled Ɛ.
Let M = (Q, ∑, δ, q0 , F) be an NFA with M = (Q, ∑, δ, q 0, F) transitions and let S be any subset of Q. The
Ɛ-closure of S denoted as Ɛ(S) is defined by
1. Every element of S is an element of Ɛ(S).
2. For any q Є Ɛ(S) every element of δ(q, Ɛ) is in Ɛ(S)
3. No other element are in Ɛ(S)
0
1 ε
Start q r s
0 ε
1
• ε-closure(q) = { q }
• ε-closure(r) = { r, s}
Examples
20
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
21
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
With an NFA, at any point in a scanning of the input string we may be faced with a choice of any number
of paths to be followed to reach a final state. With a DFA there is never a choice of paths. So, when we
construct a DFA which accepts the same language as a particular NFA, the conversion process effectively
involves merging all possible states which can be reached on a particular input character, from a particular
state, into a single, composite, state which represents all those paths.
Let MN = (QN, ∑, δN, q0 , FN) be an NFA and accepts the language L(MN). There should be an equivalent
DFA MD = (QD , ∑D, δD , q0, FD) such that L(MD) = L(MN). The procedure to convert an NFA to its
equivalent DFA is shown below
Step1: The start state of NFA MN is the start state of DFA MD. So, add q0(which is the start state of NFA)
to QD and find the transitions from this state.
Step2: For each state [qi, qj,….qk] in QD, the transitions for each input symbol in ∑ can be obtained as
shown below:
a =[ql,qm,….qn]say.
Add the transition from [qi, qj,….qk] to [q l, qm,….qn] on the input symbol α iff the state [ql,
qm,….qn] is added to QD in the previous step.
Step3: The state [qa , qb,….qc] ∈ QD is the final state, if at least one of the state in qa, qb, ….. qc∈ AN i.e., at
least one of the component in [qa , qb,….qc] should be the final state of NFA.
22
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
23
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
24
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
25
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
26
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
0
1 ε
Start q r s
0 ε
1
Converts to
0,1
Start q sr
0,1
27
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
28
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
29
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
If MD = (QD, ∑D , δD , q0, FD) is the DFA constructed from NFA MN = (QN , ∑, δ N, q0, FN) by the subset
construction, then L(MD) = L(MN).
Proof: Let |w| =0, that is w= ε. By the basis definitions of δ* for DFA’s and NFA’s both δ*({ q0 }, ε )
and δ*( q0, ε) are {q0}
Let w be of length n+1, and assume the statement for length n. break w as w=xa, where a is the final
symbol of w. by the inductive hypothesis δ*({ q0 }, x )= δ*( q0, x). let both these sets of N’s states be
{p1,p2,…. pk}
Using eqn 2 and the fact that δ*({ q0 }, x )={p1,p2,…. pk}in the inductive part of the definition of δ* for
DFA’s
30
AUTOMATA THEORY AND COMPILER DESIGN- 21CS51
There can be zero or one There can be zero, one or There can be zero, one or
transition from a state on an more number of more number of transitions
input symbol; transitions from a state on from a state with or without
an input symbol an input symbol
Difficult to design The NFA are easier to Easy to construct using
design regular expression
More number of transitions Less number of More number of transitions
transitions compared to NFA
Less powerful since at any More powerful; than DFA More powerful than NFA
point of time it will be in only since it can be in more since at any point of time it
one state than one state will be in more than one
state with or without giving
any input.
Preprocessor
A preprocessor produce input to compilers. They may perform the following functions.
1. Macro processing: A preprocessor may allow a user to define macros that are short hands
for longer constructs.
2. File inclusion: A preprocessor may include header files into the program text.
3. Rational preprocessor: these preprocessors augment older languages with more modern
flow-of-control and data structuring facilities.
4. Language Extensions: These preprocessor attempts to add capabilities to the language by
certain amounts to build-in macro
31