tó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. 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
01
terminologia básica





Átomo
Alfabeto
Cadeia
Sentença
Linguagem
terminologia
• Elemento individual
ou símbolo que será
utilizado pela linguagem.
• Menor parte que irá
constituir os componentes
de uma determinada
linguagem.
01
terminologia básica





Átomo
Alfabeto
Cadeia
Sentença
Linguagem
terminologia
• Conjunto de todos os
átomos que serão utilizados
para compor uma
determinada linguagem.
• Várias linguagens distintas
podem utilizar o mesmo
conjunto alfabeto.
01
terminologia básica





Átomo
Alfabeto
Cadeia
Sentença
Linguagem
terminologia
• Qualquer combinação de
átomos de um determinado
conjunto alfabeto.
01
terminologia básica





Átomo
Alfabeto
Cadeia
Sentença
Linguagem
terminologia
• Qualquer cadeia que tenha
algum significado para a
linguagem que está sendo
definida.
01
terminologia básica





Átomo
Alfabeto
Cadeia
Sentença
Linguagem
terminologia
• Coleção ou conjunto
de sentenças específicas.
02
Comprimento
operações básicas
Funcionamento da operação de comprimento



Tem apenas um operando.
É aplicada em cadeias (ou sentenças).
Gera como resultado um número inteiro.
||=n
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
Comprimento (cont)
operações básicas
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
Concatenação
operações básicas
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
Comprimento
operações básicas
Funcionamento da operação de comprimento



Tem apenas um operando.
É aplicada em cadeias (ou sentenças).
Gera como resultado um número inteiro.
||=n
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
Comprimento (cont)
operações básicas
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
Concatenação
operações básicas
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
Concatenação (cont)
operações básicas
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
Concatenação (cont)
operações básicas
Características da operação de concatenação

Operação associativa
( . ) .    . ( . )

Operação não comutativa
. ≠ .

Elemento neutro é a cadeia vazia
. = . = 
02
Concatenação (cont)
operações básicas
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
Fechamento
operações básicas
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
Fechamento (cont)
operações básicas
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
Fechamento (cont)
operações básicas
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:
*

* = + U {}

onde
  +
 * e + são conjuntos gerais e englobam toda a sorte de
linguagens possíveis de se construir a parir do conjunto
02
Concatenação de linguagens
operações básicas
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
Concatenação de linguagens
(cont)
operações básicas
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:
X.Y=Z

ou
XY = Z
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
Concatenação de linguagens
(cont)
operações básicas
Características da operação de concatenação

Operação associativa
(X . Y) . Z  X . (Y . Z)

Operação não comutativa
X.Y ≠ Y.X

Elemento neutro é a cadeia vazia
qualquer linguagem que possua como conjunto de
sentenças apenas a cadeia vazia
se
L = {}
então
X.L=L.X=X
03
Representação linguagens



como formalizar
Enumeração
Gramáticas
Reconhecedores
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.
03
Representação linguagens



como formalizar
Enumeração
Gramáticas
Reconhecedores
É 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.
03
Representação linguagens



como formalizar
Enumeração
Gramáticas
Reconhecedores
É 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).
04
Formalização
gramáticas
É 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:
G = ( V,  , P, S )
04
Vocabulário (V)
gramáticas
G = ( V,  , P, S )
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
Alfabeto ()
gramáticas
G = ( V,  , P, S )
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:
V=N
onde
 N=
04
gramáticas
Produções gramaticais (P)
G = ( V,  , P, S )
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
Produções gramaticais (P)
gramáticas
G = ( V,  , P, S )

Toda produção gramatical deve obedecer
a duas restrições básicas.

Restrição a ser seguida pela cadeia geradora ():
  V* . N . V*

Restrição a ser seguida pela cadeia gerada ():
  V*
04
Símbolo Inicial (S)
gramáticas
G = ( V,  , P, 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)
SV
05
definição
derivaçã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
funcionamento
derivação
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
exemplo
derivação
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
derivação
representaçã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
+
V x V*

As regras de substituição mapeiam o produto
cartesiano
V* N V* x V*
05
tipos de derivação
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
comprimento
derivação
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).
n
Utiliza o símbolo

onde n representa um número inteiro
que indica a quantidade de regras usadas
05
formas sentenciais
derivação
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
sentenças
derivação
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
linguagem
O que é linguagem



A linguagem definida pela gramática formal (G)
É indicada pela notação L(G)
É definida como sendo o conjunto
{   * | S   }
derivação
Download

comp20072_-_Teoria_das_Linguagens_-_parte1