Regular Languages
190 likes | 545 Views
Explore the concept of regular languages and expressions through definitions, examples, and simplification exercises to enhance your understanding. Learn about finite automata and their operations on regular languages.
Regular Languages
E N D
Presentation Transcript
[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 } )*
[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] 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 ( * ). Recursive definition of regular languages over :
[Section 3.1] Regular Expressions 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 • 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 ?
[Sections 3.2, 3.3] 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) • qo2 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.
[Section 3.4] 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.5] 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 ?