Automata 1
Automata 1
Lecture 1
1
Program Title Systems and Computers Engineering
Course
Department offering and specs
Systems and Computers Engineering Dept.
responsible for the Program
Evaluation
70 marks final
30 marks class work
3
Course objectives
Entry point for compiler theory
Understand engineering principles for
automaton, finite state machine, DFA, NFA and
regular expressions.
Recognize different types of automaton
Write computer programs on professional levels
achieving acceptable quality measures in system
development
4
Syllabus
1. Introduction.
2. Finite Automata, Regular expression, Regular language
3. DFA, NFA, Context-Free Languages
4. Turing Machine
5. Decidability
6. Reducibility
7. Time Complexity
8. Space Complexity
9. Intractability
5
Course Outline
Regular Languages and their
descriptors:
Finite automata, nondeterministic finite
automata, regular expressions.
Algorithms to decide questions about
regular languages, e.g., is it empty?
Closure properties of regular languages.
6
Course Outline – (2)
Context-free languages and their
descriptors:
Context-free grammars, pushdown
automata.
Decision and closure properties.
7
Course Outline – (3)
Recursive and recursively enumerable
languages.
Turing machines, decidability of problems.
The limit of what can be computed.
Intractable problems.
Problems that (appear to) require
exponential time.
NP-completeness and beyond.
8
Definition
Automata theory is the study of
abstract computing devices or
“machines” Before there were
computers
Finite automata is a simpler kinds of
machines originally proposed to model
brain function!
9
Why automata
Regular expressions are used in many
systems.
E.g., UNIX a.*b.
E.g., DTD’s describe XML tags with a RE
format like person (name, addr, child*).
Finite automata models communication
protocols, electronic circuits.
Theory is used in model-checking.
10
Why automata
Software for designing and checking the
behavior of digital circuits
The “lexical analyzer” of a typical compiler (the
compiler component that breaks the input text into logical units
such as identifiers, keywords and blocks)
Software for verifying systems of all types that
have a finite number of distinct states
11
Why automata
12
Turing machine
Design a program/machine that determine some
string (e.g. x=“then”) is in java language?
What about “there”
Or “than”
A Turing Machine is a mathematical model
(automata) which accepts the languages generated
by grammar. Alan Turing invented that machine
1936
Did you watch the “imitation game, 2014”
13
Example automata
14
How? – (2)
Context-free grammars are used to
describe the syntax of essentially every
programming language.
Not to forget their important role in
describing natural languages.
And DTD’s taken as a whole, are really
CFG’s.
15
How? – (3)
When developing solutions to real
problems, we often confront the
limitations of what software can do.
Undecidable things – no program
whatever can do it. (e.g. the halting problem)
Intractable things – there are programs,
but no fast programs (e.g. TSP, VRP)
This course gives you the tools.
16
How? – (3)
We’ll learn how to deal formally with
discrete systems.
Proofs: You never really prove a program
correct, but you need to be thinking of why
a tricky technique really works.
We’ll gain experience with abstract
models and constructions.
Models layered software architectures.
17
Automata concepts
Alphabet
Set of symbols
18
Automata concepts
Strings
Finite sequence of symbols from alphabet
Has length
Empty string Ɛ,
19
Automata concepts
Strings
String concatenation
20
Automata concepts
Power of alphabet
Exponential notation Σk
21
Automata concepts
Power of alphabet
The set of all strings Σ*
The set of all strings except empty string Σ+
22
Automata concepts
Language
The set of strings chosen from Σ*
Set-formers notation
Examples 1
Language: Java, alphabet: ASCII
Example 2
Language of equal number of 0&1 Lq={00,11,000,1111}
The language of all prime numbers Lp={10, 11, 101} 23
Automata concepts
Problem
Decide whether a string is member of the
language
Example
S1=“0011101”, S2=“00010”, S3=“1010”
Given a string of 0 & 1, say “yes” if this string is
member of prime language Lp, and “no” otherwise
Solution requires computational resources (e.g.
space and time)
24
Wrap up
Finite automata: states & transitions for building
several different kinds of software
Regular expression: structural notation for
describing the same patterns that can be
represented by finite automata
Context-free grammar: important notation for
describing the structure of programming languages
and related sets of strings
Turing machine
Alphabets
Strings
25
Language and problems