were doing in their professional lives. So let 's see some of the ideas we're going to learn about
in the course and how they appear in practice. One very commonly used idea is the regular
expression. finite automata underlie the body of techniques known as model checking, which
has been used to verify the correctness of model checking. There are fundamental limitations
on our ability to compute a computer scientist should be aware of these limitations.. Only then
can you avoid spending time attempting something that is impossible. One limitation is
undecidability. Another important aspect of the course is the context-free grammar. These are
used to put a tree structure on strings. both communication protocols and large electronic
circuits. A number of people taking the automata course were not computer scientists at all.
were mathematicians by inclination. Some in the past have found the subject sufficiently
interesting that they saw the light and made major contributions to computer software. A case in
point is Ken Thompson, the fellow who gave Us Unix before doing unix..
Regular languages are those sets of strings that can be described by finite automata or regular
expressions.. The regular languages enable us to do things that you ca n't do with regular
languages such as match balanced parentheses or [UNK] tags. context.-free languages are a
larger class of languages than the regular languages, but there are unfortunately some
exceptions. This course follows the third edition of the textbook I wrote with John Hopcroft and
Rajiv Matwani. You do not need to buy this book, but the homeworks and exams will all be
based on what you can learn by observing the slides and listening to my commentary on the
slides. Please do not download a free copy from a file sharing site or delete it if you have
already done so. This book was published by Addison Wesley under a contract that dates back
to 1967. that describes how a game of tennis is scored. The final automaton is a mathematical
model, but fortunately, it is a model that should be quite familiar. You can think of it either as a
graph or as a table.. THe model is simple because it stores only a finite amount of information
that can be bad. Because in many applications, there is no limit on what we need to remember
about what has happened in the past..
The automaton represents a finite automaton by a graph with nodes for states and arrows
labeled by the input for transitions. THe inputs are events in which one player wins a point s for
the server wins and O for the opponent wins.. THe states represent the numbers of points won
by each player and they have strange names. IF. The server wins the next point they 've won
the game, but if the opponent wins, then the game is tied. The name for this state is deuce. The
due state is quite interesting. It remembers that the game was tied but it remembers neither the
sequence of wins and losses of points, nor even how many points have been played.. THe job
of an automaton is to process strings of input symbols or input strings. We always begin at the
start state and we read each input symbol in order to discover what the new state is. We accept
the string if we wind up in a final state.. The job of a finite automaton is to process strings of
inputs and accept or reject them. It accepts the string. If it leads from the start state to a final
state. Accepting state is a synonym for final state. A language is simply a set of strings in the
formalism used for automata. The language accepted by an automaton. A is denoted L of A. In
our tennis example, we call the two states where one of the players wins the final state. In that