1 / 28

Understanding Thompson Construction in Regular Expressions

Learn Thompson Construction in Regular Expressions, NFA to DFA subset construction, relation between machines and regular expressions, example problems, proof techniques, and more. Improve your understanding with concrete examples and practical exercises.

frankdrake
Download Presentation

Understanding Thompson Construction in Regular Expressions

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. Lecture 9NFA Subset Construction & Epsilon Transitions CSCE 355 Foundations of Computation Topics: • Thompson Construction • Examples Thompson Construction • Test 1 Sept 24, 2008

  2. Last Time: Readings 2.3 • Mutual Induction Proof revisited • Languages denoted by regular expressions • Examples • Ruby Regular Expressions TEST 1 – September 29th New: Readings section 2.2.3-2.4 • Sample Test 1new • Theorem 2.12 Proof • Author’s Website Solutions Online • ε-NFA  NFA • ε-NFA  DFA subset construction • Regular Expressions • Relations Machines and Regular expressions • Ruby: regular expressions • Ruby Pickaxe Book • Ruby: showmatch.rb

  3. Regular Expressions & Ken Thompson • http://en.wikipedia.org/wiki/Regular_expression • http://en.wikipedia.org/wiki/Ken_Thompson

  4. Grep • Unix utility • man grep • man –k regexp

  5. Thompson Construction • Based on recursive (inductive) definition of regular expressions • We describe NFAs (with epsilon moves) that recognize the base cases. • Then assuming we have NFAs for smaller expressions r and s we construct NFAs for • r + s • rs • r*

  6. Recall Recursive Definition of RegExpr Definition of regular expressions over an alphabet Σ • Base cases: • if a εΣ then A is a regular expression and denotes L(a) = { a } • ε is a regular expression and denotes L(ε) = { ε } • Recursive definition • If r and s are regular expressions denoting the languages L(r) and L(s) then • rs is a regular expression denoting L(r)L(s) • r+s is a regular expression denoting L(r) L(s) • r* is a regular expression denoting [L(r)]* =

  7. Thompson Construction Base cases

  8. Thompson Construction Recursive cases r + s rs

  9. Thompson Construction Recursive cases r*

  10. Thompson Construction Examples

  11. Sample test 1 outline • Proof Techniques • Inductive proof • mutual induction proof • Given DFA • Transition diagram • Input “abaa” • L(M) • Give DFA for L • NFA • NFA for L • NFA  DFA (Subset) • εNFA • εNFA for L • ε-closure (ECLOSE in text) • εNFA DFA (Subset) • Ruby regular expressions

  12. Design DFA that accepts Language L • Example • For a DFA D how do you prove L(D) = L ?

  13. Mutual Induction Proof • Define three statements for a mutual induction proof that could help in proving that L(M) = L ={x ε {0, 1}* | that x has a number of zeroes divisible by 3 }

  14. HW solutions 2.5.1

  15. 2.5.3 a,b • The set of strings consisting of zero or more a’s followed by zero or more b’s followed by zero or more c’s • The set of strings consisting of either 01 repeated one or more times or 010 repeated one of more times

  16. 2.3.2 Subset NFA without ε • NFA • DFA

  17. 2.3.4 Done before • The set of strings over {0,1, … 9} such that the final digit has appeared before • The set of strings over {0,1, … 9} such that the final digit has not appeared before • The set of strings of 0’s and 1’s such that there are two 0’s separated by a number of positions that is a multiple of 4. Note 0 is allowable multiple.

  18. Tenth symbol from the right is a ‘1’

  19. Given L(M1) and L(M2) define DFA for intersection

  20. Pop Quiz Induction proof

  21. Homework: • 2.5.1 • 2.5.3 a,b • Extra Credit (20pts): Modify dfa1.rb to print all strings of length<8 that would be accepted by that DFA.

More Related