Regular Languages Section 3 1 A language is

  • Slides: 19
Download presentation
Regular Languages [Section 3. 1] A language is regular over if it can be

Regular Languages [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 ( * ). Example : ( { a } [ { b } )* { a } ( { a } [ { b } )* [ ( { a } [ { b } )* { b } ( { a } [ { b } )*

Regular Languages [Section 3. 1] A language is regular over if it can be

Regular Languages [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 ( * ). Example : ( { a } [ { b } )* { a } ( { a } [ { b } )* [ ( { a } [ { b } )* { b } ( { a } [ { b } )^* Simplify as :

Regular Languages [Section 3. 1] A language is regular over if it can be

Regular Languages [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 :

Regular Expressions [Section 3. 1] Recursive definition of regular expressions over : 1) ;

Regular Expressions [Section 3. 1] Recursive definition of regular expressions over : 1) ; , { }, and { a } for every a 2 are regular languages represented by regular expressions __, __, respectively. 2) If L 1, L 2 are regular languages represented by regular Expressions r 1 and r 2, then L 1 [ L 2, L 1 L 2, and L 1* are regular languages represented by regular expressions _____, respectively. 3) No other expressions are regular expressions.

Regular Expressions [Section 3. 1] Comments : - For convenience, we will also use

Regular Expressions [Section 3. 1] 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*

Regular Expressions Simplify the following regular expressions : - a*(a+ ) - a *a

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 [Section 3. 1] Give a regular expression for each of the following

Regular Expressions [Section 3. 1] 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 ?

Finite Automata [Sections 3. 2, 3. 3] Our simplest model of computation : -

Finite Automata [Sections 3. 2, 3. 3] 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

Finite Automata [Sections 3. 2, 3. 3] Example : the language of all strings

Finite Automata [Sections 3. 2, 3. 3] Example : the language of all strings over {a, b} with an even number of a’s.

Finite Automata [Sections 3. 2, 3. 3] More examples : - Language of strings

Finite Automata [Sections 3. 2, 3. 3] 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.

Finite Automata [Sections 3. 2, 3. 3] A (deterministic) finite automaton (FA, in some

Finite Automata [Sections 3. 2, 3. 3] A (deterministic) finite automaton (FA, in some books also abbreviated as DFA) is a 5 -tuple (Q, , q 0, 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

Finite Automata [Sections 3. 2, 3. 3] Comment : We saw that we can

Finite Automata [Sections 3. 2, 3. 3] 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 ?

Finite Automata [Sections 3. 2, 3. 3] Defining the computation of an FA M=(Q,

Finite Automata [Sections 3. 2, 3. 3] Defining the computation of an FA M=(Q, , q 0, 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.

Finite Automata [Section 3. 4] Kleene’s Thm: A language L over is regular iff

Finite Automata [Section 3. 4] 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 ?

Operations on Finite Automata [Section 3. 5] Let M 1 = (Q 1, ,

Operations on Finite Automata [Section 3. 5] Let M 1 = (Q 1, , q 1, A 1, 1) and M 2 = (Q 2, , q 2, A 2, 2) be two FA’s. Union: We know that L(M 1) [ L(M 2) is regular. Construct an FA M such that L(M) = L(M 1) [ L(M 2).

Operations on Finite Automata [Section 3. 5] Let M 1 = (Q 1, ,

Operations on Finite Automata [Section 3. 5] Let M 1 = (Q 1, , q 1, A 1, 1) and M 2 = (Q 2, , q 2, A 2, 2) be two FA’s. Intersection: Is L(M 1) Å L(M 2) is regular ? Construct an FA M such that L(M) = L(M 1) Å L(M 2).

Operations on Finite Automata Let M 1 = (Q 1, , q 1, A

Operations on Finite Automata Let M 1 = (Q 1, , q 1, A 1, 1) be an FA. Complement: Is L(M 1)’ regular ? Construct an FA M such that L(M) = L(M 1)’. [Section 3. 5]

Operations on Finite Automata [Section 3. 5] Let M 1 = (Q 1, ,

Operations on Finite Automata [Section 3. 5] Let M 1 = (Q 1, , q 1, A 1, 1) and M 2 = (Q 2, , q 2, A 2, 2) be two FA’s. Difference: Construct an FA M such that L(M) = L(M 1) - L(M 2).

Closure Properties [Section 3. 5] We just saw that the class of regular languages

Closure Properties [Section 3. 5] We just saw that the class of regular languages is closed under union, intersection, complement, and difference. Let L = { x 2{a, b}* | x has the same number of a’s and b’s }. Is L regular ?