Beruflich Dokumente
Kultur Dokumente
+
= {a, b, aa, ab, ba, bb, aaa, ...}
*
= {c, a, b, aa, ab, ba, bb, aaa, ...}
LINGUAGENS E GRAMTICAS
Def.: O conjunto de todas as cadeias, incluindo a cadeia
vazia, sobre um alfabeto denotado por
*
Obs.: um alfabeto finito com n elementos, mas
*
infinito. Pode ser enumerado da seguinte forma:
i) Para cada k > 0, todas as strings de comprimento k devem
ser enumeradas antes das de comprimento k+1
ii) As n
k
strings devem ser enumeradas lexicograficamente.
Ex: Se = {0, 1}, ento:
*
= {c, 0, 1, 00, 01, 10, 11, 000, 001, 010, 011, ...}
LINGUAGENS E GRAMTICAS
Def.: Uma linguagem formal L sobre um alfabeto
qualquer subconjunto de
*
, L _
*
Exs: , ,
*
,
+
so linguagens formais sobre qualquer
Obs.: Como muitas linguagens so infinitas, utiliza-se a
seguinte representao implcita de conjuntos:
L = {e e
*
/ e possui uma propriedade P}
Exs.: {e e
*
/ e = e
R
}, linguagem de palavras palndromas
{ae / e e
*
}, linguagem de palavras iniciadas por a,
{e e
*
/ e(1)=a}
LINGUAGENS E GRAMTICAS
Def.: Uma linguagem formal L sobre um alfabeto
qualquer subconjunto de
*
, L _
*
Obs.: 2
*
o conjunto de todas as linguagens sobre um
alfabeto .
Ex.: Linguagem Formal: Linguagem de Programao
Uma Linguagem de Programao como Pascal formalmente
definida pelo conjunto de todos os programas (palavras) da
linguagem.
Obs: Sejam L uma linguagem formal sobre e _ O.
Pergunta-se: L linguagem formal sobre O ?
LINGUAGENS E GRAMTICAS
Relao entre smbolo, alfabeto, cadeia e linguagem
LINGUAGENS E GRAMTICAS
Relao entre smbolo, alfabeto, cadeia e linguagem
LINGUAGENS E GRAMTICAS
Relao entre smbolo, alfabeto, cadeia e linguagem
Obs: Distino entre o smbolo b e a cadeia/sentena b
LINGUAGENS E GRAMTICAS
Atividades Prticas
Lista de Exerccios II At o exerccio 7
LINGUAGENS E GRAMTICAS
Exerccio 17 da Lista II: Elabore um programa em C que apresente o valor
decimal e o glifo correspondente da tabela ASCII do smbolo 32 ao smbolo 126
(caracteres imprimveis).
Exerccio de Programao
Operaes com Linguagens (Construo de Outras Linguagens)
Obs: Linguagens so conjuntos (em essncia)
Unio
L
1
L
2
= { s | s e L
1
ou s e L
2
}
Ex.: { ab, ac } { ab, bc } = { ab, ac, bc }
Interseo
L
1
L
2
= { s | s e L
1
e s e L
2
}
Ex.: { ab, ac } { ab, bc } = { ab }
LINGUAGENS E GRAMTICAS
Operaes com Linguagens (Construo de Outras Linguagens)
Obs: Linguagens so conjuntos (em essncia)
Concatenao
L
1
.L
2
= { st | s e L
1
e t e L
2
}
Ex.: { ab, ac }.{ ab, bc } = { abab, abbc, acab, acbc }
Observaes:
L
1
.C = C. L
1
= C (demonstrao)
Concatenao no comutativa (contraexemplo)
LINGUAGENS E GRAMTICAS
Operaes com Linguagens (Construo de Outras Linguagens)
Fechamento de Kleene (Estrela de Kleene)
Seja A uma linguagem definida sobre um alfabeto E. Ento A
*
uma linguagem obtida a partir de A como se segue:
A* = A
0
A
1
... A
n
...
onde: A
0
= { c } e A
n
= A
n-1
.A, n > 0
Ex.1: A = { a }
A* = { c } { a } { aa } { aaa } ...
= { c, a, aa, aaa, ... }
LINGUAGENS E GRAMTICAS
Operaes com Linguagens (Construo de Outras Linguagens)
Fechamento de Kleene (Estrela de Kleene)
Seja A uma linguagem definida sobre um alfabeto E. Ento A
*
uma linguagem obtida a partir de A como se segue:
A* = A
0
A
1
... A
n
...
onde: A
0
= { c } e A
n
= A
n-1
.A , n > 0
Ex2.: A = { ab, b}
A* = { c } { ab, b } { abab, abb, bab, bb } ...
= { c, ab, b, abab, abb, bab, bb, ... }
LINGUAGENS E GRAMTICAS
Operaes com Linguagens (Construo de Outras Linguagens)
Fechamento de Kleene (Estrela de Kleene)
Seja A uma linguagem definida sobre um alfabeto E. Ento A
*
uma linguagem obtida a partir de A como se segue:
A* = A
0
A
1
... A
n
...
onde: A
0
= { c } e A
n
= A
n-1
.A , n > 0
Ex3.: A = C
A
*
= { c }
LINGUAGENS E GRAMTICAS
Operaes com Linguagens (Construo de Outras Linguagens)
Fechamento Positivo
A
+
= A
*
.A ou A* = { c } A
+
Ex.: A = { a }
A
+
= { c, a, aa, aaa, ... }.{ a } = { a, aa, aaa, ... }
Complemento
Ex.: A = { a } = { c, a, aa, aaa, ... }-{ a } = {c, aa, aaa, ... }
A A =
*
A
LINGUAGENS E GRAMTICAS
Operaes com Linguagens (Construo de Outras Linguagens)
Quociente
L
1
/L
2
= { x | xy e L
1
e y e L
2
}
Exs.: { abb, acb }/{ b } = { ab, ac }
{ abb, acb }/{ b, bb } = { ab, ac, a }
Sendo:
L
1
= { a
i
b | i > 0 } = {b, ab, aab, aaab, ...} L
2
= { b }
L
3
= { a
i
b | i > 1 } = {ab, aab, aaab, ...}
L
1
/ L
2
= {, a, aa, aaa, aaaa, ...} = { a
i
| i > 0 }
L
1
/ L
3
= {, a, aa, aaa, ...} = { a
i
| i > 0 }
LINGUAGENS E GRAMTICAS
Sendo:
L
1
= { a
i
b | i > 0 } = {b, ab, aab, aaab, ...} L
2
= { b }
L
3
= { a
i
b | i > 1 } = {ab, aab, aaab, ...}
L
4
= { a
i
bc
i
| i > 0 } = {b, abc, aabcc, aaabccc, ...}
L
5
= { bc
i
| i > 0 } = {b, bc, bcc, bccc, ...}
L
6
= { c
i
| i > 1 } = {c, cc, ccc, ...}
L
4
/ L
5
=
L
5
/ L
4
=
L
1
/ L
5
=
L
4
/ L
1
=
L
6
/ L
2
=
LINGUAGENS E GRAMTICAS
Atividades Prticas
Lista de Exerccios II Exerccio 8
LINGUAGENS E GRAMTICAS
Exerccio 18 da Lista II: Elabore um programa em C que receba como entrada
duas linguagens finitas L1 e L2, ambas no vazias (e sem a cadeia vazia) e
apresente como sadas as seguintes linguagens: L1 L2, L1 L2, L1.L2.
Exerccio de Programao
Observao:
Na teoria de autmatos, um problema em geral se caracteriza
pela deciso se uma determinada cadeia pertence ou no a
uma linguagem especfica.
Em termos coloquiais, um problema pode ser expresso como
pertinncia a uma linguagem.
Em termos formais, sendo L uma linguagem formal sobre ,
ento o problema L consiste em: dada uma cadeia e em *,
definir se e est ou no em L.
LINGUAGENS E GRAMTICAS
Mtodos de Representao Finita de Linguagens:
Gramticas
Reconhecedores
Enumeraes
Obs: Os dois primeiros so formas duais de representao.
Obs: A notao usada para representar uma linguagem
chamada de metalinguagem.
Exs:
L={e e
*
/ e palndroma}
L={ara, arara, ...}
LINGUAGENS E GRAMTICAS
Toda Linguagem possui:
Sintaxe Estruturas para representao de construes
Ex: arara e L={e e
*
/ e palndroma}, ={a,r}
Semntica Significado associado s construes
arara
LINGUAGENS E GRAMTICAS
Como uma linguagem de programao o conjunto (infinito) de
todos os programas dessa linguagem, ela requer uma definio
adequada para ser implementada computacionalmente (gramtica).
Uma gramtica um sistema formal baseado em regras de
substituio que, quando aplicadas sucessivamente, podem gerar,
de forma exaustiva, o conjunto de cadeias que compem uma
determinada linguagem. Assim, o conjunto de todas as palavras
geradas por uma gramtica define a linguagem associada.
As gramticas usadas para linguagens naturais como o Portugus
so anlogas s usadas para linguagens artificiais como o Pascal e
o C.
LINGUAGENS E GRAMTICAS
Consideremos a orao em Portugus: O menino atravessou a rua
distraidamente. Esta orao est sintaticamente correta, pois obedece s seguintes
regras:
Frase = Sujeito + Predicado + Complemento
Sujeito = Artigo + Substantivo
Predicado = Verbo + Objeto Direto
Objeto Direto = Artigo + Substantivo
Artigo = {o, a}
Substantivo = {menino, rua}
Verbo = {atravessou}
Complemento = {distraidamente}
E as oraes: A rua atravessou o menino distraidamente e O rua atravessou a
menino distraidamente?
LINGUAGENS E GRAMTICAS
Repare que artigo, substantivo e verbo so exemplos de
classes gramaticais da Lngua Portuguesa. Normalmente independem
da orao para classificarmos os smbolos. No exemplo:
Artigo = {o, a}
Substantivo = {menino, rua}
Verbo = {atravessou}
Sujeito, predicado, objeto direto so exemplos de funes
sintticas que os smbolos, isolados ou em conjunto, assumem na
orao. A caracterizao da funo sinttica depende do smbolo (ou
conjunto de smbolos) e do papel que ele exerce na orao.
LINGUAGENS E GRAMTICAS
Um site que permite a anlise de sentenas (parser) da Lngua
Portuguesa o VISL:
http://beta.visl.sdu.dk/visl/pt/parsing/automatic/trees.php
Exemplo:
LINGUAGENS E GRAMTICAS
Def.: Uma Gramtica de Chomsky, Gramtica Irrestrita ou simplesmente
Gramtica uma qudrupla ordenada:
G=(V,T,P,S) , na qual:
V e T conjuntos finitos no vazios e disjuntos de smbolos variveis e
terminais, respectivamente.
P:(VT)
+
(VT)
*
uma Relao de Produes (Regras de Substituio),
sendo um conjunto finito e no vazio.
S, um smbolo destacado de V (chamado raiz ou smbolo inicial)
Regras de Produo Formato
(o,|) ou o |
o |
1
| |
2
| ...| |
n
LINGUAGENS E GRAMTICAS
Ex: Seja uma gramtica G=(V, T, P, N) definida por
V={N,D} T={0,1,2,...,9} P={ND, NDN, D0|1|2|...|9}
Derivao: Substituio de uma subpalavra de acordo com uma regra
de produo.
Formalmente: Sendo G=(V, T, P, S) uma gramtica, uma Derivao
um par da relao de derivao : (VT)
+
(VT)
*
, representado
por: <o, |> ou o
G
|
G
indutivamente definida como segue:
Para toda regra de produo S |, o seguinte par pertence a
G
:
S
G
|
Para todo par q
G
oo de
G
, se o | uma regra de
produo, ento o seguinte par pertence a
G
: q
G
| o
LINGUAGENS E GRAMTICAS
Ex: Seja uma gramtica G=(V, T, P, N) definida por
V={N,D} T={0,1,2,...,9}
P={ND, NDN, D0|1|2|...|9}
Uma derivao da palavra 243 pode ser dada por:
N
G
(NDN)
DN
G
(D2)
2N
G
(NDN)
2DN
G
(D4)
24N
G
(ND)
24D
G
(D3)
243
Pergunta-se: Existem outras derivaes para a mesma palavra?
LINGUAGENS E GRAMTICAS
Derivao: Substituio de uma subpalavra de acordo com uma
regra de produo.
Sucessivos passos de derivao so definidos como segue:
*
Fecho transitivo e reflexivo da relao , ou seja, zero ou
mais passos de derivaes sucessivos.
+
Fecho transitivo da relao , ou seja, um ou mais passos de
derivaes sucessivos.
i
Exatos i passos de derivaes sucessivos, sendo i um nmero
natural.
LINGUAGENS E GRAMTICAS
Voltando ao exemplo anterior: G=(V, T, P, N) definida por
V={N,D} T={0,1,2,...,9}
P={ND, NDN, D0|1|2|...|9}
Como vimos, uma derivao da palavra 243 pode ser dada por:
N (NDN)
DN (D2)
2N (NDN)
2DN (D4)
24N (ND)
24D (D3)
243
Portanto, temos que: S
*
243 ou S
+
243 ou S
6
243
LINGUAGENS E GRAMTICAS
Def.: Seja G=(V, T, P, S) uma gramtica. A Linguagem Gerada
por G composta por todas as palavras de smbolos terminais
derivveis a partir de S.
Notao: L(G) ou GERA(G) = {w e T
*
/ S
+
w}
Ex:
Sendo V={N,D}
T={0,1,2,...,9}
P={ND, NDN, D0|1|2|...|9}
G=(V, T, P, N) uma gramtica capaz de gerar qualquer nmero
natural vlido em uma linguagem de programao.
LINGUAGENS E GRAMTICAS
Analisando o exemplo anterior, onde:
G=(V, T, P, N) uma gramtica geradora de nmeros naturais.
V={N,D}
T={0,1,2,...,9}
P={ND, NDN, D0|1|2|...|9}
A seguinte interpretao indutiva pode ser dada:
Base da Induo: todo dgito um nmero natural (regras ND
e D0|1|2|...|9).
Passo de Induo: Se x um nmero natural, ento a
concatenao de x com qualquer dgito tambm um nmero
natural (regra NDN).
LINGUAGENS E GRAMTICAS
Existem representaes alternativas para gramticas. Uma das mais comuns :
G = (V, E, P, S), onde:
V contm todo o vocabulrio (todos os smbolos)
E contm os smbolos terminais
P contm as produes
S o smbolo inicial
N = V - E (corresponde ao conjunto de smbolos variveis da definio adotada
na disciplina)
Exemplo: a gramtica geradora de nmeros naturais vista no exemplo anterior
G = (V, E, P, S)
V = {S, D, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
E = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
P = {SD, SDS, D0|1|2|...|9}
LINGUAGENS E GRAMTICAS
Def.: Duas gramticas G1 e G2 so ditas equivalentes se ambas
geram a mesma linguagem, ou seja:
Gera (G1) = Gera(G2)
Obs: Em geral, adotaremos as seguintes convenes:
A, B, C, ..., S, T para smbolos variveis
a, b, c, ..., s, t para smbolos terminais
u, v, w, x, y, z para palavras com somente smbolos terminais
o, |, ... para palavras com smbolos terminais ou variveis
LINGUAGENS E GRAMTICAS
Consideremos as seguintes gramticas e respectivas linguagens:
G
0
= ({S},{a,b},{SaS, SbS, S c},S),
L
0
=Gera(G
0
)={a, b}
*
G
1
= ({S},{a,b},{SaS, SbS, S a|b},S),
L
1
=Gera(G
1
)={a, b}
+
G
2
= ({S,X},{a,b},{SaX, XaX, XbX, Xc},S),
L
2
formada por cadeias iniciadas pelo smbolo a.
G
3
= ({S,X},{a,b},{SaX, XaX, XbX, Xb},S),
L
3
formada por cadeias iniciadas pelo smbolo a e terminadas por b.
G
4
= ({S,X},{a,b},{SXbXbX, XaX, Xc},S),
L
4
formada por cadeias que contenham exatamente dois smbolos b.
G
5
= ({S,X},{a,b},{SbX, XaX, Xc},S),
L
5
contm cadeias iniciadas com o smbolo b, sendo este o nico smbolo b
existente nessas cadeias.
LINGUAGENS E GRAMTICAS
Para cada uma, apresente um exemplo de sentena e de derivao associada
Consideremos as seguintes gramticas e respectivas linguagens:
L
0
=Gera(G
0
)={a, b}
*
, L
1
=Gera(G
1
)={a, b}
+
, L
2
formada por cadeias iniciadas
pelo smbolo a. L
3
formada por cadeias iniciadas pelo smbolo a e terminadas por
b. L
4
formada por cadeias que contenham exatamente dois smbolos b. L
5
contm
cadeias iniciadas com o smbolo b, sendo este o nico smbolo b existente nessas
cadeias.
Analise as relaes de
incluso entre elas.
LINGUAGENS E GRAMTICAS
Uma gramtica G = (V, T, P, S) est bem formada se atender s
seguintes condies mnimas:
V, T, P devem ser conjuntos finitos e no vazios;
E = V T
V T = C
S e V
Uma gramtica pode estar bem formada mas no gerar todas as
cadeias de uma linguagem. Exemplos: G = (V, T, P, S), onde:
a) V = {S, X}, T = {a, b}, P = {XaX | b}, S}
b) V = {S}, T = {a, b}, P = {SaS | b}, S}, mas G no gera bba
LINGUAGENS E GRAMTICAS
Hierarquia de Chomsky
Estudo sistemtico das linguagens formais teve forte impulso no final
da dcada de 1950 com publicao de dois artigos do linguista Noam
Chomsky.
Os artigos apresentavam resultados sobre a classificao hierrquica
das linguagens, conhecida como Hierarquia de Chomsky.
Tal hierarquia tem como mrito agrupar as linguagens em classes, de
tal forma que elas possam ser hierarquizadas segundo sua
complexidade relativa.
Como consequncia, conhecida a classe de uma determinada linguagem
pode-se antecipar propriedades fundamentais dessa linguagem, assim
como vislumbrar modelos de implementao mais adequados sua
realizao.
LINGUAGENS E GRAMTICAS
Hierarquia de Chomsky
Possui quatro classes distintas de linguagens: tipos 0, 1, 2 e 3
Cada tipo caracterizado por restries sobre o formato das produes
o| definidas pelo conceito geral de gramtica.
Tipo 0 Linguagens Recursivamente Enumerveis
ou Irrestritas
Tipo 1 Linguagens Sensveis ao Contexto
Tipo 2 Linguagens Livres de Contexto
Tipo 3 Linguagens Regulares
LINGUAGENS E GRAMTICAS
Hierarquia de Chomsky Linguagens Regulares (Tipo 3)
Tipo de linguagem mais simples da hierarquia.
Qualquer gramtica G=(V,T,P,S) geradora de linguagens regulares possui
produes o| que atendam s seguintes restries:
o e V
(| e T) ou (| e V) ou (| e T.V) ou (| = ), de forma no exclusiva ou
(| e T) ou (| e V) ou (| e V.T) ou (| = ), de forma no exclusiva
Exemplos:
G
1
=({S,A}, {0,1,2,3}, {S0S, S1S, SA, A2, A3}, S)
G
2
=({S,A}, {0,1,2,3}, {SS2, SS3, SA, A1, A0}, S)
LINGUAGENS E GRAMTICAS
Hierarquia de Chomsky Linguagens Livres de Contexto (Tipo 2)
Qualquer gramtica G=(V,T,P,S) geradora de linguagens livres de
contexto possui produes o| que atendam s seguintes restries:
o e V (s possuem um smbolo no terminal do lado esquerdo)
| e (V T)* (qualquer combinao de smbolos do lado direito)
Exemplo:
G
3
=({S}, {0,1}, {S0S1, S}, S)
G
3
livre de contexto.
LINGUAGENS E GRAMTICAS
Hierarquia de Chomsky Linguagens Sensveis ao Contexto (Tipo 1)
Qualquer gramtica G=(V,T,P,S) geradora de linguagens sensveis ao
contexto possui produes o| que atendam s seguintes restries:
o e (VT)*.V. (VT)*
| e (VT)*
| | | > | o | (O comprimento da cadeia do lado direito de cada produo
seja no mnimo igual ao comprimento da cadeia do lado esquerdo)
Obs: No h possibilidade de reduzir o comprimento das formas
sentenciais durante derivaes em gramticas deste tipo.
Exemplo:
G
4
=({S,X,Y}, {a,b,c}, {SaXb, SaXa, Xabc, Xbcb}, S)
G
4
sensvel ao contexto e no livre de contexto.
LINGUAGENS E GRAMTICAS
Hierarquia de Chomsky Linguagens Irrestritas (Tipo 0)
Qualquer gramtica G=(V,T,P,S) geradora de linguagens sensveis ao
contexto possui produes o| que atendam apenas a uma restrio:
o e (VT)*.V. (VT)* (lado esquerdo deve conter pelo menos um
smbolo no terminal)
| e (VT)*
Exemplo:
G
5
=({S,X,Y}, {a,b,c}, {SaXb, SaXa, Xac, Xbc, X}, S)
G
5
irrestrita e no sensvel ao contexto (devido s produes Xac,
Xbc, X): |o| > |||
As gramticas G
1
, G
2
, G
3
e G
4
so todas irrestritas.
LINGUAGENS E GRAMTICAS
Hierarquia de Chomsky Linguagens, Gramticas e Reconhecedores
Tipo Classe de
Linguagem
Modelo de
Gramtica
Modelo de Reconhecedor
0 Recursivamente
Enumerveis
Irrestrita Mquina de Turing
1 Sensveis ao
Contexto
Sensvel ao
Contexto
Mquina de Turing com Fita
Limitada
2 Livres de
Contexto
Livre de
Contexto
Autmato de Pilha
3 Regulares Linear (direita
ou esquerda)
Autmato Finito
Obs: As propriedades, caractersticas estruturais e modelos de reconhecimento mais adequados para
cada uma das classes da Hierarquia de Chomsky sero estudados mais frente.
LINGUAGENS E GRAMTICAS
Atividades Prticas
Lista de Exerccios II - Completar
Leituras Recomendadas
Cap. 2 Paulo Blauth Menezes
Sees 2.1 a 2.3 Marcus Ramos
Sees 1.7 e 1.8 Papadimitriou
Seo 1.5 Hopcroft & Ullman
LINGUAGENS E GRAMTICAS