Regular Languages, Kleene’s Theorem, Union, Concatenation ...
Regular Languages A language is regular over if it can be built from ;, { }, and { a } for every a...
-
Upload
arline-woods -
Category
Documents
-
view
230 -
download
0
Transcript of Regular Languages A language is regular over if it can be built from ;, { }, and { a } for every a...
Regular Languages
A language is regular over if it can be built from ;, { }, and { a } for every a 2 , using operators union ( [ ), concatenation ( . ) and Kleene star ( * ).
Example : ( { a } [ { b } )* { a } { a } ( { a } [ { b } )* [
( { a } [ { b } )* { b } { b } ( { a } [ { b } )*
[Section 3.1]
Regular Languages
A language is regular over if it can be built from ;, { }, and { a } for every a 2 , using operators union ( [ ), concatenation ( . ) and Kleene star ( * ).
Example : ( { a } [ { b } )* { a } { a } ( { a } [ { b } )* [
( { a } [ { b } )* { b } { b } ( { a } [ { b } )^*
Simplify as :
[Section 3.1]
A language is regular over if it can be built from ;, { }, and { a } for every a 2 , using operators union ( [ ), concatenation ( . ) and Kleene star ( * ).
Recursive definition of regular languages over :
[Section 3.1]Regular Languages
Recursive definition of regular expressions over :
1) ;, { }, and { a } for every a 2 are regular languages
represented by regular expressions __, __, __, respectively.
2) If L1, L2 are regular languages represented by regular
Expressions r1 and r2, then L1 [ L2, L1L2, and L1* are
regular languages represented by regular expressions _____,
_____, _____, respectively.
3) No other expressions are regular expressions.
[Section 3.1]Regular Expressions
Regular Expressions
Comments :
- For convenience, we will also use r+ and ri for i 2 N.
- The priority of operators in decreasing order : Kleene’s star, concatenation, union.
Parenthesize :
a + b*c
a + bc*
[Section 3.1]
Regular Expressions
Simplify the following regular expressions :
- a*(a+)
- a*a*
- (a*b*)*
- (a+b)*ab(a+b)* + a*b*
[Section 3.1]
Regular Expressions
Give a regular expression for each of the following :
- the language of all strings over {a,b} of even length,
- the language of all strings over {a,b,c} in which all a’s precede all b’s,
- the language of all strings over {a,b} with length greater than 3,
- the language of all odd-length strings over {a,b} containing the string bb,
- the language of all strings over {a,b} that do not contain the string aaa.
Is the language { akbk | k 2 N } regular ?
[Section 3.1]
Finite Automata
Our simplest model of computation :
- has a tape with input, read once from left to right
- has only a single memory register with the state
[Sections 3.2, 3.3]
Finite Automata
Example : the language of all strings over {a,b} with an even number of a’s.
[Sections 3.2, 3.3]
Finite Automata
More examples :
- Language of strings over {a,b} with at least 3 a’s.
- Language of strings over {a,b} containing substring aaba.
- Language of strings over {a,b} not containing substring aaba.
- Language of strings over {a,b} with even number of a’s and odd number of b’s.
[Sections 3.2, 3.3]
Finite Automata
A (deterministic) finite automaton (FA, in some books also abbreviated as DFA) is a 5-tuple (Q,,q0,A,) where
- Q is a finite set of states
- is a finite alphabet (input symbols)
- qo 2 Q is the initial state
- A µ Q is a set of accepting states
- : Q£ Q is the transition function
[Sections 3.2, 3.3]
Finite Automata
Comment : We saw that we can represent a finite automaton by a transition diagram.
Draw the transition diagram for ( {qa,qb}, {a,b}, qa, {qb}, ) where is given by the following table
(qa,a) qa
(qa,b) qb
(qb,a) qa
(qb,b) qb
Which strings does this FA accept ?
[Sections 3.2, 3.3]
Finite Automata
Defining the computation of an FA M=(Q,,q0,A,).
Extended transition function * : Q£* Q :
1) For every q 2 Q, let *(q,) =
2) For every q 2 Q, y 2 *, and 2 , let *(q,y) =
We say that a string x 2 * is accepted by M if __________.
A string which is not accepted by M is rejected by M.
The language accepted by M, denoted by L(M) is the set of all strings accepted by M.
[Sections 3.2, 3.3]
Finite Automata
Kleene’s Thm: A language L over is regular iff there exists a finite automaton that accepts L.
Recall L = { akbk | k ¸ 0 }. Is it regular ?
[Section 3.4]
Operations on Finite Automata
Let M1 = (Q1,,q1,A1,1) and M2 = (Q2,,q2,A2,2) be two FA’s.
Union:
We know that L(M1) [ L(M2) is regular. Construct an FA M such that L(M) = L(M1) [ L(M2).
[Section 3.5]
Operations on Finite Automata
Let M1 = (Q1,,q1,A1,1) and M2 = (Q2,,q2,A2,2) be two FA’s.
Intersection:
Is L(M1) Å L(M2) is regular ? Construct an FA M such that L(M) = L(M1) Å L(M2).
[Section 3.5]
Operations on Finite Automata
Let M1 = (Q1,,q1,A1,1) be an FA.
Complement:
Is L(M1)’ regular ? Construct an FA M such that L(M) = L(M1)’.
[Section 3.5]
Operations on Finite Automata
Let M1 = (Q1,,q1,A1,1) and M2 = (Q2,,q2,A2,2) be two FA’s.
Difference:
Construct an FA M such that L(M) = L(M1) - L(M2).
[Section 3.5]
Closure Properties
We just saw that the class of regular languages is closed under union, intersection, complement, and difference.
Let L = { x2{a,b}* | x has the same number of a’s and b’s }.
Is L regular ?
[Section 3.5]