# CS 3240: Languages and Computation

## Presentation on theme: "CS 3240: Languages and Computation"— Presentation transcript:

CS 3240: Languages and Computation
Introducing Regular Languages: Deterministic Finite Automata and Regular Expressions

Automata Finite Automata model many design and analysis tasks, e.g.
Lexical analyzer in a compiler Digital cicuit design Keywork searching in texts or on the web. Software for verifying finite state systems, such as communication protocols. Your ATM, vendig machine, Etc. McCulloch&Pitts, Rabin&Scott, Moore, Huffman

Finite State Machine and Finite Automata

Deterministic Finite Automata
A simplest model for computing Deterministic: Machine is in a state. Upon receipt of a symbol will go to a unique state. Finite: Have a finite number of states Automata: (pl. of automaton) Self-operating machine DFA: finite-state machine without ambiguity

DFA and Strings DFA can recognize strings
String is input If DFA ends at accept state, string is recognized A language is called a regular language if some finite automaton recognizes it Let us look at a few example before giving formal mathematical definition

DFA Examples 1 1 start state 1 2 accept state transition
1 1 start state 1 2 accept state transition Note: The alphabet for this example is {0, 1}. Each state has a transition for every symbol in the alphabet Accept all strings that end in 1

DFA Examples 5 3 4 2 1 a b Accept strings of 'a's and 'b's that begin and end with same symbol

DFA Examples 1 Start 2 1 2 1 2 2 1 Keep running count of
1 Start 2 1 2 1 2 2 Keep running count of total of symbols read in mod 3. Accept on 0. 1

DFA Examples Even Odd 1 Strings with an odd number of ones.

DFA Examples '001' 1 '0' '00' 0,1 Strings containing the substring 001

Formal Definition of DFA
A DFA consists of: Alphabet  A set of states Q A transition function δ : Q  Q One start state q0 One or more accepting states F  Q Language accepted by a DFA is the set of strings such that DFA ends at an accepting state Each string is c1c2…cn with ci   States are qi = δ(qi-1,ci ) for i=1…n qn is an accepting state

Can DFA's be designed to accept any string?
No!

Examples Design a DFA to recognize strings that start out with k zeros followed by k ones. Impossible Design a DFA to recognize strings with an equal number of ones and zeros. Design a DFA to recognize strings with an equal number of strings "01" and "10". Possible!

Actually the third one is regular!
1 1 1 1 1 1 DFA to recognize strings with an equal number of strings "01" and "10" 1

DFA More examples

DFA More examples A,B are the input into which the
marble is dropped. The x-levers cause fall either to left or right, but lever reverses upon a marble passing Accept if marble exits through D

Non-Deterministic Finite Automata

NFA and -NFA Nondeterministic Finite Automata 
Same input may produce multiple paths Allows transition with an empty string or transition from one state to different states given a character q1 q2 1 q3 nondeterministic transition q1 q2 empty string transition