25
Aula 7 1 Conversão de um NFA para um DFA com um exemplo Compiladores, Aula Nº 7 (suplementos) João M. P. Cardoso

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

  • Upload
    yehuda

  • View
    44

  • Download
    0

Embed Size (px)

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

Page 1: Conversão de um NFA para um DFA com um exemplo

Aula 71

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

Compiladores, Aula Nº 7 (suplementos)

João M. P. Cardoso

Page 2: Conversão de um NFA para um DFA com um exemplo

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

.

Page 3: Conversão de um NFA para um DFA com um exemplo

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

.

Page 4: Conversão de um NFA para um DFA com um exemplo

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

.

Page 5: Conversão de um NFA para um DFA com um exemplo

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

Page 6: Conversão de um NFA para um DFA com um exemplo

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

Page 7: Conversão de um NFA para um DFA com um exemplo

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

Page 8: Conversão de um NFA para um DFA com um exemplo

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

Page 9: Conversão de um NFA para um DFA com um exemplo

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

Page 10: Conversão de um NFA para um DFA com um exemplo

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

Page 11: Conversão de um NFA para um DFA com um exemplo

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

Page 12: Conversão de um NFA para um DFA com um exemplo

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

Page 13: Conversão de um NFA para um DFA com um exemplo

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

Page 14: Conversão de um NFA para um DFA com um exemplo

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

Page 15: Conversão de um NFA para um DFA com um exemplo

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

Page 16: Conversão de um NFA para um DFA com um exemplo

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

Page 17: Conversão de um NFA para um DFA com um exemplo

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

Page 18: Conversão de um NFA para um DFA com um exemplo

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

Page 19: Conversão de um NFA para um DFA com um exemplo

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

Page 20: Conversão de um NFA para um DFA com um exemplo

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

Page 21: Conversão de um NFA para um DFA com um exemplo

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

Page 22: Conversão de um NFA para um DFA com um exemplo

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

Page 23: Conversão de um NFA para um DFA com um exemplo

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

Page 24: Conversão de um NFA para um DFA com um exemplo

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

Page 25: Conversão de um NFA para um DFA com um exemplo

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