linguagens sensiveis a contexto

Upload: max-welton

Post on 07-Mar-2016

223 views

Category:

Documents


0 download

DESCRIPTION

aposkdpaoskdaskdpasokpaokdpaokdpaoskdpasokdpasodkpasodkpaskdpasokdpasokdpaoskdpaoskdpoaskdpasokdpaoskdpasokdpaosdkpasokdpoaskdpsaokdpoaskdpasokdpasodkpaoskdpsaodkpasokdpasokdpasokdpaoskdpaoskdpaoskdpaosdkpaoskdspaokdpasokdpaosdkpaskdpasokdpasokdpasokdpasokdpaoskdpsaokdpoaskdpoaskdasokdpasokdopsakdpaosk

TRANSCRIPT

  • Linguagens Sensveis ao Contexto

    Prof. Marcus Vincius Midena Ramos

    Universidade Federal do Vale do So Francisco

    28 de junho de 2010

    [email protected]/~marcus.ramos

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 1 / 61

  • Bibliografia

    1 Linguagens Formais: Teoria, Modelagem e ImplementaoM.V.M. Ramos, J.J. Neto e I.S. VegaBookman, 2009

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 2 / 61

  • Roteiro

    1 Gramticas Sensveis ao Contexto

    2 Formas Normais para Gramticas Sensveis ao Contexto

    3 Mquinas de Turing com Fita Limitada

    4 GSCs e Mquinas de Turing com Fita Limitada

    5 LSCs e LLLCs

    6 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 cujasregras do conjunto P obedecem ao formato , onde:

    I VNV

    I VI | |> | |

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 4 / 61

  • Gramticas Sensveis ao Contexto

    Linguagem sensvel ao contexto

    I Define-se inicialmente linguagem sensvel ao contexto comosendo aquela que possa ser definida atravs de uma gramticasensvel ao contexto;

    I Essa definio estendida para qualquer linguagem L quecontenha a cadeia vazia, desde que L{} possa ser gerada poruma gramtica sensvel ao contexto;

    I Define-se linguagem estritamente sensvel ao contexto comosendo uma linguagem sensvel ao contexto mas no livre decontexto.

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 5 / 61

  • Gramticas Sensveis ao Contexto

    Exemplo

    Exemplo 1.1Seja 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;I S aSBC aaBCBC aaBBCC aabBCC aabbCC aabbcC

    aabbcc;I S aSBC aaSBCBC aaaBCBCBC aaaBBCCBC aaaBBCBCC

    aaaBBBCCC aaabBBCCC aaabbBCCC aaabbbCCC aaabbbcCCaaabbbccC aaabbbccc.

    fcil demonstrar que L(G1) = {anbncn | 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 decontexto que seja capaz de gerar L(G1), e portanto L uma linguagem estritamentesensvel ao contexto.

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 7 / 61

  • Gramticas Sensveis ao Contexto

    Exemplo

    Exemplo 1.2Considere-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;I S ABC ACB CAB CBA cBA cbA cba;I 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} comcomprimento mnimo 3 , de tal forma que as quantidades desses smbolos sejamsempre 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 estritamentesensvel ao contexto. Para isso suficiente provar, atavs do Pumping Lemma, queela 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

    I A inspeo rigorosa dos formatos admitidos para as produesdas gramticas do tipo 1 no permite a caracterizao imediatade toda e qualquer gramtica (e conseqentemente dascorrespondentes linguagens) do tipo 2 como sendo tambm dotipo 1;

    I Isso decorre do fato de que as gramticas do tipo 2 admitem acadeia vazia como alternativa de substituio para o ladoesquerdo de qualquer produo, o que no permitido emgramticas 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 esomente se:

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

    I L e L{} pode ser gerada por uma gramtica sensvel aocontexto.

    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 entrelinguagens livres de contexto e linguagens sensveis ao contexto:

    I Suponha-se, inicialmente, que L = L(G), onde G uma gramticalivre de contexto, e, adicionalmente, que / L;

    I fcil perceber, neste caso, que G satisfaz a todas asespecificaes de uma gramtica sensvel ao contexto, pois nohaver nenhuma regra com direita;

    I Logo, L(G) ser tambm uma linguagem sensvel ao contexto. Ouseja: linguagens livres de contexto que no contm a cadeiavazia 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, sernecessrio aplicar transformaes em G obtendo-se G, de modo que:

    I S seja a nica regra vazia em G;I S no comparea no lado direito de nenhuma outra regra de G;I L(G) = L(G).

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 14 / 61

  • Gramticas Sensveis ao Contexto

    Gramticas livres de contexto sensveis ao contexto

    I Portanto, com exceo da produo S , as gramticas do tipo2 podem ser sempre convertidas para um formato que as torneum caso particular das gramticas do tipo 1;

    I Em outras palavras, tem-se que qualquer gramtica do tipo 2,desde que devidamente convertida para esse formatopadronizado, e a menos da produo S , torna-se tambmuma 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

    I Assim, fato que G, exceto pela regra vazia, uma gramticasensvel ao contexto e, conseqentemente, L(G){} umalinguagem sensvel ao contexto;

    I Logo, L(G) = L(G) , de acordo com a definio, uma linguagemsensvel ao contexto;

    I Como conseqncia, pode-se concluir que toda linguagem livrede contexto tambm uma linguagem sensvel ao contexto;

    I Fica claro, tambm, que as linguagens livres de contextoconstituem um subconjunto prprio das linguagens sensveis aocontexto.

    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

    I Possvel, mas trabalhosa;I Produz especificaes longas, complexas e com baixa

    legibilidade;I Difcil utilizao prtica;I Por isso, adota-se a representao livre de contexto na

    formalizao gramatical, deixando para processamento posteriora verificao das dependncias de contexto que a linguagemporventura 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 arepresentao de gramticas do tipo 1. Nesta forma, as regras sotodas 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 serconvertida para uma nova gramtica em que todas as produesobedecem ao formato acima apresentado, exceto, naturalmente, aproduo 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

    I Isso feito, pode-se reinterpretar as produes comoespecificaes de substituies para um determinadono-terminal A por , apenas quando A estiver cercado dascadeias e , ou seja, quando A estiver no contexto de e ;

    I Portanto, diz-se que a substituio de A por depende daocorrncia de um contexto esquerdo e de um contexto direito para o no-terminal A, fato este que motiva o emprego do termoalternativo dependente de contexto para designar as gramticasdo 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 nuncaocorre com as gramticas do tipo 2, nas quais qualquer substituiode um smbolo no-terminal ocorre sempre de forma independente docontexto em que tal no-terminal encontrado, motivando dessamaneira o emprego do nome livre de contexto para designar taisgramticas.

    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 aocontexto a Forma Normal de Kuroda. Apesar de no evidenciardiretamente os contextos em que so feitas as substituies, como nocaso da forma normal anterior, ela utilizada em certasdemonstraes tericas. Formalmente, diz-se que uma gramticasensvel ao contexto encontra-se na Forma Normal de Kuroda setodas as suas produes estiverem em conformidade comalguma das seguintes condies:

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

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 24 / 61

  • Mquinas de Turing com Fita Limitada

    CaractersticasUma Mquina de Turing com fita limitada um dispositivono-determinstico de reconhecimento de cadeias que possui algumasimportantes extenses em relao aos autmatos finitos ou aosautmatos de pilha. As mais importantes so:

    1 A fita de trabalho possui comprimento igual ao comprimento dacadeia de entrada, acrescido de dois (uma posio para indicar oincio da cadeia e outra para indicar seu trmino; tais indicaesso feitas atravs de smbolos especiais, no pertencentes aoalfabeto de entrada);

    2 O cursor de acesso aos smbolos da fita de trabalho pode sedeslocar, sob o comando do controle finito, tanto para a direitaquanto para a esquerda;

    3 Atravs do cursor de acesso pode-se no apenas ler os smboloscontidos na posio corrente da fita de trabalho, como tambmgravar 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 definidacomo:

    M = (Q,,, ,q0,,F)onde:

    I Q o conjunto finito de estados;I o alfabeto de entrada, composto por um conjunto finito de

    smbolos;I 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

    I a funo parcial de transio, compreendendo os seguintesmapeamentos:

    I Q 2Q{E,D}I Q{}{E}

    I q0 o estado inicial, q0 Q;I / so smbolos respectivamente situados imediatamente

    esquerda e imediatamente direita da cadeia de entrada naconfigurao inicial;

    I 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 aesso tomadas, nesta seqncia, aps a seleo dessa transio:

    I O estado corrente qi substitudo pelo novo estado qj;I O smbolo correntemente apontado pelo cursor de acesso, m,

    substitudo, na fita de trabalho, pelo novo smbolo n;I 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, ) {}em que qk o estado corrente, {} a poro da cadeia de entrada que se encontra direita do cursorde acesso, incluindo a posio por ele correntemente selecionada.Note-se que podem ocorrer, cada um, no mximo uma vezem , 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 (), onde q0 o estado inicial e a cadeia de entrada a ser analisada. O cursor de acessorefere-se, portanto, ao smbolo inicial (mais esquerda) da cadeia .A poro da representao ( ,qk, ) corresponde, neste caso,apenas ao smbolo

  • Mquinas de Turing com Fita Limitada

    Movimentao

    O smbolo ` denota uma relao sobre as configuraes de umaMquina de Turing com fita limitada:

    `: {} {}

    Portanto, a movimentao de uma configurao ( ,qk, ) para aconfigurao seguinte ( ,qm, ) representada como:

    ( ,qk, ) ` ( ,qm, )As transies contidas na funo especificam possibilidades demovimentao, que conduzem o dispositivo de cada possvelconfigurao para a correspondente configurao seguinte. Diz-seque o dispositivo pra quando a funo no estiver definida para opar (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 oconjunto de todas as cadeias que so capazes de conduzir odispositivo desde a sua configurao inicial (nica para cada cadeiade entrada) at uma configurao final qualquer, sem possibilidade demovimentao adicional. Formalmente:

    L(M)= { | ()` ( ,qf ,), com qf F, {}}

    Admite-se, como condio de parada, que = pi,com ({}),pi ({>}{}) 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 edos autmatos de pilha, as Mquinas de Turing com fita limitada noexigem, como pr-requisito para a caracterizao de umaconfigurao final, que a cadeia de entrada tenha sido esgotada ou,ainda, que o cursor de acesso se encontre direita do ltimo smboloda 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 deacesso.

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 33 / 61

  • Mquinas de Turing com Fita Limitada

    Exemplo

    Exemplo 3.1A Mquina de Turing com fita limitada M = (Q,,, ,q0,,F) mostrada na

    Figura 1 aceita a linguagem ab.

    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

    q0 q1

    q2

    b/(b,D)

    > /(>,E)> /(>,E)

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

    Figura 1: Mquina de Turing com fita limitada que aceita ab

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 35 / 61

  • Mquinas de Turing com Fita Limitada

    Exemplo

    I Exemplo de cadeia reconhecida: 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.

    I Exemplo de cadeia rejeitada: 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.2A Mquina de Turing com fita limitada M = (Q,,, ,q0,,F) da Figura 2aceita a linguagem {anbn | 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)}

    F = {q4}

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 37 / 61

  • Mquinas de Turing com Fita Limitada

    Exemplo

    q0 q1 q2

    q5

    q3 q4

    Y/(Y,D)

    a/(a,D)

    Y/(Y,E)

    a/(a,E)

    Y/(Y,D)

    a/(X ,D) b/(Y,E)

    X/(X ,D)

    b/(b,D)

    b/(b,D)

    > /(>,E)

    Y/(Y,D)

    > /(>,E)

    Figura 2: Mquina de Turing com fita limitada que aceita {anbn | 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.

    2 O cursor continua se deslocando para a direta at encontrar um smbolo b ouo smbolo >.

    3 Se encontrar >, a cadeia rejeitada, pois existem mais smbolos a do queb. Se encontrar b, este ser substitudo por Y e o cursor ser deslocadopara 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).

    4 Se o smbolo corrente for Y, isso indica que j foram considerados todos ossmbolos a. Se o restante da cadeia de entrada for formada apenas porsmbolos Y, ela ser aceita. Caso contrrio, ser rejeitada. o caso, porexemplo, 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:() ` (< X,q1,abb >) ` (< Xa,q1,bb >) ` (< X,q2,aYb >) ` () ` (< X,q0,aYb >) ` (< XX,q1,Yb >) ` (< XXY,q1,b >) ` () ` (< X,q2,XYY >) ` (< XX,q0,YY >) ` (< XXY,q3,Y >) ` () ` (< XXY,q4,Y >)

    I A cadeia aab rejeitada:() ` (< X,q1,ab >) ` (< Xa,q1,b >) ` (< X,q2,aY >) ` () ` (< X,q0,aY >) ` (< XX,q1,Y >) ` (< XXY,q1,>) ` ()

    I A cadeia abb rejeitada:() ` (< X,q1,bb >) ` () ` (< X,q0,Yb >) ` () ` (< 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 parareconhecer uma linguagem livre de contexto, e tal fato sugere que esse tipo dedispositivo possa ser empregado tambm no reconhecimento desta categoria delinguagens, em substituio aos autmatos de pilha.Alm de necessitar da movimentao do cursor em ambos os sentidos, neste exemploa substituio (gravao) de um smbolo do alfabeto de entrada por smbolos que nofazem parte deste alfabeto (no caso, a por X e b por Y) essencial para o seucorreto funcionamento.

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 41 / 61

  • Mquinas de Turing com Fita Limitada

    Exemplo

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

    q0 q1 q2 q3 q4

    q5 q6

    q7 q8

    a/(X ,D) c/(c,D) a/(X ,E) c/(c,E)

    c/(c,D)

    > /(>,E)

    b/(b,D)

    a/(a,D) X/(X ,D) X/(X ,E)

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

    b/(b,D)

    a/(a,D) X/(X ,D)

    X/(X ,D)

    c/(c,D)

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

    X/(X ,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 aocontexto, 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 namaioria das linguagens de programao algortmicas tradicionais um nome spode 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

    () ` (< X,q1,bbcabb >) ` (< Xb,q1,bcabb >) `(< Xbb,q1,cabb >) ` (< Xbbc,q2,abb >) ` (< Xbb,q3,cXbb >) `(< Xb,q4,bcXbb >) ` (< X,q4,bbcXbb >) ` () `(< 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 decontexto, que a linguagem deste exemplo no livre de contexto. Tal resultadosugere, como ser mostrado mais adiante, que as Mquinas de Turing com fitalimitada so dispositivos capazes de reconhecer uma classe de linguagens mais amplado que as livres de contexto, reconhecidas pelos autmatos de pilha trata-se, nocaso, 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 fitalimitada. Ento L{}= L(G), com G sendo uma gramtica sensvelao contexto.A idia geral desta demonstrao consiste na obteno de umagramtica sensvel ao contexto que reproduz, na derivao de suassentenas, os movimentos de uma Mquina de Turing com fitalimitada que reconhece a mesma linguagem. Se a cadeia de entradaconduz o autmato a uma configurao final, sendo portanto aceita,esta mesma cadeia gerada pela gramtica. Cadeias rejeitadas peloautmato 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 aocontexto. Ento L = L(M), sendo M uma Mquina de Turing com fitalimitada.Assim como foi feito no Teorema 4.1, ser apresentado como provadeste teorema um algoritmo que permite efetuar um mapeamentodireto entre G e sua correspondente Mquina de Turing com fitalimitada.

    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 umalinguagem sensvel ao contexto.Se L livre de contexto, ento existe pelo menos uma gramtica livrede contexto G que gera L. Se / L ento, de acordo com resultadosanteriores, possvel obter uma gramtica livre de contexto G, isentade produes vazias, tal que L(G) = L. Se L ento possvelobter uma gramtica livre de contexto G, isenta de produes vazias,tal que L(G) = L{}. Como, pela definio, toda gramtica livre decontexto satisfaz aos critrios formulados para as gramticassensveis ao contexto (exceto pelas regras vazias), pode-se concluirque toda linguagem livre de contexto tambm uma linguagemsensvel ao contexto.

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 48 / 61

  • LSCs e LLLCs

    Exemplo

    Exemplo 5.1Seja G1 = ({a,b,S},{S},{S aSb | ab},S), com L1(G1) = {anbn,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 aocontexto.

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 49 / 61

  • LSCs e LLLCs

    Exemplo

    Exemplo 5.2Seja G2 = ({a,b,S},{S},{S aSb | },S), com L2(G2) = {anbn,n > 0}. Como G2contm a regra S , isso implica que G2, apesar de ser uma gramtica livre decontexto, no uma gramtica sensvel ao contexto. Por outro lado, L2{} gerada pela gramtica G2 = ({a,b,S},{S},{S aSb | ab},S), que livre de contextoe 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.3Seja G3 = ({a,b,S,X},{S,X},{S aSb | aXb,X ab | },S), comL3(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 aocontexto. No obstante, L3 gerada tambm pela gramticaG3 = ({a,b,S},{S},{S aSb | ab},S), isenta de regras vazias, que livre decontexto e tambm sensvel ao contexto. Logo, L3 uma linguagem sensvel aocontexto.

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 51 / 61

  • LSCs e LLLCs

    Exemplo

    Exemplo 5.4Seja G4 = ({a,b,S,X},{S,X},{S aSb | X,X ab | },S), comL4(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 G4 = ({a,b,S,X},{S,X},{S aSb | X | ,X ab},S),em que a nica regra vazia S . Finalmente, L4{} gerada pela gramticaG4 = ({a,b,S,X},{S,X},{S aSb | X,X ab},S), que simultaneamente livre decontexto 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 constituisubconjunto prprio da classe das linguagens sensveis ao contexto.Atravs da aplicao do Pumping Lemma para linguagens livres decontexto possvel provar que diversas linguagens no so livres decontexto. Entre estas, pode-se citar a linguagem {anbncn | n > 1}, aqual, no entanto, pode ser representada atravs de uma gramticasensvel ao contexto (ver Exemplo 1.1). Logo, trata-se de umalinguagem sensvel ao contexto, no-livre de contexto, e sua simplesexistncia 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 sobreum certo alfabeto enumervel.Considere-se um alfabeto qualquer e todas as gramticas sensveisao contexto que podem ser criadas a partir do mesmo. SejaG = {G1,G2,G3, ...Gn, ...} o conjunto infinito que rene todas essasgramticas.Sem perda de generalidade, pode-se considerar que os smbolosno-terminais de cada uma dessas gramticas pertencem ao conjuntoinfinito A = {A1,A2,A3, ...An, ...} e, alm disso, que a raiz de cada umadelas A1. Ou seja, todas elas tm a mesma raiz e compartilham omesmo 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 Algoritmo6.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 sejautilizado nas mesmas. Claramente, existe apenas um nmero finito degramticas nesta condio.

    2 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 sejamutilizados nas mesmas. Novamente, o conjunto de gramticas que satisfaza esta condio finito.

    3 Repete-se o passo (2) considerando ||6 3, | |6 3 e os no-terminaisA1,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 deconjuntos finitos, seqncia esta que pode ser ordenada na mesmaseqncia dos nmeros naturais (1,2,3...). O conjunto das gramticassensveis 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 existegramtica 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 gramticassensveis ao contexto so enumerveis) e um alfabeto qualquer. Emseguida, pode-se considerar uma enumerao, em ordemlexicogrfica crescente, das cadeias de +. Considere-se, emparticular, = {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 funobijetora entre os dois conjuntos, de tal forma que os pares (Gi,i), i > 1sejam 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 l l l

    1 2 3 ... n ...

    Defina-se agora a linguagem LR = {i | i / L(Gi),i > 1}. Em outraspalavras, pertencem a LR as cadeias i que no pertenam a L(Gi).Tal verificao pode sempre ser feita para gramticas sensveis aocontexto, conforme demonstrado em teorema anterior sobre aequivalncia deste tipo de gramticas com as Mquinas de Turing comfita 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 umalinguagem que sensvel ao contexto, ou ento trata-se de umalinguagem que no sensvel ao contexto.Considere-se que LR seja uma linguagem sensvel ao contexto. Seessa hiptese for verdadeira, dever existir pelo menos uma gramticasensvel ao contexto que a gere. Naturalmente, tal gramtica deverpertencer ao conjunto G. Seja Gi esta gramtica. Se LR = L(Gi), entos existem duas possibilidades: i pertence ou no pertence a LR.

    I Primeira possibilidade: se i / L(Gi), ento i LR, por hiptese,o que uma contradio.

    I Segunda possibilidade: se i L(Gi), ento i / LR, porconstruo, o que tambm uma contradio.

    Logo, LR no pode ser uma linguagem sensvel ao contexto, e issocompleta a demonstrao.

    Marcus Ramos (UNIVASF) LFA 2010-1 28 de junho de 2010 61 / 61

    Gramticas Sensveis ao ContextoFormas Normais para Gramticas Sensveis ao ContextoMquinas de Turing com Fita LimitadaGSCs e Mquinas de Turing com Fita LimitadaLSCs e LLLCsLinguagens que no so Sensveis ao Contexto