0% found this document useful (0 votes)
28 views15 pages

Intro To Automata Theory

This document provides an introduction to automata theory and the theory of computation. It discusses what automata theory is, focusing on abstract computing devices and machines. Alan Turing is presented as a pioneer who studied abstract machines called Turing machines before computers existed. The document then gives a historical perspective on the theory of computation from the 1930s to today. It also covers key concepts such as alphabets, strings, languages, grammars, and finite automata. Examples are provided to illustrate these concepts.

Uploaded by

arpitbhainader
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views15 pages

Intro To Automata Theory

This document provides an introduction to automata theory and the theory of computation. It discusses what automata theory is, focusing on abstract computing devices and machines. Alan Turing is presented as a pioneer who studied abstract machines called Turing machines before computers existed. The document then gives a historical perspective on the theory of computation from the 1930s to today. It also covers key concepts such as alphabets, strings, languages, grammars, and finite automata. Examples are provided to illustrate these concepts.

Uploaded by

arpitbhainader
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

Introduction to Theory of

Computation

1
What is Automata Theory?
■ Study of abstract computing devices, or
“machines”
■ Automaton = an abstract computing device
■ Note: A “device” need not even be a physical
hardware!
■ A fundamental question in computer science:
■ Find out what different models of machines can do
and cannot do
■ The theory of computation
■ Computability vs. Complexity

2
(A pioneer of automata theory)

Alan Turing (1912-1954)


■ Father of Modern Computer
Science
■ English mathematician
■ Studied abstract machines called
Turing machines even before
computers existed
■ Heard of the Turing test?

3
Theory of Computation: A
Historical Perspective
1930s • Alan Turing studies Turing machines
• Decidability
• Halting problem
1940-1950s • “Finite automata” machines studied
• Noam Chomsky proposes the
“Chomsky Hierarchy” for formal
languages
1969 Cook introduces “intractable” problems
or “NP-Hard” problems
1970- Modern computer science: compilers,
computational & complexity theory evolve
4
Languages & Grammars
■ Languages: “A language is a
Or “words” collection of sentences of
finite length all constructed
from a finite alphabet of
symbols”
■ Grammars: “A grammar can
be regarded as a device that
enumerates the sentences of
a language” - nothing more,
nothing less

■ N. Chomsky, Information and


Control, Vol 2, 1959

Image source: Nowak et al. Nature, vol 417, 2002


5
The Chomsky Hierachy
• A containment hierarchy of classes of formal
languages

Regul
ar Context-
Context-
(DFA) free Recursively-
sensitive
(PDA) enumerable
(LBA)
(TM)

6
The Central Concepts of
Automata Theory

7
Alphabet
An alphabet is a finite, non-empty set of
symbols
■ We use the symbol ∑ (sigma) to denote an
alphabet
■ Examples:
■ Binary: ∑ = {0,1}
■ All lower case letters: ∑ = {a,b,c,..z}
■ Alphanumeric: ∑ = {a-z, A-Z, 0-9}
■ DNA molecule letters: ∑ = {a,c,g,t}
■ …

8
Strings
A string or word is a finite sequence of symbols
chosen from ∑
■ Empty string is ε (or “epsilon”)

■ Length of a string w, denoted by “|w|”, is equal


to the number of (non- ε) characters in the string
■ E.g., x = 010100 |x| = 6

■ xy = concatentation of two strings x and y

9
Powers of an alphabet
Let ∑ be an alphabet.

■ ∑k = the set of all strings of length k

■ ∑* = ∑0 U ∑1 U ∑2 U …

■ ∑+ = ∑ 1 U ∑ 2 U ∑ 3 U …

10
Languages
L is a said to be a language over alphabet ∑, only if L ⊆ ∑*
🡺 this is because ∑* is the set of all strings (of all possible
length including 0) over the given alphabet ∑
Examples:
1. Let L be the language of all strings consisting of n 0’s
followed by n 1’s:
L = {ε, 01, 0011, 000111,…}
2. Let L be the language of all strings of with equal number of
0’s and 1’s:
L = {ε, 01, 10, 0011, 1100, 0101, 1010, 1001,…}
Canonical ordering of strings in the language

Definition: Ø denotes the Empty language


■ Let L = {ε}; Is L=Ø?
NO
11
The Membership Problem
Given a string w ∈∑*and a language L
over ∑, decide whether or not w ∈L.

Example:
Let w = 100011
Q) Is w ∈ the language of strings with
equal number of 0s and 1s?

12
Finite Automata
■ Some Applications
■ Software for designing and checking the behavior
of digital circuits
■ Lexical analyzer of a typical compiler
■ Software for scanning large bodies of text (e.g.,
web pages) for pattern finding
■ Software for verifying systems of all types that
have a finite number of states (e.g., stock market
transaction, communication/network protocol)

13
Finite Automata : Examples
action
■ On/Off switch state

■ Modeling recognition of the word “then”

Start state Transition Intermediate Final state


state
14
Structural expressions
■ Grammars
■ Regular expressions
■ E.g., unix style to capture city names such
as “Palo Alto CA”:
■ [A-Z][a-z]*([ ][A-Z][a-z]*)*[ ][A-Z][A-Z]

Start with a letter


A string of other
letters (possibly Should end w/ 2-letter state code
empty)

Other space delimited words


(part of city name) 15

You might also like