tópicostópicos itens 01. terminologia 02. operações básicas 03. representação de linguagens...

41

Upload: isaac-ramires-damasio

Post on 07-Apr-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06
Page 2: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

tópicostópicositens

01. Terminologia 02. Operações básicas03. Representação de

linguagens04. Formalização de

gramáticas05. Processo de

derivação06. Construção de

gramáticas formais

07. Hierarquia de Chomsky

08. Notações gramaticais

09. Transformação entre notações

10. Ambigüidade 11. Gramática de

Transdução

Page 3: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

terminologiaterminologiaterminologia básica

Átomo Alfabeto Cadeia Sentença Linguagem

01

• Elemento individual ou símbolo que será utilizado pela linguagem.

• Menor parte que irá constituir os componentes de uma determinada linguagem.

Page 4: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

terminologiaterminologiaterminologia básica

Átomo Alfabeto Cadeia Sentença Linguagem

01

• Conjunto de todos os átomos que serão utilizados para compor uma determinada linguagem.

• Várias linguagens distintas podem utilizar o mesmo conjunto alfabeto.

Page 5: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

terminologiaterminologiaterminologia básica

Átomo Alfabeto Cadeia Sentença Linguagem

01

• Qualquer combinação de átomos de um determinado conjunto alfabeto.

Page 6: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

terminologiaterminologiaterminologia básica

Átomo Alfabeto Cadeia Sentença Linguagem

01

• Qualquer cadeia que tenha algum significado para a linguagem que está sendo definida.

Page 7: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

terminologiaterminologiaterminologia básica

Átomo Alfabeto Cadeia Sentença Linguagem

01

• Coleção ou conjunto de sentenças específicas.

Page 8: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasComprimento

Funcionamento da operação de comprimento Tem apenas um operando. É aplicada em cadeias (ou sentenças). Gera como resultado um número inteiro.

Definição da operação de comprimento: Cada cadeia é formada pela justaposição de átomos

de um conjunto alfabeto. A operação de comprimento indica quantos átomos

foram necessários para a construção daquela cadeia.

Representação da operação de comprimento: Dada uma cadeia qualquer O comprimento da cadeia é um número n Representamos a operação de comprimento da forma.

02

| | = n

Page 9: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasComprimento (cont)

Cadeias especiais:

Cadeia vazia: É toda cadeia de comprimento zero. É formada de zero átomos do alfabeto. Representada pelo símbolo

Cadeia elementar: É toda cadeia de comprimento um. É formada de apenas um átomo do alfabeto. Aplicada em cadeias (ou sentenças).

02

Page 10: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasConcatenação

Funcionamento da operação de concatenação Tem dois operandos É aplicada entre dois átomos ou É aplicada entre um átomo e uma cadeia ou É aplicada entre duas cadeias Gera como resultado sempre uma cadeia

Definição da concatenação: Cada cadeia é formada pela justaposição de átomos de um

conjunto alfabeto. Concatenar significa juntar um átomo ou todos os átomos

embutidos em uma cadeia a um outro átomo ou a todos os átomos embutidos numa outra cadeia.

A ordem na qual os átomos estão dispostos influencia no resultado da operação.

02

Page 11: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasComprimento

Funcionamento da operação de comprimento Tem apenas um operando. É aplicada em cadeias (ou sentenças). Gera como resultado um número inteiro.

Definição da operação de comprimento: Cada cadeia é formada pela justaposição de átomos

de um conjunto alfabeto. A operação de comprimento indica quantos átomos

foram necessários para a construção daquela cadeia.

Representação da operação de comprimento: Dada uma cadeia qualquer O comprimento da cadeia é um número n Representamos a operação de comprimento da forma.

02

| | = n

Page 12: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasComprimento (cont)

Cadeias especiais:

Cadeia vazia: É toda cadeia de comprimento zero. É formada de zero átomos do alfabeto. Representada pelo símbolo

Cadeia elementar: É toda cadeia de comprimento um. É formada de apenas um átomo do alfabeto. Aplicada em cadeias (ou sentenças).

02

Page 13: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasConcatenação

Funcionamento da operação de concatenação Tem dois operandos É aplicada entre dois átomos ou É aplicada entre um átomo e uma cadeia ou É aplicada entre duas cadeias Gera como resultado sempre uma cadeia

Definição da concatenação: Cada cadeia é formada pela justaposição de átomos de um

conjunto alfabeto. Concatenar significa juntar um átomo ou todos os átomos

embutidos em uma cadeia a um outro átomo ou a todos os átomos embutidos numa outra cadeia.

A ordem na qual os átomos estão dispostos influencia no resultado da operação.

02

Page 14: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasConcatenação (cont)

Representação da operação de concatenação Dadas duas cadeias quaisquer chamadas de e A concatenação entre estas duas cadeias gera uma

terceira cadeia chamada de Representamos a operação de concatenação das formas:

ou

Podemos considerar a concatenação entre átomos e entre átomo e cadeia como um caso particular do caso acima onde o átomo foi considerado como uma cadeia elementar

02

= . =

Page 15: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasConcatenação (cont)

Características da operação de concatenação Operação associativa

Operação não comutativa

Elemento neutro é a cadeia vazia

02

. = . =

. ≠ .

( . ) . . ( . )

Page 16: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasConcatenação (cont)

Considerações em relação ao comprimento Na concatenação entre dois átomos o comprimento da

cadeia resultante é sempre 2 Na concatenação entre um átomo e uma cadeia o

comprimento da cadeia resultante é sempre o comprimento da cadeia original + 1

Na concatenação entre duas cadeias o comprimento da cadeia concatenada é sempre a soma dos comprimentos das cadeias operadas

Em resumo:

se então

02

. = | | + | | = | |

Page 17: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasFechamento

Funcionamento da operação de fechamento Tem apenas um operando. É aplicada sobre um conjunto finito e não vazio

(normalmente o conjunto alfabeto). Gera como resultado um conjunto infinito.

Tipos de fechamento existentes: Existem dois tipos diferentes de operação de fechamento

1. Fechamento recursivo e transitivo 2. Fechamento transitivo ou

Fechamento transitivo puro e simples

02

Page 18: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasFechamento (cont)

Fechamento recursivo e transitivo Aplicado sobre um determinado conjunto produz um segundo

conjunto com todas as possíveis combinações dos elementos do primeiro.

Admite gerar qualquer cadeia formada por qualquer quantidade de elementos do primeiro conjunto, até nenhum elemento.

Inclui a cadeia vazia no conjunto gerado

Fechamento transitivo Aplicado sobre um determinado conjunto produz um segundo

conjunto com quase todas as possíveis combinações dos elementos do primeiro.

Admite gerar qualquer cadeia formada por pelo menos um elementos do primeiro conjunto.

Exceto a cadeia vazia, possui todos os outros elementos do conjunto gerado pelo fechamento recursivo e transitivo.

02

Page 19: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasFechamento (cont)

Representação da operação de fechamento Dado um conjunto alfabeto finito e não vazio O fechamento recursivo e transitivo sobre este

conjunto alfabeto () é representado da forma O fechamento transitivo sobre este conjunto

alfabeto () é representado da forma A diferença entre o conjunto gerado pelo fechamento

recursivo e transitivo e o conjunto gerado pelo fechamento transitivo é apenas a cadeia vazia:

onde

* e + são conjuntos gerais e englobam toda a sorte de linguagens possíveis de se construir a parir do conjunto

02

*+

* = + U {} +

Page 20: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasConcatenação de linguagens

Funcionamento da operação de concatenação Tem dois operandos É aplicada entre duas linguagens Gera como resultado uma linguagem Se as duas linguagens operadas forem conjuntos finitos o

resultado da operação de concatenação de linguagens é um conjunto finito. Caso contrário o resultado da operação de concatenação de linguagens é um conjunto infinito

Definição da concatenação de linguagens: Cada linguagem é formada de um conjunto específico de

cadeias (chamadas de sentenças) Concatenar linguagens significa juntar uma cadeia de uma

linguagem a outra cadeia de outra linguagem, gerando um outro conjunto linguagem.

A ordem na qual as cadeias estão dispostas influencia no resultado da operação.

02

Page 21: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasConcatenação de linguagens (cont)

Representação da operação de concatenação Dadas duas linguagens quaisquer X e Y A concatenação entre estas duas linguagens gera uma

terceira linguagem Z Representamos a operação de concatenação das formas:

ou

No conjunto das sentenças de Z temos todas as combinações possíveis entre uma sentença de X e outra sentença de Y, nesta ordem.

02

XY = ZX . Y = Z

Page 22: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

operações básicasoperações básicasConcatenação de linguagens (cont)

Características da operação de concatenação Operação associativa

Operação não comutativa

Elemento neutro é a cadeia vaziaqualquer linguagem que possua como conjunto de sentenças apenas a cadeia vazia se então

02

X . L = L . X = X

X . Y ≠ Y . X

(X . Y) . Z X . (Y . Z)

L = {}

Page 23: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

como formalizarcomo formalizarRepresentação linguagens Enumeração Gramáticas Reconhecedores

03

Consiste em listar todas as sentenças da linguagem

Representação válida apenas para linguagens finitas Para decidir se uma cadeia é ou não sentença da

linguagem deve ser feita uma busca completa no conjunto de sentenças definidas.

Page 24: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

como formalizarcomo formalizarRepresentação linguagens Enumeração Gramáticas Reconhecedores

03

É um dispositivo gerador de sentenças

Define um conjunto de leis de formação para todas as sentenças de uma linguagem

Pertence à linguagem? Deve-se tentar formar uma cadeia igual pela aplicação das leis de formação da gramática.

Derivação: processo de obter uma sentença pelas regras de uma gramática formal

Definição de linguagem por gramáticas: conjunto de todas as sentenças possíveis de serem geradas através das regras de formação definidas.

Page 25: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

como formalizarcomo formalizarRepresentação linguagens Enumeração Gramáticas Reconhecedores

03

É um dispositivo testador de cadeias

Define um conjunto de regras de aceitação para todas as sentenças de uma linguagem

Pertence à linguagem? Deve-se aplicar as regras de aceitação a esta cadeia

Reconhecimento: processo de aplicação das regras de aceitação de um reconhecedor a uma cadeia

Definição de linguagem por reconhecedores: conjunto de todas as cadeias que passam com resultado positivo nas regras de aceitação (e portanto são sentenças).

Page 26: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

gramáticasgramáticasFormalização

É definida através de uma quádrupla ordenada

Os quatro elementos que formam a gramática: Conjunto Vocabulário, Conjunto Alfabeto, Conjunto das Produções Gramaticais e Símbolo Inicial.

Representada da forma:

04

G = ( V, , P, S )

Page 27: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

gramáticasgramáticasVocabulário (V)

Conjunto de todos os elementos simbólicos utilizados para definir as leis de formação da gramática.

Contém todos os elementos do conjunto alfabeto (os chamados símbolos terminais).

Contém também os símbolos auxiliares criados para a montagem das regras de formação (os chamados símbolos não terminais).

04

G = ( V, , P, S )

Page 28: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

gramáticasgramáticasAlfabeto ()

Conjunto de todos os elementos simbólicos utilizados para definir as sentenças da linguagem

Também chamado de conjunto dos símbolos terminais Conjunto finito e não vazio

Define junto com o Vocabulário (V) outro conjunto Conjunto dos símbolos não terminais ( N ) Formado pelos outros elementos de V que são utilizados

para definir construções intermediárias ou auxiliares São os elementos do Vocabulário (V) que não estão

definidos no conjunto alfabeto (), ou seja: onde

04

G = ( V, , P, S )

V = N N =

Page 29: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

gramáticasgramáticasProduções gramaticais (P)

Conjunto das leis de formação de sentenças Principal elemento definidor da gramática Cada elemento deste conjunto é chamado de lei de

formação ou de produção gramatical Toda produção gramatical segue um formato padrão.

Utiliza uma cadeia (que chamaremos de ) gerando ou produzindo uma outra cadeia (que chamaremos de ).

04

G = ( V, , P, S )

Page 30: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

gramáticasgramáticasProduções gramaticais (P)

Toda produção gramatical deve obedecer a duas restrições básicas.

Restrição a ser seguida pela cadeia geradora ():

Restrição a ser seguida pela cadeia gerada ():

04

G = ( V, , P, S )

V* . N . V*

V*

Page 31: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

gramáticasgramáticasSímbolo Inicial (S)

Símbolo que inicia todo o processo de produção de sentenças da linguagem

Único elemento definidor da gramática que não é um conjunto

É um elemento que pertence ao conjunto Vocabulário (V)

04

G = ( V, , P, S )

S V

Page 32: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

derivaçãoderivaçãodefinição

O que é derivação É um processo utilizado para obter uma sentença completa a

partir das regras de formação definidas numa gramática formal.

As produções gramaticais (conjunto de regras de formação de uma gramática), junto com os outros elementos de uma gramática formal, compõem um sistema de substituição de cadeias.

A derivação é esta substituição acontecendo para uma sentença específica da linguagem

05

Page 33: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

derivaçãoderivaçãofuncionamento

Como funciona a derivação Todo processo de derivação é iniciado pelo símbolo inicial da

gramática (S). O símbolo inicial deve ser substituído utilizando alguma regra

onde a cadeia geradora () seja o símbolo inicial. A aplicação desta regra coloca no lugar do símbolo inicial a

cadeia gerada () pela regra. Sobre a cadeia resultante pode ser aplicada qualquer regra de

substituição especificada no conjunto de produções gramaticais, em qualquer ordem e quantas vezes forem necessárias.

Estas regras são aplicadas quantas vezes forem necessárias até que se tenha uma sentença da linguagem formada.

05

Page 34: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

derivaçãoderivaçãoexemplo

A cadeia será uma sentença da linguagem: se existir uma seqüência de substituições definidas

na gramática (usando as regras existentes no conjunto de produções gramaticais)

que permita sair do símbolo inicial da linguagem e chegar até a cadeia :

S 1 2 3 ... n

Este processo inteiro é o que chamamos de derivação da sentença

05

Page 35: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

derivaçãoderivaçãorepresentação

O símbolo que é usado para representar derivações

É diferente do símbolo usado para construir as regras de substituição

São operações diferentes As derivações (ou aplicações das regras) mapeiam

o produto cartesiano

As regras de substituição mapeiam o produto cartesiano

05

V+ x V*

V* N V* x V*

Page 36: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

derivaçãoderivaçãotipos de derivação

Derivação direta A derivação direta é obtida pela aplicação de uma

única regra de substituição. Utiliza o símbolo

Derivação não trivial A derivação não trivial é obtida pela aplicação de pelo menos

uma regra de substituição (uma ou mais regras de substituição aplicadas). Utiliza o símbolo

Derivação (pura e simples) A derivação aplica todas as regras de substituição

necessárias para partir do símbolo inicial para chegar a uma cadeia de símbolos do Vocabulário. Utiliza o símbolo

05

+

*

Page 37: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

derivaçãoderivaçãocomprimento

Comprimento de uma derivação O comprimento de uma derivação é a quantidade de regras

de produção gramatical que foram utilizadas em um passo de substituição (entre um e outro momento indicado durante o processo de derivação).

Utiliza o símboloonde n representa um número inteiro que indica a quantidade de regras usadas

05

n

Page 38: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

derivaçãoderivaçãoformas sentenciais

O que é uma forma sentencial Dada uma gramática formal É qualquer cadeia Formada de elementos do conjunto vocabulário (V). Obtida a partir do símbolo inicial (S). Pela aplicação das regras de substituição (elementos do

conjunto de produções gramaticais) da gramática.

05

Page 39: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

derivaçãoderivaçãosentenças

O que é sentença É também uma forma sentencial É uma forma sentencial especial onde todos os elementos

formadores de sua cadeia são elementos do conjunto alfabeto ().

Cada sentença gerada faz parte da linguagem que está sendo definida pela gramática formal.

05

Page 40: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06

derivaçãoderivaçãolinguagem

O que é linguagem A linguagem definida pela gramática formal (G) É indicada pela notação L(G) É definida como sendo o conjunto

05

{ * | S }

Page 41: tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06