Conversão de um NFA para um DFA com um exemplo

Preview:

DESCRIPTION

Conversão de um NFA para um DFA com um exemplo. Compiladores, Aula Nº 7 (suplementos) João M. P. Cardoso. NFA para DFA. NFA para (0 | 1)*.(0 | 1)*. . . 1. 1. . . . . 3. 5. 11. 13. . . . . 1. 2. 7. 8. 9. 10. 15. 16. . . . . 4. 6. 12. 14. 0. 0. . - PowerPoint PPT Presentation

Citation preview

Aula 71

Conversão de um NFA para um DFA com um exemplo

Compiladores, Aula Nº 7 (suplementos)

João M. P. Cardoso

Aula 72

NFA para DFA NFA para (0 | 1)*.(0 | 1)*

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

Aula 73

NFA para DFA Começar pelo estado início do NFA (estado 1)

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

Aula 74

NFA para DFA Agrupar todos os estado que possam ser

alcançados do estado 1 com transições

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

Aula 75

NFA para DFA O agrupamento forma o estado início do DFA

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8

Aula 76

NFA para DFA Agora determinamos as transições sobre o

alfabeto que podem ocorrer deste estado

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8

Aula 77

NFA para DFA Agora determinamos as transições sobre o

alfabeto que podem ocorrer deste estado

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8

0

1

Aula 78

NFA para DFA Para cada transição vamos encontrar no NFA os estados

destino a partir dos estados agrupados no DFA

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8

0

1

Aula 79

NFA para DFA Para a transição do “.” (ocorre do estado 8 para

o 9)

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8

Aula 710

NFA para DFA O estado é dado pelo agrupamento dos estados que

sendo alcançáveis com . são depois alcançáveis com

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,16

Aula 711

NFA para DFA Como o estado 16 é um estado de aceitação no NFA

então o estado (9, 10, 11, 12, 16) é um estado de aceitação no DFA pois inclui o estado 16

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,16

Aula 712

NFA para DFA Para a transição do “1” (ocorre do estado 3

para o 5)

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

Aula 713

NFA para DFA O estado é dado pelo agrupamento dos estados que

sendo alcançáveis com 1 são depois alcançáveis com

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

Aula 714

NFA para DFA Para a transição do “0” (ocorre do estado 4

para o 6)

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0

Aula 715

NFA para DFA O estado é dado pelo agrupamento dos estados que

sendo alcançáveis com 0 são depois alcançáveis com

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0 6,7,2,3,4,8

Aula 716

NFA para DFA Percorremos todas as transições possíveis do

estado início do DFA

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0 6,7,2,3,4,8

Aula 717

NFA para DFA Agora vamos fazer o mesmo para os outros

estados entretanto adicionados ao DFA

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0 6,7,2,3,4,8

Aula 718

NFA para DFA Vamos começar por exemplo pelo estado (5, 7,

2, 3, 4, 8)

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0 6,7,2,3,4,8

Aula 719

NFA para DFA Para a transição do “1” (ocorre do estado 3

para o 5)

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0 6,7,2,3,4,8

1

Aula 720

NFA para DFA O estado é dado pelo agrupamento dos estados que

sendo alcançáveis com 1 são depois alcançáveis com

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0 6,7,2,3,4,8

1

Aula 721

NFA para DFA Para a transição do “0” (ocorre do estado 4

para o 6)

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0 6,7,2,3,4,8

1

Aula 722

NFA para DFA O estado é dado pelo agrupamento dos estados que

sendo alcançáveis com 0 são depois alcançáveis com

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0 6,7,2,3,4,8

1

0

Aula 723

NFA para DFA Para a transição do “.” (ocorre do estado 8

para o 9)

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0 6,7,2,3,4,8

1

0

Aula 724

NFA para DFA O estado é dado pelo agrupamento dos estados que

sendo alcançáveis com . são depois alcançáveis com

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8 9,10,11,12,1615,7,2,3,4,8

0 6,7,2,3,4,8

1

0

Aula 725

NFA para DFA Da continuação da aplicação do algoritmo

resultaria

1 2

3

4

5

6

1

0

7

8

9 10

11

12

13

14

1

0

15

16

.

1,2,3,4,8

5,7,2,3,4,8

6,7,2,3,4,8

9,10,11,12,16

13,15,10,11,12,16

14,15,10,11,12,16

1

0

1

0

10

10

00

1 1

Recommended