Sunteți pe pagina 1din 27

LINGUAGENS SENSVEIS AO

CONTEXTO E RECURSIVAMENTE
ENUMERVEIS
Prof. Ronaldo R. Goldschmidt
ronaldo.rgold@gmail.com
HIERARQUIA DE CHOMSKY
O formalismo da MT capaz de reconhecer as seguintes classes de
linguagens:

Classe das Linguagens Recursivamente Enumerveis Composta pelas
linguagens L para as quais existe uma MT capaz de determinar se uma
palavra w e L. No entanto, se w e ~L, o algoritmo pode:
parar, identificando que a palavra no pertence a L
ficar em loop infinito (processando indefinidamente)
MQUINA DE TURING
MT como Reconhecedor de Linguagens
O formalismo da MT capaz de reconhecer as seguintes classes de
linguagens (cont.):

Classe das Linguagens Recursivas Composta pelas linguagens L para as
quais existe pelo menos uma MT que sempre pra, capaz de determinar se
uma dada palavra w pertence ou no a L.
MQUINA DE TURING
MT como Reconhecedor de Linguagens
Classes de Linguagens reconhecidas pelo formalismo da MT:
Linguagens Recursivamente Enumerveis
Linguagens Recursivas

A existncia destas duas classes contradiz a intuio da maioria das pessoas,
pois estabelece que:

Reconhecer o complemento de uma linguagem pode ser impossvel, mesmo
que seja possvel reconhecer a linguagem.
MQUINA DE TURING
MT como Reconhecedor de Linguagens
Definio: Uma linguagem aceita por uma Mquina de Turing dita ser uma
Linguagem Recursivamente Enumervel ou Linguagem Tipo 0.

Exemplos: As linguagens L
1
={a
n
b
n
| n > 0}, L
2
={wcw | w e {a,b}
*
} e
L
3
={a
2n
bc
n
| n > 0} so recursivamente enumerveis. As respectivas MTs
foram construdas anteriormente.

Observao:
Como, segundo a Hiptese de Church, a MT o mais geral dispositivo de
computao, pode-se afirmar que a classe das linguagens recursivamente
enumerveis representa todas as linguagens que podem ser reconhecidas
(compiladas) mecanicamente. Trata-se, portanto, de uma linguagem muito
rica. Existem, no entanto, conjuntos que no so recursivamente enumerveis,
ou seja, linguagens para as quais no possvel desenvolver uma MT que as
reconhea.
LINGUAGENS RECURSIVAMENTE ENUMERVEIS
Exerccio 1 Mostre que as linguagens abaixo so recursivamente
enumerveis:

a) a
*
bb
*
(cc + d)


b) {a
n
b
n
c
k
/ n, k > 0}


c) {a
n
b
m
c
k
/ n, m, k > 0}


d) {ww
R
| w e {a,b}
*
}
LINGUAGENS RECURSIVAMENTE ENUMERVEIS
Teorema: Existe pelo menos uma linguagem que no recursivamente
enumervel.

Demonstrao: (Menezes, 2005, p. 183)


Observao sobre a cardinalidade do Conjunto dos Problemas e a
cardinalidade do Conjunto dos Algoritmos (decorrente do teorema anterior):

Existem mais problemas do que algoritmos para resolv-los.

Demonstrao: (Menezes, 2005, p. 183)



LINGUAGENS RECURSIVAMENTE ENUMERVEIS
LINGUAGENS RECURSIVAS
Definio: Uma linguagem L dita ser uma Linguagem Recursiva se existe pelo
menos uma Mquina de Turing M tal que:
ACEITA(M)=L
REJEITA(M)=~L

Observao: Uma linguagem recursiva se existe uma MT que aceita a
linguagem e que sempre pra diante de qualquer entrada.

Exemplos de Linguagens Recursivas:
{a
n
b
n
| n > 0}
{a
n
b
n
c
n
| n > 0}
{w | w e {a, b}
*
e tem o dobro de smbolos a em relao ao nmero de bs}

LINGUAGENS RECURSIVAS
Exerccio 2 Mostre que as linguagens abaixo so recursivas:

a) abc(a + b + c)
*


b) {a
n
b
n
c
n
| n > 0}


c) {w | w e {a, b}
*
e tem o dobro de as em relao ao nmero de bs}


LINGUAGENS RECURSIVAS
Teorema (Complemento de uma Linguagem Recursiva Recursiva): Se uma
linguagem L sobre um alfabeto E qualquer recursiva, ento o seu
complemento ~L tambm uma linguagem recursiva.

Demonstrao: (Menezes, 2005, p. 185)

Graficamente:
PROPRIEDADES LINGUAGENS R.E. E RECURSIVAS
Teorema: Uma linguagem L sobre um alfabeto E qualquer recursiva se, e
somente se, L e ~L so recursivamente enumerveis.

Demonstrao: (Menezes, 2005, p. 186)
() Direta da definio de linguagem recursiva e do teorema anterior
(:) Construo da MT abaixo a partir de M
1
e M
2
tais que ACEITA(M
1
) = L
e ACEITA(M
2
) = ~L


Graficamente:
PROPRIEDADES LINGUAGENS R.E. E RECURSIVAS
Teorema: A classe das Linguagens Recursivas est contida propriamente na
classe de Linguagens Recursivamente Enumerveis.

Demonstrao: (Menezes, 2005, p. 187)


PROPRIEDADES LINGUAGENS R.E. E RECURSIVAS
Definio: Uma gramtica irrestrita aquela sem quaisquer restries em suas
produes.

Exemplo:
A linguagem {a
n
b
n
c
n
| n > 0} gerada pela seguinte gramtica irrestrita:
G=({S, C},{a, b, c}, P, S), onde:
P={S abc | , ab aabbC, Cb bC, Cc cc}

A palavra aaabbbccc pode ser derivada da seguinte forma:
S abc aabbCc aaabbCbCc aaabbCbcc aaabbbCcc aaabbbccc
A varivel C caminha na palavra at a posio correta para gerar um terminal c.

Existe alguma outra derivao possvel?
Indique uma derivao para a palavra aaaabbbbcccc.


GRAMTICA IRRESTRITA
Teorema: L uma Linguagem Recursivamente Enumervel se, e somente se, L
gerada por uma gramtica irrestrita.

Exemplo:
Como vimos, L = {a
n
b
n
c
n
| n > 0} recursivamente enumervel.

Do exemplo anterior, G = ({S, C},{a, b, c}, P, S), onde:
P={S abc | , ab aabbC, Cb bC, Cc cc}

G uma gramtica irrestrita tal que GERA(G) = L


GRAMTICA IRRESTRITA
LINGUAGENS SENSVEIS AO CONTEXTO
Avanando na hierarquia de Chomsky, seguem as linguagens sensveis ao
contexto (ou linguagem do tipo 1). Como esperado, so linguagens geradas
por gramticas sensveis ao contexto.

LINGUAGENS SENSVEIS AO CONTEXTO
Tipo 1 Linguagens Sensveis ao Contexto
Tipo 2 Linguagens Livres de Contexto
Tipo 3 Linguagens Regulares
Definio: Uma gramtica G=(V,T,P,S) chamada Gramtica Sensvel ao
Contexto se toda regra de produo de P for da forma: o |, onde:
| uma palavra de (VT)
*

o uma palavra de (VT)
+
tal que |o| s |||, excetuando-se, eventualmente,
para S . Neste caso, S no pode estar presente no lado direito de
qualquer produo.

Observao:
Em uma gramtica sensvel ao contexto, a cada etapa da derivao, o
tamanho da palavra derivada no pode diminuir, excetuando-se para gerar a
palavra vazia, se esta pertencer linguagem.
LINGUAGENS SENSVEIS AO CONTEXTO
Gramtica Sensvel ao Contexto
Definio: Uma linguagem gerada por uma gramtica sensvel ao contexto
dita ser uma Linguagem Sensvel ao Contexto ou Linguagem do Tipo 1.

Exemplo: Considere a linguagem L = {ww | w palavra de {a,b}
*
}
Seja a gramtica sensvel ao contexto (veja que G no livre de contexto)
G=({S,X,Y,A,B,<aa>,<ab>,<ba>,<bb>}, {a, b}, P, S) na qual:
P={S XY | aa | bb | ,
X XaA | XbB | aa<aa> | ab<ab> | ba<ba> | bb<bb>,
Aa aA, Ab bA, AY Ya, Ba aB, Bb bB, BY Yb
<aa>a a<aa>, <aa>b b<aa>, <aa>Y aa
<ab>a a<ab>, <ab>b b<ab>, <ab>Y ab
<ba>a a<ba>, <ba>b b<ba>, <ba>Y ba
<bb>a a<bb>, <bb>b b<bb>, <bb>Y bb}
LINGUAGENS SENSVEIS AO CONTEXTO
Gramtica Sensvel ao Contexto
Observao:
Nem toda gramtica livre de contexto uma gramtica sensvel ao contexto.
Ex: G=({S}, {a, b}, P, S), onde P={S aSb | }
S produo, mas S ocorre do lado direito de outra produo S aSb
LINGUAGENS SENSVEIS AO CONTEXTO
Gramtica Sensvel ao Contexto
Uma Mquina de Turing com Fita Limitada (MTFL), M um 8-upla da forma
M=(E, Q, o, q
0
, F, V, , +) na qual:
E um alfabeto de smbolos de entrada
Q um conjunto de estados possveis da mquina, o qual finito
o uma funo programa: o: Q x (EV{, +}) Q x (EV{, +}) x {E, D}
o uma funo parcial. Supondo (p,x) e Q x EV{ , +}, resultando no conjunto
{(q
1
, y
1
,m
1
), ..., (q
n
, y
n
,m
n
)} e 2
Q x (EV{, +}) x {E, D}
, ento:
o(p, x) = {(q
1
, y
1
,m
1
), ..., (q
n
, y
n
,m
n
)} uma transio da mquina
q
0
um elemento distinguido de Q, denominado estado inicial.
F um subconjunto de Q, conjunto de estados finais
V um alfabeto auxiliar (pode ser vazio)
o smbolo de incio ou marcador de incio da fita.
+ o smbolo de fim ou marcador de fim da fita.

Definio Mquina de Turing com Fita Limitada (MTFL)
LINGUAGENS SENSVEIS AO CONTEXTO
Seja M=(, Q, o, q
0
, F, V, , +) uma MTFL; A Linguagem Aceita ou
Linguagem Reconhecida por M, denotada por ACEITA(M) ou L(M) o
conjunto de todas as palavras de
*
aceitas por M a partir do seu estado inicial
q
0
.

L(M)={w/o
*
(q
0
,w)eF}, onde o
*
a Funo Programa Estendida

Analogamente, a Linguagem Rejeitada por M:
REJEITA(M)={w/o
*
(q
0
,w)eF ou o
*
(q
0
,w) indefinida}
Linguagens Aceita, Rejeitada e Loop
A linguagem Loop de M, denotada por LOOP(M) o conjunto de todas as
palavras de E
*
para as quais M fica processando indefinidamente a partir do
estado inicial q
0
.
LINGUAGENS SENSVEIS AO CONTEXTO
Considere a linguagem: L = {ww | w palavra de {a, b}
*
}
A MTFL M=(E, Q, o, q
0
, {q
f
},V, , +),
onde :
E={a,b},
Q={q
0
, q
1
, ..., q
9
, q
f
}
V = {X, Y},

ilustrada ao lado tal que:
ACEITA(M) = L
e
REJEITA(M) = ~L

Portanto, LOOP(M)=C)

Exemplo: MTFL para Palavra Duplicada
LINGUAGENS SENSVEIS AO CONTEXTO
L uma linguagem sensvel ao contexto se, e somente se, L reconhecida por
uma Mquina de Turing com Fita Limitada.

Demonstrao: Vide (Menezes, 2005, p. 191)


Exemplo: A linguagem L (Palavra Duplicada) do exemplo anterior uma
linguagem sensvel ao contexto pois reconhecida por uma MTFL.

Teorema
LINGUAGENS SENSVEIS AO CONTEXTO
Atividades Prticas
Lista de Exerccios VI
Leituras Recomendadas
Cap. 8 Paulo Blauth Menezes
Cap. 5 Marcus Ramos
LINGUAGENS SENSVEIS AO CONTEXTO

S-ar putea să vă placă și