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

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

Jan 10, 2016

Download

Documents

Yehuda

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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