regular expressions res

Regular Expressions (REs) Regular Expressions (REs) p.1/37 - PowerPoint PPT Presentation

Regular Expressions (REs) Regular Expressions (REs) p.1/37 Expressions In arithmetic: Regular Expressions (REs) p.2/37 Expressions In arithmetic: 1. expressions are constructed from numbers and variables using arithmetic


  1. βœ‚ οΏ½ ✁ οΏ½ βœ‚ οΏ½ ✁ οΏ½ βœ„ βœ† βœ„ ☎ ✁ βœ‚ οΏ½ βœ„ βœ„ βœ‚ οΏ½ βœ‚ οΏ½ βœ‚ οΏ½ οΏ½ ☎ οΏ½ βœ‚ Precedence relation Denoting the rule describing the order of ops in the evaluation of arithmetic and regular expressions we have: ✁ βœ‚βœ Arithmetic expressions: Regular expressions: ✁ ✁� Note: denotes expressions enclosed in parentheses Regular Expressions (REs) – p.7/37

  2. οΏ½ οΏ½ οΏ½ Formal definitions Consider an alphabet. A regular expression (RE) over is defi ned recursivelyby the rules: Regular Expressions (REs) – p.8/37

  3. οΏ½ οΏ½ οΏ½ Formal definitions Consider an alphabet. A regular expression (RE) over is defi ned recursivelyby the rules: Recursion basis: Regular Expressions (REs) – p.8/37

  4. βœ‚ βœ„ οΏ½ βœ‚ οΏ½ οΏ½ οΏ½ ✁ ☎ βœ‚ οΏ½ ✁ οΏ½ οΏ½ οΏ½ Formal definitions Consider an alphabet. A regular expression (RE) over is defi ned recursivelyby the rules: Recursion basis: 1. For any , is a RE describing the language Regular Expressions (REs) – p.8/37

  5. οΏ½ ✝ οΏ½ ✁ ☎ βœ‚ βœ„ οΏ½ βœ„ οΏ½ οΏ½ βœ‚ ✝ ✁ οΏ½ βœ‚ ☎ ✁ οΏ½ ✝ οΏ½ βœ‚ οΏ½ βœ‚ Formal definitions Consider an alphabet. A regular expression (RE) over is defi ned recursivelyby the rules: Recursion basis: 1. For any , is a RE describing the language 2. is a RE describing the language Regular Expressions (REs) – p.8/37

  6. βœ‚ βœ„ ✝ οΏ½ βœ„ ✁ ✝ ✝ βœ‚ οΏ½ ✁ ☎ βœ‚ οΏ½ οΏ½ οΏ½ ☎ οΏ½ βœ„ βœ‚ ✁ οΏ½ οΏ½ οΏ½ βœ‚ οΏ½ ☎ οΏ½ οΏ½ οΏ½ βœ‚ Formal definitions Consider an alphabet. A regular expression (RE) over is defi ned recursivelyby the rules: Recursion basis: 1. For any , is a RE describing the language 2. is a RE describing the language 3. is a RE describing the empty language . Regular Expressions (REs) – p.8/37

  7. οΏ½ ☎ ☎ βœ‚ οΏ½ βœ‚ οΏ½ οΏ½ βœ„ οΏ½ βœ„ οΏ½ Formal definitions, continutation Recursion body: If and are REs evaluating to the οΏ½ ✁� languages and then: Regular Expressions (REs) – p.9/37

  8. οΏ½ οΏ½ βœ‚ βœ‚ βœ‚ οΏ½ ✁ ✁ οΏ½ οΏ½ οΏ½ βœ‚ ☎ βœ‚ οΏ½ οΏ½ βœ„ ✁ ☎ οΏ½ οΏ½ οΏ½ βœ„ βœ‚ ✁ βœ‚ οΏ½ βœ„ οΏ½ βœ„ Formal definitions, continutation Recursion body: If and are REs evaluating to the οΏ½ ✁� languages and then: 1. is a RE evaluating to Regular Expressions (REs) – p.9/37

  9. οΏ½ οΏ½ βœ‚ ✁ βœ„ οΏ½ οΏ½ ✁ βœ‚ ✁ βœ„ οΏ½ οΏ½ βœ‚ βœ‚ οΏ½ οΏ½ οΏ½ ✁ βœ‚ οΏ½ βœ‚ βœ‚ ✁ βœ„ οΏ½ βœ‚ βœ‚ οΏ½ βœ‚ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ ☎ ✁ βœ„ βœ„ οΏ½ οΏ½ βœ‚ ☎ βœ‚ βœ‚ οΏ½ οΏ½ βœ‚ Formal definitions, continutation Recursion body: If and are REs evaluating to the οΏ½ ✁� languages and then: 1. is a RE evaluating to 2. is a RE evaluating to Regular Expressions (REs) – p.9/37

  10. βœ‚ οΏ½ βœ„ ✁ βœ† οΏ½ οΏ½ βœ‚ βœ‚ οΏ½ βœ„ βœ‚ βœ‚ οΏ½ ✁ οΏ½ οΏ½ βœ„ ✁ βœ‚ βœ‚ βœ„ οΏ½ ✁ βœ‚ ✁ οΏ½ οΏ½ βœ„ ☎ οΏ½ βœ‚ οΏ½ βœ„ οΏ½ βœ„ ✁ οΏ½ βœ‚ ✁ οΏ½ οΏ½ βœ‚ βœ‚ ☎ οΏ½ οΏ½ ☎ βœ‚ οΏ½ οΏ½ βœ„ ✁ ☎ οΏ½ οΏ½ οΏ½ βœ„ βœ‚ βœ„ βœ‚ οΏ½ ☎ ✝ οΏ½ οΏ½ ✁ ✁ οΏ½ οΏ½ βœ‚ βœ‚ βœ‚ οΏ½ οΏ½ βœ„ βœ‚ ✁ ✁ οΏ½ οΏ½ βœ„ βœ„ βœ‚ βœ‚ οΏ½ ✁ οΏ½ Formal definitions, continutation Recursion body: If and are REs evaluating to the οΏ½ ✁� languages and then: 1. is a RE evaluating to 2. is a RE evaluating to 3. is a RE evaluating to ✁ ✁� where and . Regular Expressions (REs) – p.9/37

  11. Note A defi nition of the form expressed by rule (4) above is called an inductive defi nition Regular Expressions (REs) – p.10/37

  12. οΏ½ οΏ½ ✁ Potential confusions Do not confuse the REs and ; Regular Expressions (REs) – p.11/37

  13. οΏ½ οΏ½ ✁ ✝ Potential confusions Do not confuse the REs and ; 1. represents the language containing just the empty string Regular Expressions (REs) – p.11/37

  14. οΏ½ οΏ½ ✁ ✝ οΏ½ Potential confusions Do not confuse the REs and ; 1. represents the language containing just the empty string 2. is the RE that represents the the empty language Regular Expressions (REs) – p.11/37

  15. βœ„ οΏ½ οΏ½ ☎ οΏ½ οΏ½ ☎ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ οΏ½ οΏ½ ✝ ✁ οΏ½ Potential confusions Do not confuse the REs and ; 1. represents the language containing just the empty string 2. is the RE that represents the the empty language Note the distinction between and . is an expression and is the set of strings specifi ed by Regular Expressions (REs) – p.11/37

  16. οΏ½ βœ† βœ„ οΏ½ βœ† Example REs 1. , Regular Expressions (REs) – p.12/37

  17. βœ„ οΏ½ ✁ ☎ βœ‚ βœ† οΏ½ οΏ½ βœ† οΏ½ ✁ βœ„ βœ‚ βœ† οΏ½ βœ„ βœ† οΏ½ οΏ½ Example REs 1. , contains exactly a single 1 Regular Expressions (REs) – p.12/37

  18. βœ‚ οΏ½ βœ‚ βœ„ οΏ½ ✁ οΏ½ ✁ ☎ βœ‚ βœ† βœ„ βœ‚ βœ† οΏ½ οΏ½ βœ„ βœ† βœ† οΏ½ βœ„ βœ† οΏ½ βœ† Example REs 1. , contains exactly a single 1 2. , Regular Expressions (REs) – p.12/37

  19. ✁ βœ† βœ‚ ✁ βœ‚ βœ† βœ„ βœ‚ βœ‚ οΏ½ βœ„ οΏ½ βœ‚ βœ† βœ„ βœ‚ βœ† οΏ½ ✁ ☎ οΏ½ οΏ½ βœ† βœ„ οΏ½ βœ† οΏ½ βœ„ οΏ½ οΏ½ βœ† βœ„ οΏ½ βœ† βœ‚ ☎ ✁ βœ‚ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 Regular Expressions (REs) – p.12/37

  20. βœ‚ βœ† βœ† βœ„ οΏ½ βœ† οΏ½ βœ„ οΏ½ βœ‚ βœ„ βœ„ βœ‚ βœ† βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ βœ† βœ‚ βœ‚ βœ‚ οΏ½ οΏ½ βœ† βœ„ οΏ½ βœ† βœ† βœ„ οΏ½ βœ† βœ‚ βœ„ οΏ½ βœ† βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ βœ‚ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , Regular Expressions (REs) – p.12/37

  21. ☎ οΏ½ βœ‚ βœ† βœ‚ οΏ½ ✁ οΏ½ ✁ οΏ½ ✁ βœ‚ οΏ½ βœ‚ βœ† οΏ½ βœ† βœ„ βœ‚ βœ† ✁ βœ„ οΏ½ βœ‚ βœ† οΏ½ οΏ½ βœ„ βœ‚ βœ† βœ„ βœ‚ ☎ βœ‚ οΏ½ βœ† βœ„ οΏ½ βœ† βœ‚ βœ„ οΏ½ οΏ½ βœ† βœ„ οΏ½ βœ† ☎ οΏ½ ✁ οΏ½ ✁ οΏ½ βœ„ βœ‚ οΏ½ βœ‚ βœ† βœ„ βœ‚ βœ† οΏ½ βœ„ βœ‚ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring Regular Expressions (REs) – p.12/37

  22. ✁ βœ‚ βœ‚ ☎ ✁ οΏ½ οΏ½ οΏ½ βœ‚ βœ‚ βœ„ βœ‚ βœ† οΏ½ οΏ½ βœ„ βœ† βœ‚ βœ‚ ✁ οΏ½ ✁ ☎ βœ‚ βœ† βœ„ οΏ½ οΏ½ οΏ½ βœ† βœ‚ οΏ½ βœ„ βœ† βœ„ οΏ½ ☎ οΏ½ βœ† βœ„ οΏ½ βœ† βœ† βœ„ οΏ½ οΏ½ βœ† βœ„ οΏ½ βœ† βœ‚ ✁ βœ† βœ„ βœ‚ οΏ½ βœ„ βœ‚ βœ† βœ‚ βœ† οΏ½ βœ‚ βœ‚ βœ‚ βœ‚ οΏ½ ✁ οΏ½ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , Regular Expressions (REs) – p.12/37

  23. οΏ½ βœ‚ οΏ½ βœ† βœ‚ οΏ½ βœ„ βœ‚ βœ† βœ„ βœ„ οΏ½ βœ† βœ† βœ‚ ☎ βœ‚ ✁ οΏ½ βœ‚ ✁ βœ„ βœ‚ βœ‚ βœ‚ οΏ½ οΏ½ βœ‚ βœ‚ οΏ½ βœ† οΏ½ βœ‚ οΏ½ ✁ οΏ½ ✁ ☎ βœ‚ οΏ½ οΏ½ βœ„ οΏ½ ✁ ☎ βœ‚ βœ† οΏ½ βœ„ βœ† οΏ½ ✁ βœ„ βœ‚ βœ† οΏ½ βœ„ βœ† οΏ½ οΏ½ οΏ½ ✁ οΏ½ ☎ βœ‚ βœ† βœ‚ βœ„ βœ† βœ‚ βœ„ οΏ½ οΏ½ βœ† βœ‚ βœ„ βœ† βœ‚ ✁ βœ‚ βœ† Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , is a string of even length Regular Expressions (REs) – p.12/37

  24. βœ† οΏ½ βœ‚ βœ† βœ‚ βœ„ οΏ½ οΏ½ βœ† βœ‚ βœ„ ✁ οΏ½ βœ‚ βœ‚ βœ„ οΏ½ οΏ½ βœ† βœ‚ ☎ οΏ½ βœ‚ βœ‚ βœ‚ βœ‚ οΏ½ βœ„ ☎ βœ† βœ‚ βœ‚ οΏ½ ✁ ✁ βœ‚ οΏ½ βœ„ οΏ½ οΏ½ ✁ οΏ½ οΏ½ βœ‚ βœ† βœ† ✁ οΏ½ ✁ ☎ βœ‚ βœ† οΏ½ βœ„ οΏ½ βœ‚ οΏ½ βœ„ βœ† βœ† οΏ½ βœ„ βœ† οΏ½ οΏ½ βœ‚ οΏ½ βœ† ✁ οΏ½ ✁ ☎ βœ‚ βœ† βœ‚ βœ„ βœ‚ βœ‚ οΏ½ βœ„ βœ‚ βœ† βœ‚ βœ„ βœ† βœ‚ βœ‚ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , is a string of even length 5. , Regular Expressions (REs) – p.12/37

  25. οΏ½ ☎ βœ‚ βœ„ οΏ½ οΏ½ βœ‚ οΏ½ ✁ οΏ½ ✁ βœ‚ βœ‚ βœ† βœ‚ βœ„ βœ‚ οΏ½ βœ† βœ‚ οΏ½ βœ„ βœ† βœ‚ οΏ½ βœ‚ ✁ βœ‚ βœ‚ οΏ½ βœ† βœ‚ βœ„ οΏ½ ✁ οΏ½ ☎ βœ‚ βœ† βœ‚ βœ‚ βœ‚ οΏ½ βœ„ οΏ½ βœ† βœ‚ βœ‚ βœ† βœ„ βœ‚ οΏ½ βœ‚ οΏ½ οΏ½ ✁ οΏ½ ✁ ☎ βœ‚ βœ† βœ„ βœ‚ βœ† οΏ½ οΏ½ βœ„ βœ‚ βœ† οΏ½ βœ„ βœ† οΏ½ ✁ βœ† οΏ½ ☎ οΏ½ βœ† βœ‚ ☎ βœ‚ ✁ οΏ½ ✁ οΏ½ ✁ βœ‚ βœ„ βœ† βœ‚ βœ„ βœ† βœ‚ οΏ½ βœ„ οΏ½ βœ† βœ‚ βœ‚ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , is a string of even length 5. , the length of is a multiple of three Regular Expressions (REs) – p.12/37

  26. βœ‚ οΏ½ οΏ½ ☎ βœ‚ ✁ βœ„ οΏ½ οΏ½ οΏ½ οΏ½ ✁ ✁ βœ‚ ☎ ✁ βœ† βœ‚ βœ„ οΏ½ οΏ½ βœ† βœ‚ οΏ½ βœ‚ βœ‚ οΏ½ βœ‚ βœ„ βœ‚ βœ† βœ‚ βœ‚ βœ‚ βœ‚ οΏ½ βœ‚ βœ‚ οΏ½ βœ† ✁ οΏ½ ✁ ☎ βœ† βœ‚ βœ‚ βœ‚ οΏ½ βœ„ βœ† βœ„ βœ† βœ‚ οΏ½ ✁ βœ‚ οΏ½ οΏ½ ✁ οΏ½ ✁ ☎ βœ‚ βœ† βœ„ βœ† βœ† οΏ½ οΏ½ βœ„ βœ„ βœ† οΏ½ βœ„ βœ† οΏ½ βœ‚ βœ„ βœ‚ οΏ½ βœ„ οΏ½ οΏ½ βœ† βœ‚ βœ‚ βœ‚ οΏ½ οΏ½ ✁ ✁ βœ‚ ☎ βœ‚ βœ† βœ‚ βœ„ βœ† βœ‚ οΏ½ βœ„ βœ„ βœ† οΏ½ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , is a string of even length 5. , the length of is a multiple of three 6. , Regular Expressions (REs) – p.12/37

  27. οΏ½ οΏ½ ☎ βœ† βœ‚ βœ‚ βœ‚ οΏ½ βœ„ ✁ βœ† βœ‚ βœ‚ βœ‚ οΏ½ οΏ½ βœ‚ βœ„ βœ„ βœ‚ οΏ½ ☎ οΏ½ ✁ οΏ½ ✁ ☎ βœ‚ ✁ ✁ βœ‚ βœ‚ οΏ½ οΏ½ βœ‚ βœ„ οΏ½ βœ„ ✁ οΏ½ ✁ ☎ βœ† βœ‚ βœ‚ οΏ½ βœ‚ οΏ½ βœ„ οΏ½ βœ† βœ‚ βœ‚ βœ‚ βœ‚ οΏ½ οΏ½ βœ‚ βœ„ βœ† βœ„ ✁ βœ‚ βœ‚ βœ„ βœ† βœ‚ οΏ½ βœ‚ βœ„ οΏ½ ✁ οΏ½ ✁ ☎ βœ† βœ„ οΏ½ βœ„ βœ† οΏ½ οΏ½ βœ„ βœ‚ βœ† οΏ½ βœ„ βœ† οΏ½ βœ† βœ„ οΏ½ βœ‚ οΏ½ βœ† βœ‚ οΏ½ βœ„ ✁ βœ† βœ‚ βœ„ οΏ½ οΏ½ βœ† οΏ½ οΏ½ βœ‚ βœ„ οΏ½ ✁ οΏ½ ✁ ☎ βœ‚ βœ† βœ‚ βœ„ βœ† βœ‚ βœ„ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , is a string of even length 5. , the length of is a multiple of three 6. , Regular Expressions (REs) – p.12/37

  28. βœ‚ βœ‚ βœ‚ βœ‚ οΏ½ βœ‚ βœ‚ οΏ½ οΏ½ ✁ οΏ½ ✁ ☎ βœ† βœ‚ βœ‚ βœ‚ οΏ½ βœ„ βœ‚ βœ† βœ‚ βœ† βœ‚ οΏ½ οΏ½ βœ‚ ✁ βœ„ οΏ½ οΏ½ βœ‚ βœ† οΏ½ βœ„ βœ‚ βœ„ οΏ½ ✁ βœ„ οΏ½ οΏ½ βœ„ οΏ½ βœ„ οΏ½ ✁ βœ„ οΏ½ βœ‚ βœ„ βœ„ οΏ½ οΏ½ ✁ οΏ½ ✁ ☎ βœ† βœ‚ βœ‚ βœ‚ βœ‚ οΏ½ βœ„ βœ„ ✁ ✁ ✁ οΏ½ βœ„ ✁ βœ† βœ‚ βœ„ βœ† βœ‚ οΏ½ βœ‚ ✁ οΏ½ ✁ οΏ½ ☎ βœ† βœ‚ βœ† οΏ½ βœ„ βœ† οΏ½ οΏ½ βœ„ βœ„ βœ† οΏ½ βœ„ βœ† οΏ½ βœ‚ βœ„ οΏ½ βœ‚ ✁ ☎ βœ‚ βœ† βœ‚ βœ„ οΏ½ οΏ½ βœ† βœ‚ οΏ½ βœ„ βœ‚ βœ† βœ„ βœ‚ οΏ½ οΏ½ βœ† βœ‚ βœ† βœ‚ βœ„ οΏ½ ✁ οΏ½ ✁ ☎ βœ‚ βœ† ☎ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , is a string of even length 5. , the length of is a multiple of three 6. , 7. , Regular Expressions (REs) – p.12/37

  29. οΏ½ βœ‚ βœ† βœ„ βœ„ οΏ½ βœ‚ βœ‚ βœ‚ βœ‚ βœ† ☎ ✁ οΏ½ ✁ ✁ οΏ½ βœ‚ βœ‚ βœ‚ ☎ ✁ βœ„ οΏ½ βœ‚ βœ‚ βœ‚ βœ† ✁ βœ‚ βœ„ ✁ οΏ½ βœ† βœ‚ βœ‚ οΏ½ οΏ½ βœ† βœ‚ ✁ βœ‚ οΏ½ οΏ½ βœ‚ βœ† οΏ½ βœ„ οΏ½ βœ‚ βœ† βœ„ ✁ οΏ½ ✁ βœ„ βœ„ βœ„ οΏ½ οΏ½ βœ„ ✁ οΏ½ βœ„ βœ‚ βœ„ οΏ½ βœ„ βœ„ ✁ οΏ½ βœ„ βœ‚ ☎ ✁ οΏ½ βœ† βœ‚ βœ„ βœ† βœ‚ ✁ βœ‚ βœ† βœ„ βœ‚ οΏ½ οΏ½ βœ„ οΏ½ βœ‚ βœ† βœ„ βœ‚ βœ† οΏ½ ✁ ☎ οΏ½ οΏ½ βœ† βœ„ οΏ½ βœ† βœ‚ βœ„ οΏ½ οΏ½ βœ† βœ„ οΏ½ βœ† βœ‚ ☎ ✁ βœ‚ ✁ βœ‚ οΏ½ βœ‚ βœ† βœ‚ ☎ ✁ οΏ½ ✁ βœ„ οΏ½ οΏ½ οΏ½ βœ„ ✁ βœ‚ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ οΏ½ ✁ οΏ½ ✁ βœ‚ ☎ βœ‚ βœ† οΏ½ βœ† βœ„ βœ‚ βœ† βœ‚ βœ„ οΏ½ βœ‚ οΏ½ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , is a string of even length 5. , the length of is a multiple of three 6. , 7. , starts and ends with the same symbol Regular Expressions (REs) – p.12/37

  30. οΏ½ οΏ½ βœ„ οΏ½ βœ‚ βœ‚ ✝ οΏ½ βœ„ ✁ βœ„ οΏ½ ✁ βœ„ οΏ½ οΏ½ βœ„ ✁ οΏ½ βœ„ ✁ ✁ ☎ βœ‚ οΏ½ ✁ οΏ½ βœ‚ οΏ½ βœ‚ βœ‚ βœ‚ βœ† ☎ βœ† βœ„ οΏ½ βœ‚ βœ‚ βœ‚ βœ‚ βœ† βœ‚ ✁ βœ‚ βœ„ οΏ½ βœ‚ βœ† οΏ½ ✁ βœ„ βœ‚ βœ† ✁ βœ„ οΏ½ ✁ βœ„ βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ οΏ½ οΏ½ βœ† βœ„ βœ„ οΏ½ βœ„ βœ‚ οΏ½ οΏ½ βœ‚ οΏ½ βœ„ ✁ βœ„ βœ‚ βœ† βœ„ ✁ οΏ½ ✁ ✁ ☎ βœ† ✁ βœ‚ βœ† βœ‚ ☎ ✁ οΏ½ οΏ½ βœ† οΏ½ βœ‚ βœ‚ βœ‚ βœ† οΏ½ οΏ½ βœ„ βœ‚ βœ‚ βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ οΏ½ βœ„ οΏ½ βœ‚ βœ† βœ„ βœ‚ βœ† βœ† βœ„ βœ„ βœ† βœ† βœ‚ βœ† βœ‚ οΏ½ οΏ½ βœ‚ βœ‚ βœ† οΏ½ βœ„ βœ† βœ„ οΏ½ οΏ½ βœ‚ βœ‚ βœ„ οΏ½ οΏ½ βœ„ βœ„ οΏ½ βœ‚ βœ† οΏ½ οΏ½ βœ‚ βœ„ βœ† βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ βœ‚ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , is a string of even length 5. , the length of is a multiple of three 6. , 7. , starts and ends with the same symbol 8. , Regular Expressions (REs) – p.12/37

  31. οΏ½ βœ„ βœ‚ οΏ½ οΏ½ βœ„ ✁ οΏ½ βœ„ βœ„ οΏ½ οΏ½ οΏ½ βœ„ ✁ οΏ½ βœ„ βœ‚ ☎ ✁ οΏ½ οΏ½ βœ„ ✝ βœ‚ βœ‚ οΏ½ βœ‚ βœ‚ βœ‚ βœ‚ βœ† βœ„ ✁ ✁ βœ‚ βœ‚ βœ‚ βœ‚ βœ† ☎ ✁ οΏ½ οΏ½ βœ„ οΏ½ βœ„ ✁ βœ„ βœ‚ βœ† βœ„ ✁ οΏ½ ✁ βœ‚ βœ† ☎ ✁ οΏ½ ✁ οΏ½ βœ‚ ✝ βœ‚ ✁ οΏ½ βœ‚ οΏ½ βœ„ βœ„ βœ‚ βœ† οΏ½ βœ‚ βœ† οΏ½ ✁ βœ‚ οΏ½ βœ† βœ„ ✁ οΏ½ ✁ βœ„ βœ„ βœ„ οΏ½ βœ„ ✁ οΏ½ βœ† βœ† βœ„ βœ‚ βœ† ✁ βœ„ οΏ½ βœ‚ βœ„ βœ„ βœ‚ βœ† βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ βœ† βœ‚ βœ‚ βœ„ οΏ½ οΏ½ βœ† βœ„ οΏ½ βœ† βœ‚ βœ„ οΏ½ βœ† βœ† βœ„ οΏ½ βœ† βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ βœ‚ βœ‚ οΏ½ βœ‚ οΏ½ βœ„ ☎ βœ‚ βœ‚ οΏ½ βœ‚ βœ‚ βœ† ✁ βœ† βœ„ οΏ½ βœ‚ βœ‚ βœ‚ βœ† ☎ ✁ οΏ½ οΏ½ βœ† βœ‚ οΏ½ οΏ½ βœ„ βœ‚ βœ† οΏ½ βœ„ οΏ½ βœ† ✁ οΏ½ οΏ½ βœ„ βœ‚ βœ† βœ‚ ☎ ✁ οΏ½ οΏ½ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , is a string of even length 5. , the length of is a multiple of three 6. , 7. , starts and ends with the same symbol 8. , Regular Expressions (REs) – p.12/37

  32. ☎ βœ‚ βœ„ ☎ βœ„ οΏ½ οΏ½ βœ„ ✁ οΏ½ βœ„ ☎ ✁ ✁ οΏ½ βœ„ βœ„ οΏ½ βœ„ βœ‚ βœ‚ οΏ½ οΏ½ βœ„ βœ† βœ‚ βœ‚ βœ‚ βœ† ✁ βœ„ οΏ½ βœ‚ βœ‚ βœ‚ βœ† οΏ½ βœ† ✁ οΏ½ ✁ βœ„ οΏ½ οΏ½ βœ‚ ✁ βœ‚ οΏ½ βœ‚ ✝ βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ βœ„ βœ‚ βœ‚ οΏ½ ✁ οΏ½ ✁ ✝ βœ‚ βœ„ βœ† ✁ βœ„ οΏ½ βœ„ οΏ½ ✁ βœ„ βœ„ βœ‚ βœ† βœ„ ✁ οΏ½ ✁ βœ„ βœ† οΏ½ ✁ οΏ½ βœ‚ βœ† οΏ½ ✁ βœ„ βœ‚ βœ† βœ„ βœ‚ οΏ½ οΏ½ βœ‚ βœ„ βœ‚ βœ† βœ„ βœ„ οΏ½ βœ‚ βœ† βœ„ βœ† βœ‚ βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ οΏ½ βœ‚ βœ‚ βœ† ✁ βœ† βœ† οΏ½ βœ† βœ„ οΏ½ βœ† βœ‚ βœ„ οΏ½ οΏ½ βœ„ βœ‚ οΏ½ βœ† βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ ✝ βœ‚ οΏ½ βœ„ βœ‚ οΏ½ οΏ½ βœ‚ βœ‚ βœ‚ βœ† βœ‚ βœ„ οΏ½ βœ‚ οΏ½ βœ‚ βœ† ☎ ✁ οΏ½ ✁ οΏ½ βœ† βœ‚ βœ‚ βœ„ οΏ½ οΏ½ βœ„ βœ‚ βœ† ✝ βœ„ οΏ½ βœ‚ βœ† οΏ½ βœ„ οΏ½ βœ‚ βœ† βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ ✁ οΏ½ οΏ½ Example REs 1. , contains exactly a single 1 2. , contains at least one 1 3. , contains as a substring 4. , is a string of even length 5. , the length of is a multiple of three 6. , 7. , starts and ends with the same symbol 8. , 9. , Regular Expressions (REs) – p.12/37

  33. Regular Expressions (REs) – p.12/37 βœ‚ οΏ½ ✁ βœ„ βœ„ οΏ½ οΏ½ βœ‚ βœ† οΏ½ ✁ βœ„ βœ† βœ„ βœ„ ✁ οΏ½ ✁ βœ„ βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ βœ‚ ✁ βœ† οΏ½ ☎ βœ„ ✁ βœ„ βœ„ οΏ½ οΏ½ βœ„ ✁ οΏ½ βœ„ βœ‚ ✁ βœ‚ οΏ½ βœ„ βœ„ οΏ½ βœ„ βœ‚ οΏ½ βœ‚ βœ† οΏ½ ✁ βœ„ οΏ½ ✁ βœ‚ βœ„ ✁ ✝ βœ‚ βœ„ οΏ½ οΏ½ οΏ½ ✁ ✝ βœ‚ οΏ½ ✁ οΏ½ ✝ βœ‚ βœ‚ ☎ ✁ ✝ βœ„ βœ„ βœ„ οΏ½ βœ„ βœ‚ βœ„ βœ‚ ✝ βœ† βœ‚ βœ„ βœ† βœ„ οΏ½ οΏ½ οΏ½ ✁ ✝ βœ‚ βœ„ βœ‚ ✝ ☎ ✁ οΏ½ βœ„ βœ† ✁ βœ„ βœ† βœ‚ οΏ½ οΏ½ ✁ οΏ½ οΏ½ ✁ βœ‚ βœ† οΏ½ οΏ½ βœ„ βœ‚ βœ† βœ„ βœ† βœ„ οΏ½ βœ† οΏ½ οΏ½ οΏ½ οΏ½ βœ„ βœ‚ βœ† βœ‚ ☎ ✁ οΏ½ βœ‚ βœ‚ οΏ½ βœ„ οΏ½ βœ‚ ✁ ☎ βœ‚ βœ† βœ„ βœ‚ βœ† βœ‚ οΏ½ οΏ½ βœ‚ βœ† βœ† βœ„ βœ‚ βœ† βœ‚ ☎ ✁ οΏ½ ✁ οΏ½ ✁ βœ‚ βœ‚ οΏ½ οΏ½ οΏ½ βœ† ✁ βœ† οΏ½ βœ‚ βœ‚ βœ‚ οΏ½ βœ† οΏ½ βœ„ οΏ½ βœ‚ βœ‚ βœ‚ βœ‚ βœ† ✁ ✁ βœ„ βœ‚ οΏ½ βœ„ οΏ½ βœ‚ οΏ½ οΏ½ ✁ βœ‚ βœ‚ ☎ βœ† οΏ½ βœ„ βœ„ οΏ½ βœ‚ βœ‚ βœ‚ βœ† ☎ starts and is a multiple of three as a substring contains exactly a single 1 contains at least one 1 is a string of even length contains the length of οΏ½ β˜Žβœ„ ends with the same symbol Example REs , , , , , , , , , 1. 2. 3. 4. 5. 6. 7. 8. 9.

  34. ✁ ✁ βœ‚ βœ„ ✁ ✁ βœ„ οΏ½ βœ‚ βœ„ ✁ ☎ οΏ½ More example 10. , ; Note: concatenating to any set yields Regular Expressions (REs) – p.13/37

  35. ✁ οΏ½ οΏ½ οΏ½ οΏ½ ☎ βœ„ ✁ οΏ½ βœ„ οΏ½ βœ„ ✁ ✁ ✁ βœ„ βœ„ βœ‚ ✁ βœ„ οΏ½ ☎ ✁ ✁ βœ‚ οΏ½ More example 10. , ; Note: concatenating to any set yields 11. , ; by defi nition, is in the star operation applied on any language; if the language is empty becomes the one element Regular Expressions (REs) – p.13/37

  36. οΏ½ Identities If is a RE then the following identities take place: Regular Expressions (REs) – p.14/37

  37. ✁ οΏ½ οΏ½ ☎ οΏ½ βœ„ οΏ½ οΏ½ ✁ οΏ½ ☎ οΏ½ βœ„ Identities If is a RE then the following identities take place: ; adding the empty language to any other language will not change that language Regular Expressions (REs) – p.14/37

  38. οΏ½ οΏ½ βœ„ οΏ½ ☎ οΏ½ οΏ½ οΏ½ οΏ½ βœ„ οΏ½ ☎ ☎ οΏ½ οΏ½ βœ„ οΏ½ ☎ ✁ ✁ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ Identities If is a RE then the following identities take place: ; adding the empty language to any other language will not change that language ; concatenating any string with the empty string does not change that string Regular Expressions (REs) – p.14/37

  39. βœ„ οΏ½ οΏ½ ☎ οΏ½ ✁ οΏ½ οΏ½ βœ„ ✁ οΏ½ οΏ½ ☎ οΏ½ οΏ½ οΏ½ οΏ½ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ ✁ οΏ½ ☎ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ ☎ ✁ οΏ½ οΏ½ Note . Example: if then ; Regular Expressions (REs) – p.15/37

  40. ✁ οΏ½ οΏ½ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ οΏ½ ✁ ☎ οΏ½ οΏ½ βœ„ οΏ½ ☎ οΏ½ ✁ οΏ½ οΏ½ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ ☎ οΏ½ οΏ½ οΏ½ ✁ οΏ½ ✁ οΏ½ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ ✁ οΏ½ ☎ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ ☎ ✁ οΏ½ οΏ½ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ ☎ οΏ½ οΏ½ ☎ βœ„ οΏ½ οΏ½ ✁ οΏ½ ☎ βœ„ Note . Example: if then ; . Example: if then but Regular Expressions (REs) – p.15/37

  41. οΏ½ Application REs are useful tools for the design of compilers Regular Expressions (REs) – p.16/37

  42. οΏ½ οΏ½ Application REs are useful tools for the design of compilers Language lexicon is described by REs. Regular Expressions (REs) – p.16/37

  43. ✟ ✝ ✁ οΏ½ οΏ½ οΏ½ οΏ½ βœ† βœ‚ οΏ½ οΏ½ ☎ ✁ οΏ½ βœ„ βœ„ βœ„ βœ„ βœ† βœ† ✟ βœ„ βœ„ βœ‚ οΏ½ ✟ βœ„ ✁ ☎ βœ„ βœ† ✝ βœ† βœ‚ οΏ½ οΏ½ οΏ½ βœ† ✁ οΏ½ οΏ½ βœ„ Application REs are useful tools for the design of compilers Language lexicon is described by REs. Example: numerical constants can be described by: where ✁ β˜Žβœ„ βœ‚ β˜Žβœ„ ☎ β˜Žβœ„ ✞ β˜Žβœ„ Regular Expressions (REs) – p.16/37

  44. οΏ½ οΏ½ ✁ οΏ½ ✟ οΏ½ οΏ½ βœ† βœ‚ βœ„ ☎ οΏ½ ✁ οΏ½ βœ„ βœ„ βœ„ ✝ βœ„ βœ„ βœ† ✟ βœ† βœ„ οΏ½ οΏ½ βœ‚ ✟ ✁ ☎ βœ„ βœ† ✝ βœ† βœ‚ οΏ½ οΏ½ οΏ½ βœ† ✁ οΏ½ οΏ½ βœ„ Application REs are useful tools for the design of compilers Language lexicon is described by REs. Example: numerical constants can be described by: where ✁ β˜Žβœ„ βœ‚ β˜Žβœ„ ☎ β˜Žβœ„ ✞ β˜Žβœ„ From the lexicon description by REs one can generate automatically lexical analyzers Regular Expressions (REs) – p.16/37

  45. οΏ½ βœ„ οΏ½ οΏ½ ☎ βœ„ οΏ½ οΏ½ ☎ New terminology A RE that evaluates to the language is further said that specifi es the language Regular Expressions (REs) – p.17/37

  46. οΏ½ Equivalence with FA REs and fi nite automata are equivalentin their descriptive power Regular Expressions (REs) – p.18/37

  47. οΏ½ οΏ½ οΏ½ οΏ½ Equivalence with FA REs and fi nite automata are equivalentin their descriptive power Any RE can be converted into a fi nite automaton, βœβœ„βœ‚ , that recognizes the language specifi ed by Regular Expressions (REs) – p.18/37

  48. οΏ½ οΏ½ ✁ ✁ οΏ½ οΏ½ οΏ½ Equivalence with FA REs and fi nite automata are equivalentin their descriptive power Any RE can be converted into a fi nite automaton, βœβœ„βœ‚ , that recognizes the language specifi ed by Vice-versa, any fi nite automaton recognizing a language can be converted into a RE that οΏ½ ✁� specifi es the language Regular Expressions (REs) – p.18/37

  49. Theorem 1.54 Language is regular iff some RE specifi es it Regular Expressions (REs) – p.19/37

  50. Theorem 1.54 Language is regular iff some RE specifi es it Proof idea: this proof has two parts: Regular Expressions (REs) – p.19/37

  51. οΏ½ Theorem 1.54 Language is regular iff some RE specifi es it Proof idea: this proof has two parts: First part: we show that a language specified by a RE is regular, i.e., there is a finite automaton that recognizes it. Regular Expressions (REs) – p.19/37

  52. οΏ½ οΏ½ Theorem 1.54 Language is regular iff some RE specifi es it Proof idea: this proof has two parts: First part: we show that a language specified by a RE is regular, i.e., there is a finite automaton that recognizes it. Second part: we show that if a language is regular then there is a RE that specifies it Regular Expressions (REs) – p.19/37

  53. Lemma 1.55 If a language is specifi ed by a RE, then it is regular. Regular Expressions (REs) – p.20/37

  54. ✁ οΏ½ Lemma 1.55 If a language is specifi ed by a RE, then it is regular. Proof idea: Assume that we have a RE that evaluate to the language . Regular Expressions (REs) – p.20/37

  55. ✁ οΏ½ οΏ½ οΏ½ Lemma 1.55 If a language is specifi ed by a RE, then it is regular. Proof idea: Assume that we have a RE that evaluate to the language . 1. We will show how to convert into an NFA that recognizes . Regular Expressions (REs) – p.20/37

  56. οΏ½ ✁ οΏ½ οΏ½ οΏ½ οΏ½ Lemma 1.55 If a language is specifi ed by a RE, then it is regular. Proof idea: Assume that we have a RE that evaluate to the language . 1. We will show how to convert into an NFA that recognizes . 2. Then by corollary 1.40, if an NFA recognizes then is regular Regular Expressions (REs) – p.20/37

  57. οΏ½ οΏ½ Proof Convert into an NFA by the following six-steps proce- dure: Regular Expressions (REs) – p.21/37

  58. βœ„ ✁ βœ‚ ✁ βœ„ βœ‚ βœ‚ ☎ οΏ½ οΏ½ ☎ ✁ οΏ½ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ ☎ οΏ½ οΏ½ βœ„ βœ‚ οΏ½ ✁ οΏ½ οΏ½ οΏ½ οΏ½ Step 1: If , then and the NFA recognizing is in Figure 1 Figure 1: NFA recognizing Regular Expressions (REs) – p.22/37

  59. οΏ½ ✁ βœ‚ ✁ βœ„ βœ‚ βœ‚ ☎ οΏ½ ☎ βœ„ ✁ οΏ½ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ ☎ οΏ½ οΏ½ βœ„ βœ‚ οΏ½ ✁ οΏ½ οΏ½ οΏ½ οΏ½ Step 1: If , then and the NFA recognizing is in Figure 1 Figure 1: NFA recognizing Note: this is an NFA but not a DFA because it has states with no exiting arrow for each possible input symbol Regular Expressions (REs) – p.22/37

  60. οΏ½ ✁ οΏ½ οΏ½ ✁ οΏ½ ☎ οΏ½ οΏ½ οΏ½ βœ‚ ☎ βœ‚ βœ‚ οΏ½ ✁ ☎ ☎ οΏ½ ✁ οΏ½ βœ„ οΏ½ οΏ½ οΏ½ ✁ οΏ½ οΏ½ οΏ½ οΏ½ οΏ½ ✁ οΏ½ βœ‚ ✁ οΏ½ ☎ ✁ βœ‚ ✁ οΏ½ οΏ½ ✁ οΏ½ οΏ½ βœ‚ ✁ οΏ½ Formal construction οΏ½ ✁� Formally where: , οΏ½ βœβœ„ , for and Regular Expressions (REs) – p.23/37

  61. ☎ ✁ ✝ ✁ οΏ½ βœ‚ βœ‚ ☎ οΏ½ οΏ½ βœ„ οΏ½ ✁ οΏ½ οΏ½ οΏ½ ☎ οΏ½ οΏ½ βœ„ οΏ½ οΏ½ οΏ½ Step 2: If then and the NFA that recognizes is in Figure 2 Figure 2: The NFA recognizing Regular Expressions (REs) – p.24/37

  62. οΏ½ οΏ½ ☎ ✁ ✁ βœ‚ βœ„ ☎ ✁ ☎ ✁ ✁ οΏ½ οΏ½ ✁ βœ‚ ✁ οΏ½ ✁ ✁ οΏ½ οΏ½ οΏ½ οΏ½ οΏ½ ☎ Formal construction οΏ½ ✁� οΏ½ ✁� Formally where: οΏ½ βœβœ„ for any and Regular Expressions (REs) – p.25/37

  63. οΏ½ ☎ βœ„ ☎ βœ‚ ☎ ✁ οΏ½ οΏ½ οΏ½ οΏ½ βœ„ οΏ½ ✁ οΏ½ οΏ½ οΏ½ Step 3: If then , and the NFA that recognizes is in Figure 3 Figure 3: he NFA recognizing Regular Expressions (REs) – p.26/37

  64. ✁ ✁ ✁ οΏ½ βœ‚ ✁ ☎ βœ„ ✁ οΏ½ βœ‚ ☎ ✁ οΏ½ ✁ ✁ ☎ οΏ½ οΏ½ οΏ½ ☎ Formal construction οΏ½ ✁� Formally where: οΏ½ βœβœ„ for any and Regular Expressions (REs) – p.27/37

  65. ☎ οΏ½ ✁ ☎ οΏ½ οΏ½ βœ„ οΏ½ βœ‚ οΏ½ βœ„ οΏ½ ☎ βœ‚ οΏ½ ✁ οΏ½ οΏ½ οΏ½ οΏ½ βœ„ Step 4: If then . οΏ½ ✁� Regular Expressions (REs) – p.28/37

  66. βœ„ οΏ½ βœ„ ✁ ☎ βœ‚ οΏ½ ☎ οΏ½ ☎ οΏ½ οΏ½ βœ„ οΏ½ βœ‚ οΏ½ ✁ οΏ½ οΏ½ οΏ½ οΏ½ οΏ½ Step 4: If then . οΏ½ ✁� Note: in view with the inductive nature of we may assume that: Regular Expressions (REs) – p.28/37

  67. οΏ½ οΏ½ οΏ½ οΏ½ βœ„ βœ‚ ✁ ☎ ✁ ☎ οΏ½ βœ‚ ✁ βœ„ βœ‚ βœ„ ✁ ✁ βœ„ βœ„ ✁ ☎ οΏ½ βœ‚ βœ„ οΏ½ οΏ½ οΏ½ οΏ½ ✁ οΏ½ βœ‚ βœ‚ οΏ½ οΏ½ οΏ½ ☎ οΏ½ βœ„ οΏ½ ✁ ☎ ✁ βœ„ βœ„ Step 4: If then . οΏ½ ✁� Note: in view with the inductive nature of we may assume that: 1. is an NFA recognizing Regular Expressions (REs) – p.28/37

  68. ✁ οΏ½ βœ‚ βœ„ ✁ βœ‚ βœ„ βœ„ ✁ βœ„ βœ‚ ✁ βœ‚ βœ‚ βœ„ οΏ½ ✁ ✁ βœ‚ βœ„ ☎ βœ‚ ☎ οΏ½ οΏ½ βœ‚ βœ„ βœ‚ βœ„ ✁ βœ‚ βœ„ βœ„ οΏ½ βœ‚ οΏ½ οΏ½ οΏ½ οΏ½ οΏ½ ✁ οΏ½ βœ‚ βœ‚ βœ„ οΏ½ οΏ½ ☎ οΏ½ βœ„ βœ‚ οΏ½ οΏ½ ☎ ✁ ☎ βœ‚ βœ„ οΏ½ οΏ½ ☎ ☎ βœ‚ οΏ½ οΏ½ βœ„ ✁ βœ„ Step 4: If then . οΏ½ ✁� Note: in view with the inductive nature of we may assume that: 1. is an NFA recognizing 2. is an NFA recognizing Regular Expressions (REs) – p.28/37

  69. ✁ βœ„ ☎ οΏ½ βœ‚ ✁ οΏ½ οΏ½ βœ„ ☎ βœ‚ οΏ½ βœ‚ βœ„ ✁ βœ„ βœ„ βœ‚ οΏ½ ✁ βœ‚ οΏ½ βœ„ βœ‚ βœ‚ βœ‚ βœ‚ βœ„ βœ„ οΏ½ βœ„ βœ‚ ✁ βœ„ βœ‚ βœ„ βœ‚ ✁ βœ„ βœ‚ βœ„ οΏ½ βœ„ οΏ½ ☎ οΏ½ οΏ½ ☎ ☎ βœ‚ οΏ½ ✁ οΏ½ οΏ½ οΏ½ οΏ½ βœ‚ ✁ βœ‚ οΏ½ βœ„ ✁ οΏ½ οΏ½ ☎ ✁ ☎ οΏ½ βœ„ οΏ½ ✁ οΏ½ ☎ βœ‚ οΏ½ οΏ½ οΏ½ Step 4: If then . οΏ½ ✁� Note: in view with the inductive nature of we may assume that: 1. is an NFA recognizing 2. is an NFA recognizing The NFA recognizing is given in Figure 4 Regular Expressions (REs) – p.28/37

  70. ✝ βœ‚ οΏ½ οΏ½ βœ„ οΏ½ ☎ βœ‚ βœ„ βœ„ βœ„ βœ„ βœ„ βœ„ οΏ½ ✝ βœ‚ ✁ βœ‚ βœ‚ βœ„ βœ„ βœ„ βœ‚ βœ‚ βœ„ βœ„ βœ„ βœ‚ ✁ βœ‚ ✁ ✁ NFA recognizing βœ‚βœ†β˜Ž Figure 4: Construction of to recognize Regular Expressions (REs) – p.29/37

  71. βœ‚ ✁ ☎ βœ‚ ☎ βœ„ βœ„ οΏ½ ✁ οΏ½ ☎ ✁ βœ‚ βœ„ βœ„ ✁ ☎ οΏ½ ✁ Construction procedure 1. : That is, the states of are all states on and with the addition of a new state Regular Expressions (REs) – p.30/37

Recommend


More recommend


Explore More Topics

Stay informed with curated content and fresh updates.