1 / 19

Regular Languages

[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 } ) * [

rubenstein
Télécharger la présentation

Regular Languages

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. [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 } )*

  2. [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 :

  3. [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  :

  4. [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.

  5. [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*

  6. [Section 3.1] Regular Expressions • Simplify the following regular expressions : • a*(a+) • a*a* • (a*b*)* • (a+b)*ab(a+b)* + a*b*

  7. [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 ?

  8. [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

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

  10. [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.

  11. [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

  12. [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 ?

  13. [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.

  14. [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 ?

  15. [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).

  16. [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).

  17. [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)’.

  18. [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).

  19. [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 ?

More Related