











Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Automata Theory and Languages Automata Theory and Languages Automata Theory and Languages
Typology: Lecture notes
1 / 19
This page cannot be seen from the preview
Don't miss anything!












Automata Theory, Languages and Computation - MĀ“
Introduction to Automata Theory
Automata theory :
the study of abstract computing devices, or āmachinesā
Before computers (1930),
A. Turing
studied an abstract machine (
Turing
machine
) that had all the capabilities of todayā s computers (concerning what they
could compute).
His goal was to describe precisely the boundary between what a
computing machine could do and what it could not do. Simpler kinds of machines (
finite automata
) were studied by a number of
researchers and
useful for a variety of purposes
Theoretical developments bear directly on what computer scientists do today
Finite automata, formal grammars: design/ construction of software Turing machines: help us understand what we can expect from a software Theory of intractable problems: are we likely to be able to write a programto solve a given problem? Or we should try an approximation, a heuristic...
Automata Theory, Languages and Computation - MĀ“
The Central Concepts of Automata Theory
Automata Theory, Languages and Computation - MĀ“
Alphabet
A finite, nonempty set of symbols. Symbol:
Examples:
The binary alphabet:
The set of all lower-case letters:
{a, b,... , z
The set of all ASCII characters
Automata Theory, Languages and Computation - MĀ“
Powers of an alphabet (1)
If^ Σ
is an alphabet, we can express the set of all strings of a certain length from that alphabet by using the exponential notation:
k Σ : the set of strings of length
k , each of whose is in
Examples:
{Ē«
}, regardless of what alphabet
is. That is
Ē«^
is the only string of
length
If^
, then:
Note: confusion between
and
is an alphabet; its members
and
are symbols
is a set of strings; its members are strings (each one of length 1)
Automata Theory, Languages and Computation - MĀ“
Kleen star ā Ī£ : The set of all strings over an alphabet
Ē«,^
The symbol
is called
Kleene star
and is named after the mathematician and
logician Stephen Cole Kleene.+ Σ
Thus:
ā^
+^
Ē«}
Automata Theory, Languages and Computation - MĀ“
Languages
If^
is an alphabet, and
ā, then
is a (formal)
language
over
Language: A (possibly infinite) set of strings all of which are chosen from someā Ī£ A language over
need not include strings with all symbols of
Thus, a language over
is also a language over any alphabet that is a superset
of
Examples:
Programming language CLegal programs are a subset of the possible strings that can be formedfrom the alphabet of the language (a subset of ASCII characters) English or French
Automata Theory, Languages and Computation - MĀ“
ırian Halfeld-Ferrari ā p. 10/
Other language examples
The language of all strings consisting of
n
0 s followed by
n
1 s (
n^
{Ē«,
The set of strings of
0 s and
1 s with an equal number of each: {Ē«,
is a language for any alphabet
ā , the empty language, is a language over any alphabet
5.^
{Ē«
}, the language consisting of only the empty string, is also a language over any alphabetNOTE:
Ē«}
since
has no strings and
{Ē«
has one
{w
w^
consists of an equal number of
and
n^1
n^
|^ n
i^1
j^ |
i^
j}
Automata Theory, Languages and Computation - MĀ“
ırian Halfeld-Ferrari ā p. 11/
Important operators on languages:Concatenation
The
concatenation
of languages
and
, denoted
or just
, is the set of
strings that can be formed by taking any string in
and concatenating it with any string
in^
Example
If^ L
and
Ē«,^
}^ then
Automata Theory, Languages and Computation - MĀ“
Important operators on languages: Closure
The
closure
of a language
is denoted
ā^ and represents the set of those strings that
can be formed by taking any number of strings from
, possibly with repetitions (
i.e.
, the
same string may be selected more than once) and concatenating all of them.Examples:
If^
then
ā^ is all strings of
and
If^
then
ā^ consists of strings of
and
such that the
come in
pairs,
e.g.
and
Ē«.
But not
or
Formally,
ā^ is the infinite union
iā„
i^ where
{Ē«
, and for
i >
we
have
i^ =
(the concatenation of
i^
copies of
Automata Theory, Languages and Computation - MĀ“
ırian Halfeld-Ferrari ā p. 14/
Regular Expressions and Languages
We define the regular expressions recursively. Basis
: The basis consists of three parts:
1.^
The constants
Ē«^
and
are regular expressions, denoting the language
{Ē«
}^ and
respectively. That is
(Ē«
Ē«}
and
If^ a^ is a symbol, then
a is a regular expression. This expression denotes the
language
{a
i.e.
( a
a}
NOTE: We use boldface font to denote an expression corresponding to a symbol
3.^
A variable, usually capitalised and italic such as
, is a variable, representing any
language.
Automata Theory, Languages and Computation - MĀ“
ırian Halfeld-Ferrari ā p. 16/
Regular Expressions and Languages
Induction
: There are four parts to the inductive step, one for each of the three operators
and one for the introduction of parentheses
If^
and
are regular expressions, then
is a regular expression denoting
the union of
)^ and
). That is,
If^
and
are regular expressions, then
is a regular expression denoting the
concatenation of
)^ and
). That is,
If^
is a regular expression, then
ā^ is a regular expression denoting the closure
of
). That is,
If^
is a regular expression, then
)^ is a regular expression denoting the same
as
. Formally,
Automata Theory, Languages and Computation - MĀ“
Automata Theory, Languages and Computation - MĀ“