IBM1088 Linguagens Formais e Teoria da Computação ...

67
IBM1088 Linguagens Formais e Teoria da Computa¸ ao Linguagens e Gram´ aticas Evandro Eduardo Seron Ruiz [email protected] Universidade de S˜ ao Paulo E.E.S. Ruiz (USP) LFA 1 / 47

Transcript of IBM1088 Linguagens Formais e Teoria da Computação ...

Page 1: IBM1088 Linguagens Formais e Teoria da Computação ...

IBM1088 Linguagens Formais e Teoria da

ComputacaoLinguagens e Gramaticas

Evandro Eduardo Seron [email protected]

Universidade de Sao Paulo

E.E.S. Ruiz (USP) LFA 1 / 47

Page 2: IBM1088 Linguagens Formais e Teoria da Computação ...

Frase do dia

Sofremos muito com o pouco que nos falta e gozamos pouco o muitoque temos.

William Shakespearea

aDramaturgo e poeta ingles (1564 – 1616).

E.E.S. Ruiz (USP) LFA 2 / 47

Page 3: IBM1088 Linguagens Formais e Teoria da Computação ...

Preambulo

Objetivo deste topico:

Definir formalmente dois conceitos, linguagem e gramatica

Preparar outros conceitos e propriedades para o estudo daslinguagens formais

E.E.S. Ruiz (USP) LFA 3 / 47

Page 4: IBM1088 Linguagens Formais e Teoria da Computação ...

Conteudo

1 Alfabeto

2 Palavra

3 Linguagem formal

4 Gramatica

E.E.S. Ruiz (USP) LFA 4 / 47

Page 5: IBM1088 Linguagens Formais e Teoria da Computação ...

Preambulo

Linguagem

O que e:

Para CCa sabemos que e um conceito (+ a ferramenta embutida)fundamental em Computacao, no processamento da informacao e naInformatica.

aMesmo antes de definir formalmente o que e linguagem.

E.E.S. Ruiz (USP) LFA 5 / 47

Page 6: IBM1088 Linguagens Formais e Teoria da Computação ...

Preambulo

Linguagem segundo Aurelio

Definicao

A linguagem e o uso da palavra articulada, ou escrita, como meio deexpressao, ou comunicacao entre pessoas.

Definicao ampla, pouco clara para Ciencias Exatas

Insuficiente para o estudo de linguagens em Computacao

Falta formalismo (Algebra, Matematica, um modelo)

Nao permite o desenvolvimento logico (algebrico, matematico)

E.E.S. Ruiz (USP) LFA 6 / 47

Page 7: IBM1088 Linguagens Formais e Teoria da Computação ...

Preambulo

Linguagem segundo Aurelio

Definicao

A linguagem e o uso da palavra articulada, ou escrita, como meio deexpressao, ou comunicacao entre pessoas.

Definicao ampla, pouco clara para Ciencias Exatas

Insuficiente para o estudo de linguagens em Computacao

Falta formalismo (Algebra, Matematica, um modelo)

Nao permite o desenvolvimento logico (algebrico, matematico)

E.E.S. Ruiz (USP) LFA 6 / 47

Page 8: IBM1088 Linguagens Formais e Teoria da Computação ...

Preambulo

Linguagem: inıcio da definicao

Vamos entao definir linguagem atraves de dois outros conceitos:

Alfabeto

Palavra

E.E.S. Ruiz (USP) LFA 7 / 47

Page 9: IBM1088 Linguagens Formais e Teoria da Computação ...

Alfabeto

Alfabeto

Definicao

Um alfabeto e um conjunto finito de sımbolos ou caracteres.

Portanto:

Um conjunto infinito nao e um alfabeto

Um conjunto vazio (∅) e um alfabeto

E.E.S. Ruiz (USP) LFA 8 / 47

Page 10: IBM1088 Linguagens Formais e Teoria da Computação ...

Alfabeto

Alfabeto

Definicao

Um alfabeto e um conjunto finito de sımbolos ou caracteres.

Portanto:

Um conjunto infinito nao e um alfabeto

Um conjunto vazio (∅) e um alfabeto

E.E.S. Ruiz (USP) LFA 8 / 47

Page 11: IBM1088 Linguagens Formais e Teoria da Computação ...

Alfabeto

Exemplos

Sao exemplos de alfabetos:

{a, b, c}{}A = {∀x ∈ N | x ≤ 10}

Nao sao exemplos de alfabetos:

N{a, ab, aa, ab, bb, aaa, . . .}

Representacao

Σ e normalmente usado para representar um alfabeto, o conjunto dossımbolos usados na linguagem.

E.E.S. Ruiz (USP) LFA 9 / 47

Page 12: IBM1088 Linguagens Formais e Teoria da Computação ...

Alfabeto

Exemplos

Sao exemplos de alfabetos:

{a, b, c}{}A = {∀x ∈ N | x ≤ 10}

Nao sao exemplos de alfabetos:

N{a, ab, aa, ab, bb, aaa, . . .}

Representacao

Σ e normalmente usado para representar um alfabeto, o conjunto dossımbolos usados na linguagem.

E.E.S. Ruiz (USP) LFA 9 / 47

Page 13: IBM1088 Linguagens Formais e Teoria da Computação ...

Alfabeto

Exemplos

Sao exemplos de alfabetos:

{a, b, c}{}A = {∀x ∈ N | x ≤ 10}

Nao sao exemplos de alfabetos:

N{a, ab, aa, ab, bb, aaa, . . .}

Representacao

Σ e normalmente usado para representar um alfabeto, o conjunto dossımbolos usados na linguagem.

E.E.S. Ruiz (USP) LFA 9 / 47

Page 14: IBM1088 Linguagens Formais e Teoria da Computação ...

Alfabeto

Exercıcio em sala: 1 minuto

Qual e o alfabeto da linguagem de programacao C?

E.E.S. Ruiz (USP) LFA 10 / 47

Page 15: IBM1088 Linguagens Formais e Teoria da Computação ...

Alfabeto

Alfabeto e linguagem de programacao

O alfabeto de uma linguagem de programacao, como a linguagem C,e o conjunto de todos os sımbolos usados na construcao deprogramas, tais como:

Letras;

Dıgitos;

Caracteres especiais; e

Espaco em branco

Alfabeto binario

Σ = {a, b}. Usaremos muito este alfabeto. Similar ao alfabeto realde hardware binario baseado em 0 e 1. Facilita o desenvolvimento deabordagens relacionadas a LFA.

E.E.S. Ruiz (USP) LFA 11 / 47

Page 16: IBM1088 Linguagens Formais e Teoria da Computação ...

Alfabeto

Alfabeto e linguagem de programacao

O alfabeto de uma linguagem de programacao, como a linguagem C,e o conjunto de todos os sımbolos usados na construcao deprogramas, tais como:

Letras;

Dıgitos;

Caracteres especiais; e

Espaco em branco

Alfabeto binario

Σ = {a, b}. Usaremos muito este alfabeto. Similar ao alfabeto realde hardware binario baseado em 0 e 1. Facilita o desenvolvimento deabordagens relacionadas a LFA.

E.E.S. Ruiz (USP) LFA 11 / 47

Page 17: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Palavra

Definicao

Uma palavra (ou cadeia de caracteres) sobre um alfabeto e umasequencia finita de sımbolos justapostos do alfabeto.

Notem que, pela definicao acima, uma cadeia sem sımbolos e umapalavra valida.Notacao: ε = palavra vazia ou cadeia vazia

E.E.S. Ruiz (USP) LFA 12 / 47

Page 18: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Prefixo e sufixo

Definicao

Um prefixo de uma palavra e qualquer sequencia inicial de sımbolosda palavra.

Definicao

Um sufixo de uma palavra e qualquer sequencia final de sımbolos dapalavra.

E.E.S. Ruiz (USP) LFA 13 / 47

Page 19: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Prefixo e sufixo

Definicao

Um prefixo de uma palavra e qualquer sequencia inicial de sımbolosda palavra.

Definicao

Um sufixo de uma palavra e qualquer sequencia final de sımbolos dapalavra.

E.E.S. Ruiz (USP) LFA 13 / 47

Page 20: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Exemplos

abcd e uma palavra sobre Σ = {a, b, c , d}ε, a, ab, abc , abcd sao prefixos na palavra abcd

ε, d , cd , bcd , abcd sao sufixos na palavra abcd

Definicao

Uma subpalavra de uma palavra e qualquer sequencia de sımboloscontıguos da palavra.

Portanto, qualquer prefixo ou sufixo e uma subpalavra.

E.E.S. Ruiz (USP) LFA 14 / 47

Page 21: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Exemplos

abcd e uma palavra sobre Σ = {a, b, c , d}ε, a, ab, abc , abcd sao prefixos na palavra abcd

ε, d , cd , bcd , abcd sao sufixos na palavra abcd

Definicao

Uma subpalavra de uma palavra e qualquer sequencia de sımboloscontıguos da palavra.

Portanto, qualquer prefixo ou sufixo e uma subpalavra.

E.E.S. Ruiz (USP) LFA 14 / 47

Page 22: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Outro exemplo!!!

Palavra

Considerando uma linguagem de programacao como C, um umprograma e uma palavra.

E.E.S. Ruiz (USP) LFA 15 / 47

Page 23: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Concatenacao de palavras

Definicao

A concatenacao de palavras, ou simplesmente concatenacao, e umaoperacao binaria, definida sobre um conjunto de palavras, a qualassocia a cada par de palavras uma palavra formada pelajustaposicao da primeira com a segunda.

E.E.S. Ruiz (USP) LFA 16 / 47

Page 24: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Exemplo de concatenacao

Suponha o alfabeto Σ = {a, b}. Suponha as palavras v = baaaa ew = bb.Vale que:

vw = baaaabb

vε = v = baaaa

Usamos aqui duas propriedades da concatenacao:

Elemento neutro εw = wε = w

Associatividade v(wt) = (vw)t

E.E.S. Ruiz (USP) LFA 17 / 47

Page 25: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Exemplo de concatenacao

Suponha o alfabeto Σ = {a, b}. Suponha as palavras v = baaaa ew = bb.Vale que:

vw = baaaabb

vε = v = baaaa

Usamos aqui duas propriedades da concatenacao:

Elemento neutro εw = wε = w

Associatividade v(wt) = (vw)t

E.E.S. Ruiz (USP) LFA 17 / 47

Page 26: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Exemplo de concatenacao

Suponha o alfabeto Σ = {a, b}. Suponha as palavras v = baaaa ew = bb.Vale que:

vw = baaaabb

vε = v = baaaa

Usamos aqui duas propriedades da concatenacao:

Elemento neutro εw = wε = w

Associatividade v(wt) = (vw)t

E.E.S. Ruiz (USP) LFA 17 / 47

Page 27: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Concatenacao sucessiva

Definicao

A concatenacao sucessiva de uma palavra, representada na forma deum expoente de uma palavra (e.g.: ‘w’), ou seja:

wn, tal que, n e o numero de concatenacoes sucessivas,

e definida indutivamente como:

w 0 = ε

wn = wwn−1, para n > 0

Percebam como ε e realmente uma palavra em Σ.

E.E.S. Ruiz (USP) LFA 18 / 47

Page 28: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Exemplo

Sejam: a um sımbolo de Σ, w uma palavra e n ∈ N. Entao:

w 3 = www

w 1 = w

an = aaaa . . . a︸ ︷︷ ︸n

E.E.S. Ruiz (USP) LFA 19 / 47

Page 29: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Importante!

Notacoes importantes

Se Σ representa um alfabeto, entao:

Σ∗ denota o conjunto de todas as palavras possıveis em Σ; e

Σ+ = Σ∗ − {ε}

E.E.S. Ruiz (USP) LFA 20 / 47

Page 30: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Conjunto de todas as palavras

Definicao

Seja Σ um alfabeto. Entao o conjunto de todas as palavras, Σ∗, eindutivamente definido como:

Base da inducao:

ε ∈ Σ∗

∀x ∈ Σ, x ∈ Σ∗

Passo da inducaoSe u e v sao palavras em Σ∗ entao a concatenacao uv euma palavra em Σ∗.

E.E.S. Ruiz (USP) LFA 21 / 47

Page 31: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Definicao alternativa

Definicao de palavra

Assim, uma definicao alternativa para palavra ou sentenca sobre umalfabeto Σ e qualquer elemento w de Σ∗, ou seja,

w ∈ Σ∗

E.E.S. Ruiz (USP) LFA 22 / 47

Page 32: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Exemplo

Considerando Σ = {a, b}, entao:

Σ+ = {a, b, aa, ab, ba, bb, aaa, . . .}Σ∗ = {ε, a, b, aa, ab, ba, bb, aaa, . . .}

E.E.S. Ruiz (USP) LFA 23 / 47

Page 33: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Comprimento de uma palavra

Definicao

O comprimento, ou tamanho, de uma palavra w, representado por|w |, e o numero de sımbolos que compoem a palavra.

Representacao do comprimento da palavra w : |w |Domınio: Σ∗

Imagem: N

E.E.S. Ruiz (USP) LFA 24 / 47

Page 34: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Comprimento de uma palavra

Definicao

O comprimento, ou tamanho, de uma palavra w, representado por|w |, e o numero de sımbolos que compoem a palavra.

Representacao do comprimento da palavra w : |w |Domınio: Σ∗

Imagem: N

E.E.S. Ruiz (USP) LFA 24 / 47

Page 35: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra

Exemplos

|abcd | = 4

|ε| = 0

E.E.S. Ruiz (USP) LFA 25 / 47

Page 36: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Linguagem formal

Definicao

Uma linguagem formal, ou simplesmente uma linguagem L definidasobre um alfabeto Σ, e um conjunto de palavras sobre Σ, ou seja,

L ⊆ Σ∗

Lembrando. . . Σ∗ sao as palavras possıveis, incluindo ε.

E.E.S. Ruiz (USP) LFA 26 / 47

Page 37: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Lembrando. . .

Palındromo

Um palındromo e uma palavra, ou qualquer outra sequencia sımbolos,cujo significado pode ser interpretado igualmente se lida tanto dadireita para a esquerda como da esquerda para a direita.

Exemplos: anilina, Renner, ‘A cara rajada da jararaca’.

E.E.S. Ruiz (USP) LFA 27 / 47

Page 38: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Exemplos de linguagens

Σ∗ e Σ+ sao linguagens sobre Σ. Lembrando que

Σ∗ 6= Σ+

Seja Σ = {a, b}, entao o conjunto de palındromos sobre Σ e umexemplo de linguagem infinita.Sao palavras desta linguagem ε, a, b, aa, bb, aba, bab, aaa, . . .

Uma linguagem de programacao

∅ e {ε} sao linguagens sobre qualquer alfabeto. Saibam que:

∅ 6= {ε}

E.E.S. Ruiz (USP) LFA 28 / 47

Page 39: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Exemplos de linguagens

Σ∗ e Σ+ sao linguagens sobre Σ. Lembrando que

Σ∗ 6= Σ+

Seja Σ = {a, b}, entao o conjunto de palındromos sobre Σ e umexemplo de linguagem infinita.Sao palavras desta linguagem ε, a, b, aa, bb, aba, bab, aaa, . . .

Uma linguagem de programacao

∅ e {ε} sao linguagens sobre qualquer alfabeto. Saibam que:

∅ 6= {ε}

E.E.S. Ruiz (USP) LFA 28 / 47

Page 40: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Exemplos de linguagens

Σ∗ e Σ+ sao linguagens sobre Σ. Lembrando que

Σ∗ 6= Σ+

Seja Σ = {a, b}, entao o conjunto de palındromos sobre Σ e umexemplo de linguagem infinita.Sao palavras desta linguagem ε, a, b, aa, bb, aba, bab, aaa, . . .

Uma linguagem de programacao

∅ e {ε} sao linguagens sobre qualquer alfabeto. Saibam que:

∅ 6= {ε}

E.E.S. Ruiz (USP) LFA 28 / 47

Page 41: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Exemplos de linguagens

Σ∗ e Σ+ sao linguagens sobre Σ. Lembrando que

Σ∗ 6= Σ+

Seja Σ = {a, b}, entao o conjunto de palındromos sobre Σ e umexemplo de linguagem infinita.Sao palavras desta linguagem ε, a, b, aa, bb, aba, bab, aaa, . . .

Uma linguagem de programacao

∅ e {ε} sao linguagens sobre qualquer alfabeto. Saibam que:

∅ 6= {ε}

E.E.S. Ruiz (USP) LFA 28 / 47

Page 42: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Diferenca conceitual entre ∅ e {ε}

Imaginem uma palavra: abab

abab = ababε

Imaginem a leitura, caracter a caracter, desta palavra

Existira o momento da leitura de ε, o final da cadeia

∅ e a ausencia de palavra

w = ε e a palavra vazia, mas e uma palavra

E.E.S. Ruiz (USP) LFA 29 / 47

Page 43: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Diferenca conceitual entre ∅ e {ε}

Imaginem uma palavra: abab

abab = ababε

Imaginem a leitura, caracter a caracter, desta palavra

Existira o momento da leitura de ε, o final da cadeia

∅ e a ausencia de palavra

w = ε e a palavra vazia, mas e uma palavra

E.E.S. Ruiz (USP) LFA 29 / 47

Page 44: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Diferenca conceitual entre ∅ e {ε}

Imaginem uma palavra: abab

abab = ababε

Imaginem a leitura, caracter a caracter, desta palavra

Existira o momento da leitura de ε, o final da cadeia

∅ e a ausencia de palavra

w = ε e a palavra vazia, mas e uma palavra

E.E.S. Ruiz (USP) LFA 29 / 47

Page 45: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Diferenca conceitual entre ∅ e {ε}, continua

Imaginem a linguagem L = {a, ab, abab}ε /∈ L, ou seja, a cadeia vazia nao faz parte de L

Mas, como em todo conjunto, ∅ ∈ L

2L ={∅, {a}, {ab}, {abab}, {aab}, {aabab}, {ababab}, {a, ab, abab}}

E.E.S. Ruiz (USP) LFA 30 / 47

Page 46: IBM1088 Linguagens Formais e Teoria da Computação ...

Linguagem formal

Diferenca conceitual entre ∅ e {ε}, continua

Imaginem a linguagem L = {a, ab, abab}ε /∈ L, ou seja, a cadeia vazia nao faz parte de L

Mas, como em todo conjunto, ∅ ∈ L

2L ={∅, {a}, {ab}, {abab}, {aab}, {aabab}, {ababab}, {a, ab, abab}}

E.E.S. Ruiz (USP) LFA 30 / 47

Page 47: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Gramatica: definicao informal

E basicamente um conjunto finito de regras para gerar palavras.O conjunto de todas as palavras geradas pela gramatica define umalinguagem.

E.E.S. Ruiz (USP) LFA 31 / 47

Page 48: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Assim. . .

Um programa = palavra

Conjunto de todas as palavras de uma gramatica de uma LP =Linguagem de programacao

Conjunto de todos os programas (e.g.: Na linguagem C)

Porem, esta nao e uma definicao formalmente adequada, oualgebricamente ideal para o estudo de LFA

E.E.S. Ruiz (USP) LFA 32 / 47

Page 49: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Assim. . .

Um programa = palavra

Conjunto de todas as palavras de uma gramatica de uma LP =Linguagem de programacao

Conjunto de todos os programas (e.g.: Na linguagem C)

Porem, esta nao e uma definicao formalmente adequada, oualgebricamente ideal para o estudo de LFA

E.E.S. Ruiz (USP) LFA 32 / 47

Page 50: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Gramatica

Definicao

Uma gramatica de Chomsky, ou uma gramatica irrestrita, aquidenotada por G , e uma quadrupla ordenada

G = (V ,T ,P , S)

em que

V e um conjunto de sımbolos nao terminais

T e um conjunto de sımbolos terminais, para T disjunto de V

P : (V ∪ T )+ → (V ∪ T )∗ e uma relacao finita chamada derelacao de producoes. Cada par e denominado regra de producaoou producao

S e um elemento de V denominado sımbolo inicial.

E.E.S. Ruiz (USP) LFA 33 / 47

Page 51: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Em termos praticos. . . Nem tanto!

Uma regra de producao pode ser representada como:

α→ β

Um grupo de regras de producao da forma

α→ β1;α→ β2; . . . ;α→ βn

e pode ser abreviado como:

α→ β1 | β2 | . . . | βn

Importante!

As regras de producao definem as condicoes de geracao das palavrasda linguagem.

E.E.S. Ruiz (USP) LFA 34 / 47

Page 52: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Em termos praticos. . . Nem tanto!

Uma regra de producao pode ser representada como:

α→ β

Um grupo de regras de producao da forma

α→ β1;α→ β2; . . . ;α→ βn

e pode ser abreviado como:

α→ β1 | β2 | . . . | βn

Importante!

As regras de producao definem as condicoes de geracao das palavrasda linguagem.

E.E.S. Ruiz (USP) LFA 34 / 47

Page 53: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Derivacao: informalmente

Derivacao

A aplicacao de uma regra de producao e denominada derivacao deuma palavra e e formalmente definida como um par de uma relacao.

Nota:

A aplicacao sucessiva de regras de producao (Fecho Transitivo daRelacao de Derivacao) permite derivar as palavras da linguagemrepresentada pela gramatica.

E.E.S. Ruiz (USP) LFA 35 / 47

Page 54: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Derivacao: informalmente

Derivacao

A aplicacao de uma regra de producao e denominada derivacao deuma palavra e e formalmente definida como um par de uma relacao.

Nota:

A aplicacao sucessiva de regras de producao (Fecho Transitivo daRelacao de Derivacao) permite derivar as palavras da linguagemrepresentada pela gramatica.

E.E.S. Ruiz (USP) LFA 35 / 47

Page 55: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Relacao de derivacao

Definicao

Seja G = (V ,T ,P , S) uma gramatica. Uma derivacao e um par darelacao de derivacao denotada por ⇒ com domınio em (V ∪ T )+ eimagem (codomınio) (V ∪ T )∗ a.Um par 〈α, β〉 da relacao de derivacao e representado na forma infixacomo:

α⇒ β.

Esta relacao e definida como:

a(V ∪ T )+ ⇒ (V ∪ T )∗

proximo slide. . .

E.E.S. Ruiz (USP) LFA 36 / 47

Page 56: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Relacao de derivacao: continua. . .

Definicao

Esta relacao e definida como:

Para toda producao na forma S → β, (S sımbolo inicial em G )o seguinte par pertence a relacao de derivacao

S ⇒ β

Para todo par η ⇒ ρ α σ da relacao de derivacao, se α→ β eregra de P , entao o seguinte par tambem pertence a relacao dederivacao

η ⇒ ρ β σ

Vemos que uma derivacao e a substituicao de uma subpalavra deacordo com uma regra de producao.

E.E.S. Ruiz (USP) LFA 37 / 47

Page 57: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Notem que:

Existe uma derivacao que e um par de (V ∪ T )+ ⇒ (V ∪ T )∗

Um par da relacao de derivacao 〈α, β〉 e representado porα⇒ β;

Esta relacao e definida atraves de regras de producao na formainicial S → β

E.E.S. Ruiz (USP) LFA 38 / 47

Page 58: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Uma coisa e uma coisa, outra coisa e. . .

Derivacao A derivacao de uma cadeia e consequencia da aplicacaode regras de producao que transformam um sımboloinicial nesta cadeia.A derivacao prova que a cadeia pertence a linguagemdescrita pela gramatica.

Regras de producao E a definicao da regra de derivacao.

E.E.S. Ruiz (USP) LFA 39 / 47

Page 59: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Passos de derivacao

Os sucessivos passos de derivacao sao definidos como:

⇒∗ Fecho transitivo e reflexivo da relacao ⇒, ou seja, zero oumais passos sucessivos de derivacao;

⇒+ Fecho transitivo da relacao ⇒, ou seja, um ou mais passossucessivos de derivacao;

⇒i Exatos i passos de derivacoes sucessivas, i ∈ N.

E.E.S. Ruiz (USP) LFA 40 / 47

Page 60: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Linguagem gerada

Definicao

Seja G = (V ,T ,P , S) uma gramatica. A linguagem gerada por G ,denotada por L(G ), e composta por todas as palavras de sımbolosterminais derivaveis a partir do sımbolo inicial S , ou seja,

L(G ) = {w ∈ T ∗ | S ⇒+ w}

E.E.S. Ruiz (USP) LFA 41 / 47

Page 61: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Exemplo

Suponha G = (V ,T ,P , S) uma gramatica capaz de gerar qualquernumero natural valido. Assim G , na qual:

V = {N ,D}, sımbolos nao terminais

T = {0, 1, 2, . . . , 9}, sımbolos terminais

P = {N → D,N → DN ,D → 0 | 1 | . . . | 9}gera, sintaticamente, N.Perceba que G gera distintamente 0123 e 123

E.E.S. Ruiz (USP) LFA 42 / 47

Page 62: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Regra × Passo da derivacao

Passo da derivacao Regra usadaN ⇒ N → DNDN ⇒ D → 22N ⇒ N → DN2DN ⇒ D → 424N ⇒ N → D24D ⇒ D → 3243

Existe alguma outra derivacao para 243?

Portanto, indica-se que:

⇒∗ 243

⇒+ 243

⇒6 243

E.E.S. Ruiz (USP) LFA 43 / 47

Page 63: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Regra × Passo da derivacao

Passo da derivacao Regra usadaN ⇒ N → DNDN ⇒ D → 22N ⇒ N → DN2DN ⇒ D → 424N ⇒ N → D24D ⇒ D → 3243

Existe alguma outra derivacao para 243? Portanto, indica-se que:

⇒∗ 243

⇒+ 243

⇒6 243

E.E.S. Ruiz (USP) LFA 43 / 47

Page 64: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Outro exemplo

Seja G = ({S ,X ,Y ,A,B ,F}, {a, b},P , S) uma gramatica na qual:

P = {S → XY ,

X → XaA | XbB | F

Aa→ aA,Ab → bA,AY → Ya,

Ba→ aB ,Bb → bB ,BY → Yb,

Fa→ aF ,Fb → bF ,FY → ε}.

G gera a linguagem cujas palavras sao tais que a primeira metade eigual a segunda metade, ou seja,

{ww | w e palavra de {a, b}∗}

Veja a seguir:

E.E.S. Ruiz (USP) LFA 44 / 47

Page 65: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Regra × Passo da derivacao para a palavra baba

Passo da derivacao Regra usadaS ⇒ S → XYXY ⇒ X → XaAXaAY ⇒ AY → YaXaYa⇒ X → XbBXbBaYa⇒ Ba→ aBXbaBYa⇒ BY → YbXbaYba⇒ X → FFbaYba⇒ Fb → bFbFaYba⇒ Fa→ aFbaFYba⇒ FY → εbaba

E.E.S. Ruiz (USP) LFA 45 / 47

Page 66: IBM1088 Linguagens Formais e Teoria da Computação ...

Gramatica

Exercıcio em sala: 5 minutos

Existe alguma outra derivacao para baba?

E.E.S. Ruiz (USP) LFA 46 / 47

Page 67: IBM1088 Linguagens Formais e Teoria da Computação ...

Palavra final

Caros,

Teremos mais na proxima aula, inclusive exercıcios.Estudem, pois novos conceitos dependerao dos conceitos estudadoshoje.

E.E.S. Ruiz (USP) LFA 47 / 47