0% found this document useful (0 votes)
25 views18 pages

Chapter 1 Introduction

Uploaded by

lehuy5923
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)
25 views18 pages

Chapter 1 Introduction

Uploaded by

lehuy5923
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/ 18

Automata and Formal

Languages
Automata and Formal Languages
• What is a Finite Automaton?
• Why study Automata?
• What the course is about?
What is a Finite Automaton?
• Remembers only a finite amount of information.
• Information represented by its state.
• State changes in response to inputs.
• Rules that tell how the state changes in response to inputs are called
transitions.
What is a Finite Automaton?
What is a Finite Automaton?
Why study Automata?
Why study Automata?

• Regular expressions are used in many systems.


• E.g., UNIX [A-Z][a-z]*[ ][A-Z][A-Z].
• This expression represents patterns in text that could be a city and state, e.g. Ithaca NY
• E.g., DTD’s describe XML tags with a RE format like person (name, addr, child*).
Why study Automata?

• Finite automata model protocols, electronic circuits.


Why study Automata?
• Context-free grammars are used to describe the syntax of essentially every
programming language.
• Not to forget their important role in describing natural languages.
Why study Automata?
• When developing solutions to real problems, we often confront the
limitations of what software can do.
• Undecidable things – no program whatever can do it.
• Intractable things – there are programs, but no fast programs.
Course Outline
• Finite Automata
• Regular Expressions
• Context-Free Grammars
• Pushdown Automata
• Turing Machines
The Central Concepts of Automata Theory
• Alphabets
• An alphabet is a finite nonempty set of symbols.
• Conventionally we use the symbol  for an alphabet
• Common alphabets include:
•   , the binary alphabet
•   a, b, …., z, the set of all lower-case letters
• The set of all ASCII characters, or the set of all printable ASCII characters
The Central Concepts of Automata Theory
• Strings
• A string (or sometimes word) is a finite sequence of symbols chosen from some
alphabet.
• 01101 is a string from the binary alphabet   
• 111 is another string chosen from this alphabet
• The Empty String: the string with zero occurrences of symbols.
• denoted 
• is a string that may be chosen from any alphabet whatsoever
• Length of a String: the number of positions for symbols in the string
• string 01101 has length 5
• the standard notation for the length of a string  is 
• 011 = 3 và  = 0
The Central Concepts of Automata Theory
• Strings
• Powers of an Alphabet
• If  is an alphabet, we can express the set of all strings of a certain length from that alphabet by
using an exponential notation.
• k to be the set of strings of length k, each of whose symbols is in 
• 0 = {}, regardless of what alphabet  is
• that is  is the only string whose length is 0
•   : 1 = {0, 1}, 2 = {00, 01, 10, 11}, 3 = {000, 001, 010, 011, 100, 101, 110, 111}, …….
• * : the set of all strings over an alphabet 
• * = ,  , 00, 01, 10, 11, 000, …..
• * = 0  1  2  ………
• +: set of nonempty strings from alphabet 
• two appropriate equivalences
• + = 1  2  3  ………
• * = +  {}
The Central Concepts of Automata Theory
• Strings
• Concatenation of Strings
• Let x and y be strings.
• Then xy denotes the concatenation of x and y
• the string formed by making a copy of x and following it by a copy of y
• let x = 01101 and y = 110, then xy = 01101110 and yx = 11001101
The Central Concepts of Automata Theory
• Languages
• A set of strings all of which are chosen from some *, where  is a particular
alphabet is called a language.
• If  is an alphabet and L  * then L is a language over 
• Notice that a language over  need not include strings with all the symbols of 
• There are also many other languages that appear when we study automata
• The language of all strings consisting of n 0’s followed by n 1’s for some n  0: , 1 0011,
000111, …..
• The set of strings of 0’s and 1’s with an equal number of each: , 1 10, 0011, 0101, 1001,
…..
• The set of binary numbers whose value is a prime: {10, 11, 101, 111, 1011, …..
• * is a language for any alphabet 
• , the empty language, is a language over any alphabet
• , the language consisting of only the empty string, is also a language over any alphabet.
• Notice that   ; the former has no strings and the latter has one string.
Problems
• If  is an alphabet, and L is a language over  then the problem L is:
• Given a string w in *, decide whether or not w is in L.
Set-Formers as a Way to Define Languages
• It is common to describe a language using a “set-former”
{w | something about w}
This expression is read “the set of words w such that (whatever is said about w to the
right of the vertical bar)”
• {w | w consists of an equal number of 0’s and 1’s }
• {w | w is a binary integer that is prime }
• {w | w is a syntactically correct C program }
• It is also common to replace w by some expression with parameters and describe the
strings in the language by stating conditions on the parameters
• {0n1n | n  1}
• {0i1j | 0  i  j}

You might also like