Você está na página 1de 61

Linguagens Sensveis ao Contexto

Prof. Marcus Vincius Midena Ramos


Universidade Federal do Vale do So Francisco

28 de junho de 2010

marcus.ramos@univasf.edu.br
www.univasf.edu.br/~marcus.ramos

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

1 / 61

Bibliografia

Linguagens Formais: Teoria, Modelagem e Implementao


M.V.M. Ramos, J.J. Neto e I.S. Vega
Bookman, 2009

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

2 / 61

Roteiro

Gramticas Sensveis ao Contexto

Formas Normais para Gramticas Sensveis ao Contexto

Mquinas de Turing com Fita Limitada

GSCs e Mquinas de Turing com Fita Limitada

LSCs e LLLCs

Linguagens que no so Sensveis ao Contexto

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

3 / 61

Gramticas Sensveis ao Contexto

Definio

Uma gramtica sensvel ao contexto G = (V, , P, S) aquela cujas


regras do conjunto P obedecem ao formato , onde:
I
I
I

V NV
V
| | > | |

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

4 / 61

Gramticas Sensveis ao Contexto

Linguagem sensvel ao contexto

Define-se inicialmente linguagem sensvel ao contexto como


sendo aquela que possa ser definida atravs de uma gramtica
sensvel ao contexto;

Essa definio estendida para qualquer linguagem L que


contenha a cadeia vazia, desde que L { } possa ser gerada por
uma gramtica sensvel ao contexto;

Define-se linguagem estritamente sensvel ao contexto como


sendo uma linguagem sensvel ao contexto mas no livre de
contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

5 / 61

Gramticas Sensveis ao Contexto

Exemplo

Exemplo 1.1
Seja a gramtica G1 = ({a, b, c, S, B, C}, {a, b, c}, P, S), com
P

= {S aSBC,
S aBC,
CB BC,
aB ab,
bB bb,
bC bc,
cC cc}

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

6 / 61

Gramticas Sensveis ao Contexto

Exemplo
Algumas derivaes possveis so:
I

S aBC abC abc;

S aSBC aaBCBC aaBBCC aabBCC aabbCC aabbcC


aabbcc;

S aSBC aaSBCBC aaaBCBCBC aaaBBCCBC aaaBBCBCC


aaaBBBCCC aaabBBCCC aaabbBCCC aaabbbCCC aaabbbcCC

aaabbbccC aaabbbccc.

fcil demonstrar que L(G1 ) = {an bn cn | n > 1}. tambm possvel demonstrar,
pela aplicao do Pumping Lemma para linguagens livres de contexto, que L(G1 )
no uma linguagem livre de contexto. Logo, no existe qualquer gramtica livre de
contexto que seja capaz de gerar L(G1 ), e portanto L uma linguagem estritamente
sensvel ao contexto.
Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

7 / 61

Gramticas Sensveis ao Contexto

Exemplo
Exemplo 1.2
Considere-se a gramtica G2 = ({a, b, c, S, A, B, C}, {a, b, c}, P, S), com
P

= {S ABC,
S ABCS,
AB BA,
AC CA,
BA AB,
BC CB,
CA AC,
CB BC,
A a,
B b,
C c}

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

8 / 61

Gramticas Sensveis ao Contexto

Exemplo

Analise-se agora a derivao de algumas sentenas:


I

S ABC aBC abC abc;

S ABC ACB CAB CBA cBA cbA cba;

S ABCS ABCABC BACABC BACBAC BACBCA bACBCA


baCBCA bacBCA bacbCA bacbcA bacbca.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

9 / 61

Gramticas Sensveis ao Contexto

Exemplo

A linguagem gerada por G2 consiste em todas as sentenas sobre {a, b, c} com


comprimento mnimo 3 , de tal forma que as quantidades desses smbolos sejam
sempre idnticas. Formalmente:
L(G2 ) = {w | as quantidades de a, b e c em w so idnticas, e |w| > 3}
Como no Exemplo 1.1, pode-se demonstrar que esta linguagem estritamente
sensvel ao contexto. Para isso suficiente provar, atavs do Pumping Lemma, que
ela no livre de contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

10 / 61

Gramticas Sensveis ao Contexto

Gramticas livres de contexto sensveis ao contexto

A inspeo rigorosa dos formatos admitidos para as produes


das gramticas do tipo 1 no permite a caracterizao imediata
de toda e qualquer gramtica (e conseqentemente das
correspondentes linguagens) do tipo 2 como sendo tambm do
tipo 1;

Isso decorre do fato de que as gramticas do tipo 2 admitem a


cadeia vazia como alternativa de substituio para o lado
esquerdo de qualquer produo, o que no permitido em
gramticas do tipo 1 em funo da restrio | | 6 | |.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

11 / 61

Gramticas Sensveis ao Contexto

Gramticas livres de contexto sensveis ao contexto

Rigorosamente, uma linguagem dita sensvel ao contexto se e


somente se:
I

/ L e L = L(G), onde G uma gramtica sensvel ao contexto,


ou
L e L { } pode ser gerada por uma gramtica sensvel ao
contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

12 / 61

Gramticas Sensveis ao Contexto

Linguagens livres de contexto sensveis ao contexto

Cumpre, neste ponto, estabelecer uma importante relao entre


linguagens livres de contexto e linguagens sensveis ao contexto:
I

Suponha-se, inicialmente, que L = L(G), onde G uma gramtica


/ L;
livre de contexto, e, adicionalmente, que

fcil perceber, neste caso, que G satisfaz a todas as


especificaes de uma gramtica sensvel ao contexto, pois no
haver nenhuma regra com direita;

Logo, L(G) ser tambm uma linguagem sensvel ao contexto. Ou


seja: linguagens livres de contexto que no contm a cadeia
vazia so tambm linguagens sensveis ao contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

13 / 61

Gramticas Sensveis ao Contexto

Linguagens livres de contexto sensveis ao contexto

Caso L(G), e G seja uma gramtica livre de contexto, ser


necessrio aplicar transformaes em G obtendo-se G0 , de modo que:
I

S seja a nica regra vazia em G0 ;

S no comparea no lado direito de nenhuma outra regra de G0 ;

L(G) = L(G0 ).

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

14 / 61

Gramticas Sensveis ao Contexto

Gramticas livres de contexto sensveis ao contexto

Portanto, com exceo da produo S , as gramticas do tipo


2 podem ser sempre convertidas para um formato que as torne
um caso particular das gramticas do tipo 1;
Em outras palavras, tem-se que qualquer gramtica do tipo 2,
desde que devidamente convertida para esse formato
padronizado, e a menos da produo S , torna-se tambm
uma gramtica do tipo 1.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

15 / 61

Gramticas Sensveis ao Contexto

Linguagens livres de contexto sensveis ao contexto

Assim, fato que G0 , exceto pela regra vazia, uma gramtica


sensvel ao contexto e, conseqentemente, L(G0 ) { } uma
linguagem sensvel ao contexto;
Logo, L(G) = L(G0 ) , de acordo com a definio, uma linguagem
sensvel ao contexto;

Como conseqncia, pode-se concluir que toda linguagem livre


de contexto tambm uma linguagem sensvel ao contexto;

Fica claro, tambm, que as linguagens livres de contexto


constituem um subconjunto prprio das linguagens sensveis ao
contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

16 / 61

Gramticas Sensveis ao Contexto

Exemplo
Exemplo 1.3
{Programa Declaracoes Comandos,
Declaracoes Declaracoes Declaracao
| ,
Declaracao %Identificador,
Comandos Comandos Comando
| ,
Comando #Identificador = Expressao,
Expressao Expressao + Expressao
| Expressao Expressao
| Identificador,
Identificador a | b | c}
Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

17 / 61

Gramticas Sensveis ao Contexto

Exemplo

Exemplo de sentena pertencente a esta linguagem:


%a
%b
#a = a + b
#b = b b

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

18 / 61

Gramticas Sensveis ao Contexto

Exemplo

Exemplo de sentena no pertencente a esta linguagem:


%a
%c
#a = a + b
#b = b b

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

19 / 61

Gramticas Sensveis ao Contexto

Formalizao de linguagens sensveis ao contexto

Possvel, mas trabalhosa;

Produz especificaes longas, complexas e com baixa


legibilidade;

Difcil utilizao prtica;

Por isso, adota-se a representao livre de contexto na


formalizao gramatical, deixando para processamento posterior
a verificao das dependncias de contexto que a linguagem
porventura exiba.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

20 / 61

Formas Normais para Gramticas Sensveis ao Contexto

Explicitando o contexto

conveniente considerar uma importante forma normal para a


representao de gramticas do tipo 1. Nesta forma, as regras so
todas reescritas em conformidade com o seguinte padro:

A
com A N, V + e , V .
Demonstra-se que toda e qualquer gramtica do tipo 1 pode ser
convertida para uma nova gramtica em que todas as produes
obedecem ao formato acima apresentado, exceto, naturalmente, a
produo S , caso a cadeia vazia faa parte da linguagem.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

21 / 61

Formas Normais para Gramticas Sensveis ao Contexto

Explicitando o contexto

Isso feito, pode-se reinterpretar as produes como


especificaes de substituies para um determinado
no-terminal A por , apenas quando A estiver cercado das
cadeias e , ou seja, quando A estiver no contexto de e ;
Portanto, diz-se que a substituio de A por depende da
ocorrncia de um contexto esquerdo e de um contexto direito
para o no-terminal A, fato este que motiva o emprego do termo
alternativo dependente de contexto para designar as gramticas
do tipo 1.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

22 / 61

Formas Normais para Gramticas Sensveis ao Contexto

Explicitando o contexto

Deve-se, por outro lado, perceber que uma condio deste tipo nunca
ocorre com as gramticas do tipo 2, nas quais qualquer substituio
de um smbolo no-terminal ocorre sempre de forma independente do
contexto em que tal no-terminal encontrado, motivando dessa
maneira o emprego do nome livre de contexto para designar tais
gramticas.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

23 / 61

Formas Normais para Gramticas Sensveis ao Contexto

Forma Normal de Kuroda


Uma outra importante forma normal para as gramticas sensveis ao
contexto a Forma Normal de Kuroda. Apesar de no evidenciar
diretamente os contextos em que so feitas as substituies, como no
caso da forma normal anterior, ela utilizada em certas
demonstraes tericas. Formalmente, diz-se que uma gramtica
sensvel ao contexto encontra-se na Forma Normal de Kuroda se
todas as suas produes estiverem em conformidade com
alguma das seguintes condies:
I
I
I
I

N e ;
N e N;
N e NN;
NN e NN;

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

24 / 61

Mquinas de Turing com Fita Limitada

Caractersticas
Uma Mquina de Turing com fita limitada um dispositivo
no-determinstico de reconhecimento de cadeias que possui algumas
importantes extenses em relao aos autmatos finitos ou aos
autmatos de pilha. As mais importantes so:
1

A fita de trabalho possui comprimento igual ao comprimento da


cadeia de entrada, acrescido de dois (uma posio para indicar o
incio da cadeia e outra para indicar seu trmino; tais indicaes
so feitas atravs de smbolos especiais, no pertencentes ao
alfabeto de entrada);
O cursor de acesso aos smbolos da fita de trabalho pode se
deslocar, sob o comando do controle finito, tanto para a direita
quanto para a esquerda;
Atravs do cursor de acesso pode-se no apenas ler os smbolos
contidos na posio corrente da fita de trabalho, como tambm
gravar novos smbolos em substituio ao smbolos existentes.
Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

25 / 61

Mquinas de Turing com Fita Limitada

Formalizao

Formalmente, uma Mquina de Turing com fita limitada M definida


como:
M = (Q, , , , q0 , <, >, F)
onde:
I
I

Q o conjunto finito de estados;


o alfabeto de entrada, composto por um conjunto finito de
smbolos;
o conjunto, tambm finito, de smbolos que podem ser lidos
e/ou gravados na fita de trabalho. ;

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

26 / 61

Mquinas de Turing com Fita Limitada

Formalizao

a funo parcial de transio, compreendendo os seguintes


mapeamentos:
I
I
I

I
I

Q 2Q{E,D}
Q {<} 2Q{<}{D}
Q {>} 2Q{>}{E}

q0 o estado inicial, q0 Q;
<, >
/ so smbolos respectivamente situados imediatamente
esquerda e imediatamente direita da cadeia de entrada na
configurao inicial;
F Q o conjunto de estados finais.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

27 / 61

Mquinas de Turing com Fita Limitada

Transio

Considere-se a transio (qi , m ) = {(qj , n , E)}. As seguintes aes


so tomadas, nesta seqncia, aps a seleo dessa transio:
I
I

O estado corrente qi substitudo pelo novo estado qj ;


O smbolo correntemente apontado pelo cursor de acesso, m ,
substitudo, na fita de trabalho, pelo novo smbolo n ;
O cursor de acesso deslocado de uma posio para a esquerda
(E).

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

28 / 61

Mquinas de Turing com Fita Limitada

Configurao

A configurao de uma Mquina de Turing com fita limitada


denotada atravs da tripla
( , qk , ) {<} Q {>}
em que qk o estado corrente, {<} a poro da cadeia de
entrada que se encontra esquerda do cursor de acesso e {>}
a poro da cadeia de entrada que se encontra direita do cursor
de acesso, incluindo a posio por ele correntemente selecionada.
Note-se que < e > podem ocorrer, cada um, no mximo uma vez
em , e sempre nos respectivos extremos.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

29 / 61

Mquinas de Turing com Fita Limitada

Configurao inicial

A configurao inicial (<, q0 , >), onde q0 o estado inicial e


a cadeia de entrada a ser analisada. O cursor de acesso
refere-se, portanto, ao smbolo inicial (mais esquerda) da cadeia .
A poro da representao ( , qk , ) corresponde, neste caso,
apenas ao smbolo <, pois no existe fita esquerda deste
delimitador. A configurao final definida como ( , qf , ), com
qf F, {<} e {>}.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

30 / 61

Mquinas de Turing com Fita Limitada

Movimentao
O smbolo ` denota uma relao sobre as configuraes de uma
Mquina de Turing com fita limitada:
`: {<} Q {>} {<} Q {>}
Portanto, a movimentao de uma configurao ( , qk , ) para a
configurao seguinte ( 0 , qm , 0 ) representada como:
( , qk , ) ` ( 0 , qm , 0 )
As transies contidas na funo especificam possibilidades de
movimentao, que conduzem o dispositivo de cada possvel
configurao para a correspondente configurao seguinte. Diz-se
que o dispositivo pra quando a funo no estiver definida para o
par (estado, smbolo de entrada) corrente.
Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

31 / 61

Mquinas de Turing com Fita Limitada

Linguagem aceita

A linguagem aceita por uma Mquina de Turing com fita limitada o


conjunto de todas as cadeias que so capazes de conduzir o
dispositivo desde a sua configurao inicial (nica para cada cadeia
de entrada) at uma configurao final qualquer, sem possibilidade de
movimentao adicional. Formalmente:

L(M) = { | (<, q0 , >) ` ( , qf , ), com qf F, {<} e {>}


Admite-se, como condio de parada, que = ,
com ( {<, >}), ( {>} { }) e no seja definida para
(qf , ).

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

32 / 61

Mquinas de Turing com Fita Limitada

Configurao final

Deve-se, por ltimo, notar que, diferentemente dos autmatos finitos e


dos autmatos de pilha, as Mquinas de Turing com fita limitada no
exigem, como pr-requisito para a caracterizao de uma
configurao final, que a cadeia de entrada tenha sido esgotada ou,
ainda, que o cursor de acesso se encontre direita do ltimo smbolo
da referida cadeia. Configuraes finais so caracterizadas quando (i)
no h transio possvel de ser aplicada na configurao corrente e
(ii) o estado corrente final, no importando a posio do cursor de
acesso.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

33 / 61

Mquinas de Turing com Fita Limitada

Exemplo

Exemplo 3.1
A Mquina de Turing com fita limitada M = (Q, , , , q0 , <, >, F) mostrada na
Figura 1 aceita a linguagem a b .
Q

{q0 , q1 , q2 }
{a, b}

= {a, b}
= {(q0 , a) (q0 , a, D), (q0 , b) (q1 , b, D), (q0 , >) (q2 , >, E),
(q1 , b) (q1 , b, D), (q1 , >) (q1 , >, E)}
F = {q2 }

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

34 / 61

Mquinas de Turing com Fita Limitada

Exemplo

q2
> /(>, E)

> /(>, E)

b/(b, D)
q0

q1

a/(a, D)

b/(b, D)

Figura 1: Mquina de Turing com fita limitada que aceita a b

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

35 / 61

Mquinas de Turing com Fita Limitada

Exemplo

Exemplo de cadeia reconhecida: aabbb


(<, q0 , aabbb >) ` (< a, q0 , abbb >) ` (< aa, q0 , bbb >) ` (< aab, q1 , bb >) `
(< aabb, q1, b >) ` (< aabbb, q1, >) ` (< aabb, q2, b >)
Como no h movimentao possvel a partir da configurao
(< aabb, q2, b >), que final, a mquina pra e a cadeia aabbb aceita.

Exemplo de cadeia rejeitada: aaba


(<, q0 , aaba >) ` (< a, q0 , aba >) ` (< aa, q0 , ba >) ` (< aab, q1, a >)
Como no h movimentao possvel a partir da configurao (< aab, q1, a >),
que no final, a mquina pra e a cadeia aaba rejeitada.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

36 / 61

Mquinas de Turing com Fita Limitada

Exemplo
Exemplo 3.2
A Mquina de Turing com fita limitada M = (Q, , , , q0 , <, >, F) da Figura 2
aceita a linguagem {an bn | n > 1}.
Q

= {q0 , q1 , q2 , q3 , q4 , q5 }

= {a, b}
= {a, b, X, Y}

= {(q0 , a) (q1 , X, D), (q0 , b) (q5 , b, D), (q0 , Y) (q3 , Y, D),


(q1 , a) (q1 , a, D), (q1 , Y) (q1 , Y, D), (q1 , b) (q2 , Y, E),
(q1 , >) (q5 , >, E), (q2 , X) (q0 , X, D), (q2 , Y) (q2 , Y, E),
(q2 , a) (q2 , a, E), (q3 , Y) (q3 , Y, D), (q3 , b) (q5 , b, D),

(q3 , >) (q4 , >, E)}


= {q4 }

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

37 / 61

Mquinas de Turing com Fita Limitada

Exemplo
Y /(Y, D)

q3

> /(>, E)

q4

b/(b, D)

Y /(Y, D)

q5
> /(>, E)
a/(a, D)

b/(b, D)

a/(a, E)

a/(X, D)
q0

b/(Y, E)
q1

q2

Y /(Y, E)

Y /(Y, D)

X/(X, D)

Figura 2: Mquina de Turing com fita limitada que aceita {an bn | n > 1}

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

38 / 61

Mquinas de Turing com Fita Limitada

Exemplo
Seu funcionamento intuitivo e reflete a aplicao do seguinte algoritmo:
1

O smbolo a sob o cursor substitudo pelo smbolo X. O cursor


deslocado de uma posio, para a direita.

O cursor continua se deslocando para a direta at encontrar um smbolo b ou


o smbolo >.

Se encontrar >, a cadeia rejeitada, pois existem mais smbolos a do que


b. Se encontrar b, este ser substitudo por Y e o cursor ser deslocado
para a esquerda at encontrar o X mais direita. Neste momento, o cursor
deslocado de uma posio para a direita e reinicia-se todo o processo no passo
(1).

Se o smbolo corrente for Y, isso indica que j foram considerados todos os


smbolos a. Se o restante da cadeia de entrada for formada apenas por
smbolos Y, ela ser aceita. Caso contrrio, ser rejeitada. o caso, por
exemplo, de cadeias que contm mais smbolos b do que smbolos a.
Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

39 / 61

Mquinas de Turing com Fita Limitada

Exemplo
A seguir, confere-se a operao de M com algumas cadeias:
I

A cadeia aabb aceita:


(<, q0 , aabb >) ` (< X, q1 , abb >) ` (< Xa, q1 , bb >) ` (< X, q2 , aYb >) ` (<
, q2 , XaYb >) ` (< X, q0 , aYb >) ` (< XX, q1, Yb >) ` (< XXY, q1 , b >) ` (<
XX, q2, YY >) ` (< X, q2 , XYY >) ` (< XX, q0 , YY >) ` (< XXY, q3 , Y >) ` (<
XXYY, q3 , >) ` (< XXY, q4 , Y >)

A cadeia aab rejeitada:


(<, q0 , aab >) ` (< X, q1 , ab >) ` (< Xa, q1 , b >) ` (< X, q2 , aY >) ` (<
, q2 , XaY >) ` (< X, q0 , aY >) ` (< XX, q1, Y >) ` (< XXY, q1 , >) ` (<
XX, q5, Y >)

A cadeia abb rejeitada:


(<, q0 , abb >) ` (< X, q1 , bb >) ` (<, q2 , XYb >) ` (< X, q0 , Yb >) ` (<
XY, q3 , b >) ` (< XYb, q5 , >)

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

40 / 61

Mquinas de Turing com Fita Limitada

Exemplo

Neste exemplo, a Mquina de Turing com fita limitada est sendo utilizada para
reconhecer uma linguagem livre de contexto, e tal fato sugere que esse tipo de
dispositivo possa ser empregado tambm no reconhecimento desta categoria de
linguagens, em substituio aos autmatos de pilha.
Alm de necessitar da movimentao do cursor em ambos os sentidos, neste exemplo
a substituio (gravao) de um smbolo do alfabeto de entrada por smbolos que no
fazem parte deste alfabeto (no caso, a por X e b por Y) essencial para o seu
correto funcionamento.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

41 / 61

Mquinas de Turing com Fita Limitada

Exemplo
Exemplo 3.3
A Mquina de Turing com fita limitada da Figura 3 reconhece a linguagem
{wcw | w {a, b} } sobre o alfabeto {a, b, c}.
X/(X, D)

q7

> /(>, E)

q8

c/(c, D)

a/(a, D)

a/(X, D)
q0

X/(X, D)

c/(c, D)

X/(X, E)

a/(X, E)

q1

q2

b/(b, D)
a/(a, D)

X/(X, D)

X/(X, D)

c/(c, E)
q3

q4

a/(a, E), b/(b, E)

b/(X, D)

b/(X, E)
c/(c, D)
q5

q6

b/(b, D)

Figura 3: Mquina de Turing com fita limitada que aceita {wcw | w {a, b}}
Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

42 / 61

Mquinas de Turing com Fita Limitada

Exemplo

Este exemplo ilustra o reconhecimento de uma linguagem tipicamente sensvel ao


contexto, pois a subcadeia w deve ser a mesma em ambos os lados do smbolo c.
Tal caracterstica remete relao entre a declarao e o uso de nomes, encontrada na
maioria das linguagens de programao algortmicas tradicionais um nome s
pode ser usado se a sua declarao for visvel no local do uso.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

43 / 61

Mquinas de Turing com Fita Limitada

Exemplo
I

Exemplo de cadeia reconhecida: abbcabb


(<, q0 , abbcabb >) ` (< X, q1 , bbcabb >) ` (< Xb, q1, bcabb >) `
(< Xbb, q1, cabb >) ` (< Xbbc, q2, abb >) ` (< Xbb, q3, cXbb >) `
(< Xb, q4 , bcXbb >) ` (< X, q4 , bbcXbb >) ` (<, q4 , XbbcXbb >) `
(< X, q0 , bbcXbb >) ` (< XX, q5, bcXbb >) ` (< XXb, q5, cXbb >) `
(< XXbc, q6, Xbb >) ` (< XXbcX, q6, bb >) ` (< XXbc, q3 , XXb >) `
(< XXb, q3, cXXb >) ` (< XX, q4 , bcXXb >) ` (< X, q4 , XbcXXb >) `
(< XX, q0, bcXXb >) ` (< XXX, q5, cXXb >) ` (< XXXc, q6 , XXb >) `
(< XXXcX, q6, Xb >) ` (< XXXcXX, q6, b >) ` (< XXXcX, q3, XX >) `
(< XXXc, q3, XXX >) ` (< XXX, q3 , cXXX >) ` (< XX, q4, XcXXX >) `
(< XXX, q0, cXXX >) ` (< XXXc, q7 , XXX >) ` (< XXXcX, q7, XX >) `
(< XXXcXX, q7, X >) ` (< XXXcXXX, q7, >) ` (< XXXcXX, q8, X >)

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

44 / 61

Mquinas de Turing com Fita Limitada

Exemplo

Pode-se demonstrar, atravs do Pumping Lemma para linguagens livres de


contexto, que a linguagem deste exemplo no livre de contexto. Tal resultado
sugere, como ser mostrado mais adiante, que as Mquinas de Turing com fita
limitada so dispositivos capazes de reconhecer uma classe de linguagens mais ampla
do que as livres de contexto, reconhecidas pelos autmatos de pilha trata-se, no
caso, da classe das linguagens sensveis ao contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

45 / 61

GSCs e Mquinas de Turing com Fita Limitada

Mquinas de Turing com Fita Limitada GSC

Teorema 4.1 Seja L = L(M), M uma Mquina de Turing com fita


limitada. Ento L { } = L(G), com G sendo uma gramtica sensvel
ao contexto.
A idia geral desta demonstrao consiste na obteno de uma
gramtica sensvel ao contexto que reproduz, na derivao de suas
sentenas, os movimentos de uma Mquina de Turing com fita
limitada que reconhece a mesma linguagem. Se a cadeia de entrada
conduz o autmato a uma configurao final, sendo portanto aceita,
esta mesma cadeia gerada pela gramtica. Cadeias rejeitadas pelo
autmato no so geradas pela gramtica.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

46 / 61

GSCs e Mquinas de Turing com Fita Limitada

GSC Mquina de Turing com Fita Limitada

Teorema 4.2 Seja L = (G), com G uma gramtica sensvel ao


contexto. Ento L = L(M), sendo M uma Mquina de Turing com fita
limitada.
Assim como foi feito no Teorema 4.1, ser apresentado como prova
deste teorema um algoritmo que permite efetuar um mapeamento
direto entre G e sua correspondente Mquina de Turing com fita
limitada.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

47 / 61

LSCs e LLLCs

Livres de contexto sensveis ao contexto


Teorema 5.1 Toda linguagem livre de contexto L tambm uma
linguagem sensvel ao contexto.
Se L livre de contexto, ento existe pelo menos uma gramtica livre
/ L ento, de acordo com resultados
de contexto G que gera L. Se
anteriores, possvel obter uma gramtica livre de contexto G0 , isenta
de produes vazias, tal que L0 (G0 ) = L. Se L ento possvel
obter uma gramtica livre de contexto G0 , isenta de produes vazias,
tal que L0 (G0 ) = L { }. Como, pela definio, toda gramtica livre de
contexto satisfaz aos critrios formulados para as gramticas
sensveis ao contexto (exceto pelas regras vazias), pode-se concluir
que toda linguagem livre de contexto tambm uma linguagem
sensvel ao contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

48 / 61

LSCs e LLLCs

Exemplo

Exemplo 5.1
Seja G1 = ({a, b, S}, {S}, {S aSb | ab}, S), com L1 (G1 ) = {an bn , n > 1}. Como

/ L1 (G1 ) e G1 uma gramtica livre de contexto isenta de regras vazias, ento G1


tambm uma gramtica sensvel ao contexto e L1 uma linguagem sensvel ao
contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

49 / 61

LSCs e LLLCs

Exemplo

Exemplo 5.2
Seja G2 = ({a, b, S}, {S}, {S aSb | }, S), com L2 (G2 ) = {an bn , n > 0}. Como G2
contm a regra S , isso implica que G2 , apesar de ser uma gramtica livre de
contexto, no uma gramtica sensvel ao contexto. Por outro lado, L2 { }
gerada pela gramtica G02 = ({a, b, S}, {S}, {S aSb | ab}, S), que livre de contexto
e tambm sensvel ao contexto. Logo, L2 uma linguagem sensvel ao contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

50 / 61

LSCs e LLLCs

Exemplo

Exemplo 5.3
Seja G3 = ({a, b, S, X}, {S, X}, {S aSb | aXb, X ab | }, S), com
L3 (G3 ) = {anbn , n > 1}. Como G3 contm a regra X , isso implica que G3 ,
apesar de ser uma gramtica livre de contexto, no uma gramtica sensvel ao
contexto. No obstante, L3 gerada tambm pela gramtica
G03 = ({a, b, S}, {S}, {S aSb | ab}, S), isenta de regras vazias, que livre de
contexto e tambm sensvel ao contexto. Logo, L3 uma linguagem sensvel ao
contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

51 / 61

LSCs e LLLCs

Exemplo

Exemplo 5.4
Seja G4 = ({a, b, S, X}, {S, X}, {S aSb | X, X ab | }, S), com
L4 (G4 ) = {anbn , n > 0}. Como G4 contm a regra X , isso implica que G4 no
uma gramtica sensvel ao contexto. No obstante, a regra X pode ser eliminada,
dando origem gramtica G04 = ({a, b, S, X}, {S, X}, {S aSb | X | , X ab}, S),
em que a nica regra vazia S . Finalmente, L4 { } gerada pela gramtica
G04 = ({a, b, S, X}, {S, X}, {S aSb | X, X ab}, S), que simultaneamente livre de
contexto e sensvel ao contexto. Logo, L4 uma linguagem sensvel ao contexto.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

52 / 61

LSCs e LLLCs

Livres de contexto 6= sensveis ao contexto

Teorema 5.2 A classe das linguagens livres de contexto constitui


subconjunto prprio da classe das linguagens sensveis ao contexto.
Atravs da aplicao do Pumping Lemma para linguagens livres de
contexto possvel provar que diversas linguagens no so livres de
contexto. Entre estas, pode-se citar a linguagem {an bn cn | n > 1}, a
qual, no entanto, pode ser representada atravs de uma gramtica
sensvel ao contexto (ver Exemplo 1.1). Logo, trata-se de uma
linguagem sensvel ao contexto, no-livre de contexto, e sua simples
existncia demonstra o teorema.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

53 / 61

Linguagens que no so Sensveis ao Contexto

Gramticas sensveis ao contexto enumervel


Teorema 6.1 O conjunto das gramticas sensveis ao contexto sobre
um certo alfabeto enumervel.
Considere-se um alfabeto qualquer e todas as gramticas sensveis
ao contexto que podem ser criadas a partir do mesmo. Seja
G = {G1 , G2 , G3 , ...Gn , ...} o conjunto infinito que rene todas essas
gramticas.
Sem perda de generalidade, pode-se considerar que os smbolos
no-terminais de cada uma dessas gramticas pertencem ao conjunto
infinito A = {A1 , A2 , A3 , ...An , ...} e, alm disso, que a raiz de cada uma
delas A1 . Ou seja, todas elas tm a mesma raiz e compartilham o
mesmo conjunto de smbolos no-terminais.
Os elementos de G podem ser listados em uma ordem G1 , G2 , G3 , ...
(ou seja, enumerados) de acordo com o mtodo descrito no Algoritmo
6.1.
Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

54 / 61

Linguagens que no so Sensveis ao Contexto

Gramticas sensveis ao contexto enumervel


Algoritmo 6.1 Enumera todas as gramticas sensveis ao contexto.
I Entrada: um alfabeto ;
I Sada: uma enumerao de todas as gramticas sensveis ao contexto
sobre ;
I Mtodo:
1

Inicialmente, listam-se todas as gramticas cujas regras tenham o formato


, | | = 1, | | = 1, e tais que apenas o no-terminal A1 seja
utilizado nas mesmas. Claramente, existe apenas um nmero finito de
gramticas nesta condio.
A seguir, listam-se todas as gramticas cujas regras tenham o formato
, | | 6 2, | | 6 2, e tais que apenas os no-terminais A1 e A2 sejam
utilizados nas mesmas. Novamente, o conjunto de gramticas que satisfaz
a esta condio finito.
Repete-se o passo (2) considerando | | 6 3, | | 6 3 e os no-terminais
A1 , A2 , A3 , e assim por diante.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

55 / 61

Linguagens que no so Sensveis ao Contexto

Gramticas sensveis ao contexto enumervel

Todas as gramticas pertencentes a G sero inevitavelmente listadas


(enumeradas) por este mtodo, que gera uma seqncia infinita de
conjuntos finitos, seqncia esta que pode ser ordenada na mesma
seqncia dos nmeros naturais (1, 2, 3...). O conjunto das gramticas
sensveis ao contexto , portanto, um conjunto enumervel.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

56 / 61

Linguagens que no so Sensveis ao Contexto

Linguagens no-sensveis ao contexto

Teorema 6.2 Existem linguagens que no so sensveis ao contexto.


Prova-se que existe pelo menos uma linguagem tal que no existe
gramtica sensvel ao contexto que a gere.

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

57 / 61

Linguagens que no so Sensveis ao Contexto

Linguagens no-sensveis ao contexto

Considere-se inicialmente o resultado do Teorema 6.1 (as gramticas


sensveis ao contexto so enumerveis) e um alfabeto qualquer. Em
seguida, pode-se considerar uma enumerao, em ordem
lexicogrfica crescente, das cadeias de + . Considere-se, em
particular, = {a, b}. Tal enumerao correspondente seqncia:
a, b, aa, ab, ba, bb, aaa, aab, aba, abb, baa, bab, bba, bbb, ...

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

58 / 61

Linguagens que no so Sensveis ao Contexto

Linguagens no-sensveis ao contexto

Tendo enumerado os elementos de G = {G1 , G2 , ..., Gn , ...} e de


+ = {1 , 2 , ..., n , ...}, passa-se agora a estabelecer uma funo
bijetora entre os dois conjuntos, de tal forma que os pares (Gi , i ), i > 1
sejam elementos dessa funo (Tabela 1).

Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

59 / 61

Linguagens que no so Sensveis ao Contexto

Linguagens no-sensveis ao contexto

Tabela 1: Funo bijetora entre gramticas e cadeias sobre {a, b}

G1

G2

G3

...

Gn

...

l
...

...

Defina-se agora a linguagem LR = {i | i


/ L(Gi ), i > 1}. Em outras
palavras, pertencem a LR as cadeias i que no pertenam a L(Gi ).
Tal verificao pode sempre ser feita para gramticas sensveis ao
contexto, conforme demonstrado em teorema anterior sobre a
equivalncia deste tipo de gramticas com as Mquinas de Turing com
fita limitada (Teorema 4.2).
Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

60 / 61

Linguagens que no so Sensveis ao Contexto

Linguagens no-sensveis ao contexto


S existem duas hipteses acerca de LR : ou trata-se de uma
linguagem que sensvel ao contexto, ou ento trata-se de uma
linguagem que no sensvel ao contexto.
Considere-se que LR seja uma linguagem sensvel ao contexto. Se
essa hiptese for verdadeira, dever existir pelo menos uma gramtica
sensvel ao contexto que a gere. Naturalmente, tal gramtica dever
pertencer ao conjunto G. Seja Gi esta gramtica. Se LR = L(Gi ), ento
s existem duas possibilidades: i pertence ou no pertence a LR .
I

/ L(Gi ), ento i LR , por hiptese,


Primeira possibilidade: se i
o que uma contradio.
Segunda possibilidade: se i L(Gi ), ento i
/ LR , por
construo, o que tambm uma contradio.

Logo, LR no pode ser uma linguagem sensvel ao contexto, e isso


completa a demonstrao.
Marcus Ramos (UNIVASF)

LFA 2010-1

28 de junho de 2010

61 / 61

Você também pode gostar