This is an old revision of the document!


3. Regular expressions

3.1.1.

$ A=\{ 0^{2k} \mid k \geq 1 \}$

$ B = \{0, \epsilon \}$
$ AB = ? $

3.1.2.

$ A = \{ 0^n 1^n \mid n \geq 1 \}$
$ B = \{ 1^n \mid n \geq 1 \} $
$ AB = ? $
$ BA = ? $

3.1.3.

$ A = \emptyset $
$ B = \{ 1^n \mid n \geq 1 \} $
$ AB = ? $
$ A^* = ? $
$ B^* = ? $

3.1.4

$ A = \{ 0^n 1^n 0^m \mid m \geq n \geq 1 \}$
$ B = \{ 0^n \mid n \geq 1 \} $
$ AB = ? $
$ BA = ? $

3.2.1. Write a regular expression for the language of arithmetic expressions containing +, * and numbers. Hint: you can abbreviate $ 0 \cup 1 \cup \ldots \cup 9 $ by $ [0-9] $

3.2.2. Write a regular expression for $ L = \{ \omega \text{ in } \text{{0,1}} ^* \text{ | EVERY sequence of two or more consecutive zeros appears before ANY sequence of two or more consecutive ones} \} $

3.2.3. Write a DFA for $ L(( 10 \cup 0) ^* ( 1 \cup \epsilon )) $

3.2.4. Write a regular expression which generates the accepted language of A. Then try to find the most simple and easy to understand way to write it.

3.2.5. Describe as precisely as possible the language generated by $ ((0(1 \cup 0)(1 \cup 0)) \cup 100)1((0(1 \cup 0)(1 \cup 0)) \cup 100)1(((0(1 \cup 0)(1 \cup 0)) \cup 100)0)*$

(hint: BCD)

Are the following regex pair equivalent?

3.3.1

$ E1 = ab|a|b $
$ E2 = (a|\epsilon)(b|\epsilon) $

3.3.2

$ E1 = a(b|c)(d|e)|abb|abc $
$ E2 = ab(b|c|d|e)|acd|ace $

3.3.3

$ E1 = (a\mid b)^*aa^* \mid \epsilon $
$ E2 = (a\mid ba)^*(b\mid ba)^* $

3.3.4

$ E1 = ((ab^*a)^+b)^* $
$ E2 = (a(b\mid aa)^*ab)^* $

Conclusion

Click to display ⇲

Click to hide ⇱

What have we learned today?

Plural of regex is regrets