0% found this document useful (0 votes)
78 views17 pages

FATFL 01 Introduction

The document provides an introduction to a lecture on finite automata theory and formal languages. It outlines the course instructor, required textbooks, course assessment breakdown, and advice for getting a good grade. It then gives brief introductions to automata theory, formal grammars, and intractable problems. The course outline is presented covering topics like finite state automata, regular expressions, context-free grammars, pushdown automata, Turing machines, and reasons for studying automata theory are discussed.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views17 pages

FATFL 01 Introduction

The document provides an introduction to a lecture on finite automata theory and formal languages. It outlines the course instructor, required textbooks, course assessment breakdown, and advice for getting a good grade. It then gives brief introductions to automata theory, formal grammars, and intractable problems. The course outline is presented covering topics like finite state automata, regular expressions, context-free grammars, pushdown automata, Turing machines, and reasons for studying automata theory are discussed.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

Finite Automata

Theory & Formal


Languages

Khawaja Mohiuddin

(Content for this lecture is also taken from J. Ullman’s slides)


Khawaja 2023 Automata Theory & Languages 1
Introduction
• Instructor’s Name: Khawaja Mohiuddin
• Instructors Introduction:
• Email address: [email protected]
• Consultation Hours: Tuesday & Wednesday, 2:00 - 3:00
pm
• Class CR
• Students’ Introduction:
– Name
– Answer One Question?
Khawaja 2023 Automata Theory & Languages 2
Books and References
• Text Book:
“Introduction to Automata Theory, Languages and Computation”
by John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman, 3rd edition,
2006.
• Reference Book:
“Introduction to the Theory of Computation“
by Michael Sipser, 3rd edition, 2012.

Khawaja 2023 Automata Theory & Languages 3


Course Assessment
• Quizzes (3 – 1) ……..………………… 20%
• Assignments (2) .………….………… 20%
• Midterm Exam …………………..….. 20%
• Final Exam …………………..……..…. 40%

Khawaja 2023 Automata Theory & Languages 4


How to get a Good Grade in this Course

• Attend all classes (low attendance means dropped from course)


• Come to class on time
• Participate in class and ask questions if needed
• Do assignments on your own
• Study for Quizzes / Tests
• All above points also help you in getting good marks in Midterm Exam
and Final Exam
• What does not help in getting a good grade?
Asking grace marks

Khawaja 2023 Automata Theory & Languages 5


Automata Theory
• Automata Theory is the study of abstract computing devices or
“machines”.
(Abstract: existing only in mind, not physically available)
• Alan Turing in 1930’s, before there were any computers, studied an
abstract machine that had the computing capabilities of today’s
computers.
• Turing's goal was to describe precisely the boundary between what a
computing machine could do and what it could not do.
• In the 1940s and 1950s, simpler kinds of machines, which we today call
finite automata, were studied by a number of researchers.

Khawaja 2023 Automata Theory & Languages 6


Formal Grammars
• Also in the late 1950s, the linguist N. Chomsky began the study
of formal “grammars”.
• While not strictly machines, these grammars have close
relationships to abstract automata and serve today as the
basis of some important software components including parts
of compilers.

Khawaja 2023 Automata Theory & Languages 7


Intractable Problems
• In 1960's, S. Cook extended Turing's study of what could and what
could not be computed.
• Cook was able to separate those problems that can be solved
efficiently by computer from those problems that can in principle be
solved, but in practice take so much time that computers are useless
for all but very small instances of the problem.
• The latter class of problems is called "intractable" or "NP-hard".
• It is highly unlikely that even the exponential improvement in
computing speed will have significant impact on our ability to solve
large instances of intractable problems.
Khawaja 2023 Automata Theory & Languages 8
Basis of Computing
• All of these theoretical developments bear directly on what
computer scientists do today.
• Some of the concepts like finite automata and certain kinds of
formal grammars are used in the design and construction of
important kinds of software.
• Other concepts like the Turing machine help us understand
what we can expect from our software.

Khawaja 2023 Automata Theory & Languages 9


Why Study Automata?
• Qs: Why study a course with models, terms, mathematical
concepts, expressions, …?
• Qs: Why not just use a programming language or a tool and build
the software we want?
• Ans: To answer questions like following:
– Where did the core concepts of computing came from?
– How were programming languages designed?
– How were compilers designed to check syntax?
– What made the designers be sure of what they were trying to build will
actually work?
Khawaja 2023 Automata Theory & Languages 10
Why Study Automata? (ctd)
• Regular expressions are used in many systems
– E.g., UNIX ab*
– E.g., DTD’s describe XML tags with a Regular Expression format like
person (name, addr, child*)
• Finite automata model communication protocols, electronic
circuits.
– Theory is used in model-checking.

Khawaja 2023 Automata Theory & Languages 11


Why Study Automata? (ctd)
• Context-free grammars are used to describe the syntax of
essentially every programming language.
– Also play important role in describing natural languages.
• And DTD’s taken as a whole, are really CFG’s.

Khawaja 2023 Automata Theory & Languages 12


Why Study Automata? (ctd)
• When developing solutions to real problems, we often
confront the limitations of what software can do.
– Undecidable Problems – no program whatsoever can solve it.
– Intractable Problems – there are programs, but no fast programs.

Khawaja 2023 Automata Theory & Languages 13


Course Outline
• Theory of Computation and Languages
• Finite State Automata
• Deterministic and Non-deterministic Finite Automata
• Finite Automata with Epsilon Transitions
• Regular Expressions
• Regular Languages

Khawaja 2023 Automata Theory & Languages 14


Course Outline (ctd)
• Context Free Grammars
• Ambiguity in Context Free Grammars
• Parse Trees
• Push Down Automata
• Chomsky Normal Form
• Turing Machines

Khawaja 2023 Automata Theory & Languages 15


A Model for an On/Off Switch
There is a light switch, which has only one button. When we push the button, if
switch was off it will turn on and if it was on it will turn off.
Write down pseudocode logic to show the above functionality:
Hints: Use a variable called state to check and store on/off values, use a function
called transition(push) to push the button.

if((state == “off”) && transition(push))


state = “on”;
else if((state == “on”) && transition(push))
state = “off”;

Khawaja 2023 Automata Theory & Languages 16


A Model for an On/Off Switch
(Finite Automata Example)

More Examples:
• Switch up/down button
• Transitioning to a higher class

Khawaja 2023 Automata Theory & Languages 17

You might also like