0% found this document useful (0 votes)
21 views25 pages

Automata 1

The document outlines a course on Automata Theory offered by the Systems and Computers Engineering Department, detailing its objectives, syllabus, and evaluation methods. Key topics include finite automata, Turing machines, and the complexities of decidability and intractability. The course aims to equip students with the foundational knowledge necessary for compiler theory and software development related to abstract computing devices.

Uploaded by

Ahmed Hosny
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)
21 views25 pages

Automata 1

The document outlines a course on Automata Theory offered by the Systems and Computers Engineering Department, detailing its objectives, syllabus, and evaluation methods. Key topics include finite automata, Turing machines, and the complexities of decidability and intractability. The course aims to equip students with the foundational knowledge necessary for compiler theory and software development related to abstract computing devices.

Uploaded by

Ahmed Hosny
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/ 25

Automata theory

Lecture 1

1
Program Title Systems and Computers Engineering

Course
Department offering and specs
Systems and Computers Engineering Dept.
responsible for the Program

Course Name Automata theory


Course Code SCE305
Year/ Level 3rd Year – 1st Semesters
Authorization date of course 2015

Lectures Tutorial Practical


Teaching Hours 2
2 2 0
Course text
 Introduction to automata theory, languages and
computation, 3rd edition, by John E. Hopcroft
 Course notes

 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

You might also like