Linguagens Livres de Contexto 1 Linguagens Regulares 2

  • Slides: 47
Download presentation
Linguagens Livres de Contexto 1

Linguagens Livres de Contexto 1

Linguagens Regulares 2

Linguagens Regulares 2

Linguagens Livres de Contexto Linguagens Regulares 3

Linguagens Livres de Contexto Linguagens Regulares 3

Linguagens Livres de Contexto Gramáticas Livres de Contexto Autômatos de Pilha pilha autômato 4

Linguagens Livres de Contexto Gramáticas Livres de Contexto Autômatos de Pilha pilha autômato 4

Gramáticas Livres de Contexto 5

Gramáticas Livres de Contexto 5

Exemplo Uma gramática livre de contexto : Uma derivação: 6

Exemplo Uma gramática livre de contexto : Uma derivação: 6

Uma gramática livre de contexto : Outra derivação: 7

Uma gramática livre de contexto : Outra derivação: 7

Exemplo Uma gramática livre de contexto : Uma derivação: 9

Exemplo Uma gramática livre de contexto : Uma derivação: 9

Uma gramática livre de contexto : Outra derivação: 10

Uma gramática livre de contexto : Outra derivação: 10

11

11

Exemplo Uma gramática livre de contexto : Uma derivação: 12

Exemplo Uma gramática livre de contexto : Uma derivação: 12

Uma gramática livre de contexto : Uma derivação: 13

Uma gramática livre de contexto : Uma derivação: 13

Definição: Gramática Livre de Contexto Gramática Variáveis Símbolos Variável terminais inicial Produções da forma:

Definição: Gramática Livre de Contexto Gramática Variáveis Símbolos Variável terminais inicial Produções da forma: é um string de variáveis e terminais 15

Definição: Linguagem Livre de Contexto Uma linguagem é livre de contexto se existe uma

Definição: Linguagem Livre de Contexto Uma linguagem é livre de contexto se existe uma gramática livre de contexto tal que 16

Ordem de Derivação derivação mais à esquerda : derivação mais à direita: 17

Ordem de Derivação derivação mais à esquerda : derivação mais à direita: 17

derivação mais à esquerda: derivação mais à direita: 18

derivação mais à esquerda: derivação mais à direita: 18

Árvores de Derivação 19

Árvores de Derivação 19

20

20

21

21

22

22

23

23

Árvore de derivação 24

Árvore de derivação 24

Árvore de derivação resultado 25

Árvore de derivação resultado 25

Árvore de derivação parcial 26

Árvore de derivação parcial 26

Árvore de derivação parcial 27

Árvore de derivação parcial 27

forma sentencial Árvore de derivação parcial resulta 28

forma sentencial Árvore de derivação parcial resulta 28

À vezes, a ordem de derivação não importa Mais à esquerda: Mais à direita:

À vezes, a ordem de derivação não importa Mais à esquerda: Mais à direita: Mesma árvore de derivação 29

Ambiguidade 30

Ambiguidade 30

derivação mais à esquerda 31

derivação mais à esquerda 31

derivação mais à esquerda 32

derivação mais à esquerda 32

Duas árvores de derivação 33

Duas árvores de derivação 33

A gramática é ambígua: string tem duas árvores de derivação 34

A gramática é ambígua: string tem duas árvores de derivação 34

Definição: Uma gramática livre de contexto é ambígua se algum string tem duas ou

Definição: Uma gramática livre de contexto é ambígua se algum string tem duas ou mais árvores de derivação 35

Em outras palavras: Uma gramática livre de contexto é ambígua se algum string tem

Em outras palavras: Uma gramática livre de contexto é ambígua se algum string tem duas ou mais derivações mais à esquerda (ou mais à direita) 36

Porque ambiguidade importa? tome 37

Porque ambiguidade importa? tome 37

38

38

39

39

Resultado correto: 40

Resultado correto: 40

 • Ambiguidade é ruim para linguagens de programação • Gostaríamos de remover ambiguidade

• Ambiguidade é ruim para linguagens de programação • Gostaríamos de remover ambiguidade 41

Corrigindo a gramática ambígua: Nova gramática não ambígua: 42

Corrigindo a gramática ambígua: Nova gramática não ambígua: 42

43

43

Única árvore de derivação 44

Única árvore de derivação 44

A gramática : não é ambígua: Todo string tem uma única árvore de derivação

A gramática : não é ambígua: Todo string tem uma única árvore de derivação 45

Ambiguidade Inerente Algumas linguagens livres de contexto possuem apenas gramáticas ambíguas Exemplo: 46

Ambiguidade Inerente Algumas linguagens livres de contexto possuem apenas gramáticas ambíguas Exemplo: 46

O string possui duas árvores de derivação 47

O string possui duas árvores de derivação 47