Linguagens Livre de Contexto

Embed Size (px)

DESCRIPTION

aposkdpaoskdaskdpasokpaokdpaokdpaoskdpasokdpasodkpasodkpaskdpasokdpasokdpaoskdpaoskdpoaskdpasokdpaoskdpasokdpaosdkpasokdpoaskdpsaokdpoaskdpasokdpasodkpaoskdpsaodkpasokdpasokdpasokdpaoskdpaoskdpaoskdpaosdkpaoskdspaokdpasokdpaosdkpaskdpasokdpasokdpasokdpasokdpaoskdpsaokdpoaskdpoaskdasokdpasokdopsakdpaosk

Citation preview

  • Linguagens Livres de Contexto

    Prof. Marcus Vincius Midena Ramos

    Universidade Federal do Vale do So Francisco

    4 de junho de 2012

    [email protected]/~marcus.ramos

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 1 / 295

  • 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 4 de junho de 2012 2 / 295

  • Roteiro1 Gramticas Livres de Contexto2 BNF Estendida3 rvores de Derivao4 Ambigidade

    5 Simplificao de Gramticas Livres de Contexto

    6 Formas Normais para Gramticas Livres de Contexto

    7 Autmatos de Pilha8 Gramticas Livres de Contexto e Autmatos de Pilha9 Linguagens Livres de Contexto e Linguagens Regulares

    10 Linguagens que no so Livres de Contexto

    11 Linguagens Livres de Contexto Determinsticas

    12 Propriedades de Fechamento

    13 Questes Decidveis e No-Decidveis

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 3 / 295

  • Gramticas Livres de Contexto

    Linguagens de programao

    I A maior aplicao das gramticas livres de contexto ocorre naformalizao sinttica das linguagens de programao de altonvel;

    I Rigorosamente, no se pode dizer que tais linguagens sejampropriamente livres de contexto;

    I Na verdade, a formalizao completa de sua sintaxe exigiriadispositivos mais complexos, como o caso das gramticas dotipo 1, uma vez que a grande maioria de tais linguagensapresenta dependncias de contexto que no podem serrepresentadas por gramticas do tipo 2, ou livres de contexto.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 4 / 295

  • Gramticas Livres de Contexto

    Aninhamento

    I A caracterstica que torna as gramticas livres de contextoespecialmente adequadas formalizao sinttica daslinguagens de programao a sua capacidade derepresentao de construes aninhadas, que sofreqentemente encontradas em linguagens dessa categoria;

    I Construes aninhadas costumam ocorrer em linguagens deprogramao, por exemplo, na construo de expressesaritmticas, em que subexpresses so delimitadas, atravs douso de parnteses; na estruturao do fluxo de controle, em quecomandos internos so inseridos como parte integrante de outrosexternos; na estruturao do programa, em que blocos, mdulos,procedimentos e funes so empregados para criar diferentesescopos, etc.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 5 / 295

  • Gramticas Livres de Contexto

    Definio

    Uma gramtica livre de contexto uma qudrupla (V, , P, S) com osseguintes componentes:

    I V: conjunto (finito e no-vazio) dos smbolos terminais eno-terminais;

    I : conjunto (finito e no-vazio) dos smbolos terminais;corresponde ao alfabeto da linguagem definida pela gramtica;

    I P: conjunto (finito e no-vazio) das regras de produo, todas noformato , com (V) e V;

    I S: raiz da gramtica, S (V).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 6 / 295

  • Gramticas Livres de Contexto

    Exemplo

    Exemplo 1.1Seja P o conjunto de regras abaixo e considerem-se , V e S subentendidos.

    {E T + E, (1)E T, (2)T F T, (3)T F, (4)F (E), (5)F a} (6)

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 7 / 295

  • Gramticas Livres de Contexto

    Exemplo

    Considere-se a sentena a (a+a). Ela pode ser obtida atravs da seguinte seqnciade derivaes:E T F T a T a F a (E) a (T + E) a (F + E) a (a + E) a (a + T) a (a + F) a (a + a)

    correspondente aplicao das produes4.2,4.3,4.6,4.4,4.5,4.1,4.4,4.6,4.2,4.4,4.6, nesta ordem.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 8 / 295

  • Gramticas Livres de Contexto

    Exemplo

    Observe-se que a linguagem gerada pela gramtica deste exemplo compreende assentenas que representam expresses aritmticas corretamente formadas sobre ooperando a com os operadores e +. Subexpresses delimitadas atravs deparnteses tambm so admitidas, e podem ser compostas com base nas mesmasregras utilizadas para construir a expresso inicial. No fazem parte da linguagemdefinida por esta gramtica, por exemplo, cadeias em que no haja plenacorrespondncia do smbolo ( com seu par ). Em outras palavras, trata-se de umalinguagem que admite o aninhamento de expresses atravs do uso de parntesescomo delimitadores.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 9 / 295

  • Gramticas Livres de Contexto

    Linguagens estritamente livres de contexto

    I O aninhamento de construes a caracterstica que distingue aslinguagens estritamente do tipo 2 das linguagens do tipo 3:pertencem a uma linguagem estritamente do tipo 2 apenas e tosomente as sentenas em que, para cada ocorrncia de um dadodelimitador (no caso, o abre-parnteses), haja emcorrespondncia a ocorrncia de um outro, atravs do qual seforma o par (no caso, o fecha-parnteses);

    I Alm disso, a subcadeia situada entre esse par de delimitadorespode ser gerada atravs das mesmas regras de formao vlidaspara a sentena completa, caracterizando dessa maneira oaninhamento de suas construes.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 10 / 295

  • Gramticas Livres de Contexto

    Aninhamentos sintticos

    I Atravs de regras de produo livres de contexto, possvelespecificar construes mais restritas do que as obtenveismediante o uso de produes de gramticas lineares;

    I Com regras livres de contexto possvel caracterizaraninhamentos sintticos, os quais no podem ser descritosapenas com produes lineares direita ou esquerda (ouqualquer combinao delas);

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 11 / 295

  • Gramticas Livres de Contexto

    Aninhamentos sintticos

    I Gramticas livres de contexto permitem impor restriesadicionais quelas que se podem construir em gramticasregulares, podendo assim caracterizar subconjuntos daslinguagens regulares que gozem da propriedade determinadapelos aninhamentos sintticos;

    I Gramticas livres de contexto tornam-se muito teis para aespecificao de linguagens de programao, a maioria das quaisexibe aninhamentos sintticos.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 12 / 295

  • Gramticas Livres de Contexto

    No-terminal auto-recursivo central

    Um no-terminal Y dito self-embedded, ou auto-recursivo central,se, a partir dele, for possvel derivar alguma forma sentencial em queo no-terminal Y ressurja, delimitado por cadeias no-vazias determinais sua esquerda e sua direita:

    Y Y , com , +

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 13 / 295

  • Gramticas Livres de Contexto

    Gramtica auto-embutida

    Um no-terminal Z dito simplesmente auto-recursivo se, a partirdele, for possvel derivar alguma forma sentencial em que Z ressurja,acompanhado de pelo menos uma cadeia no-vazia de terminais sua esquerda ou sua direita:

    Z Z , com , , 6= Se uma gramtica livre de contexto G possui pelo menos umno-terminal auto-recursivo central, diz-se que G auto-embutida (doingls self-embedded).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 14 / 295

  • Gramticas Livres de Contexto

    No-terminal auto-recursivo central essencial

    Um smbolo no-terminal essencial aquele que no pode serremovido da gramtica (ou substitudo) sob pena de provocarmodificaes na linguagem sendo definida. Uma linguagem L ditaestritamente livre de contexto, ou livre de contexto no-regular, se eapenas se todas as gramticas que geram L forem auto-embutidas, ouseja, se todas elas possurem pelo menos um no-terminalauto-recursivo central essencial.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 15 / 295

  • Gramticas Livres de Contexto

    No-terminal auto-recursivo central essencial

    O simples fato de uma gramtica ser auto-embutida no garante ano-regularidade da linguagem definida: possvel identificarlinguagens regulares geradas por gramticas com no-terminaisauto-recursivos centrais que, nesses casos, no so essenciais. OExemplo 1.2 ilustra essa situao.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 16 / 295

  • Gramticas Livres de Contexto

    Exemplo

    Exemplo 1.2A gramtica cujas regras constituem o conjunto abaixo do tipo 2 e possui um

    no-terminal auto-recursivo central (S, em decorrncia da produo S aSa),podendo portanto ser caracterizada como uma gramtica auto-embutida:

    {S aS,S bS,S a,S b,S aSa}

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 17 / 295

  • Gramticas Livres de Contexto

    Exemplo

    No entanto, a linguagem gerada por essa gramtica {a,b}, ou seja, a linguagem regular. Na verdade, fcil observar que essa linguagem tambm pode ser gerada porum conjunto de regras equivalente, em que a ltima produo da gramtica acima removida:

    {S aS,S bS,S a,S b}

    Tal fato ocorre, neste caso particular, porque a produo S aSa no-essencial gramtica, ou seja, a sua incluso no conjunto P de produes em nada contribui paramodificar a linguagem definida pelas demais produes.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 18 / 295

  • Gramticas Livres de Contexto

    Linguagem estritamente livre de contexto

    I Quando todas as alternativas de substituio para um smbolono-terminal so no-essenciais, diz-se que o smbolo emquesto no-essencial;

    I Se ele for um no-terminal auto-recursivo central, diz-se que ono-terminal auto-recursivo central no-essencial;

    I No-terminais auto-recursivos centrais que caracterizamgramticas auto-embutidas podem ou no ser essenciais;

    I Se houver pelo menos um no-terminal auto-recursivo centralessencial em alguma gramtica, a correspondente linguagem dita estritamente livre de contexto;

    I Se todos os no-terminais auto-recursivos centrais de umagramtica forem no-essenciais, a linguagem por ela definida regular.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 19 / 295

  • Gramticas Livres de Contexto

    Propriedade do auto-embutimento

    I A Self-embedding Property exprime a capacidade que tm asgramticas livres de contexto para representarem aninhamentossintticos;

    I Se Y Y , ento, da aplicao sucessiva dessa seqncia dederivaes, resulta que Y , Y etc. so formassentenciais que geram sentenas pertencentes a L(G);

    I A cada subcadeia possvel impor a existncia de uma outrasubcadeia que estabelea a correspondncia com ;

    I Gramticas regulares no exibem a Self-embedding Property,sendo esta uma propriedade caracterstica das gramticas livresde contexto no-regulares.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 20 / 295

  • Gramticas Livres de Contexto

    Exemplo

    Exemplo 1.3Considere-se a linguagem das expresses aritmticas definida no Exemplo 1.1.

    Observe-se que E T F (E), ou seja, E (E).Logo, E um no-terminal auto-recursivo central, e a gramtica a que ele pertence auto-embutida. possvel demonstrar que todas as gramticas que geram essalinguagem so auto-embutidas, o que caracteriza a linguagem como no-regular.Note-se que, como E (E), a cada abre-parnteses que antecede a subexpresso Ecorresponde sempre um fecha-parnteses logo aps E. Note-se tambm que todas assentenas derivadas das formas sentenciais (iE)i, i > 1, tambm pertencem linguagem definida, sendo obtidas pela aplicao repetida da seqncia de derivaesapresentada.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 21 / 295

  • Gramticas Livres de Contexto

    Anlise sinttica

    I Quando se consideram linguagens especificadas atravs degramticas livres de contexto, deve-se tambm considerar de queforma feita a aceitao sinttica de suas sentenas para fins decompilao e/ou interpretao;

    I Quando se trata de efetuar o reconhecimento de sentenas, oque se busca, na verdade, localizar uma seqncia deprodues que, quando aplicada raiz da gramtica, forneacomo resultado, atravs da srie correspondente de derivaes, asentena fornecida para anlise;

    I Sendo possvel completar a derivao, diz-se que a sentenapertence linguagem; caso contrrio, que ela no pertence linguagem.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 22 / 295

  • Gramticas Livres de Contexto

    Anlise sinttica

    I No entanto, para cada sentena pertencente linguagem definidaatravs de uma gramtica livre de contexto, geralmente possvelidentificar uma grande quantidade de seqncias distintas dederivao, resultado de escolhas arbitrrias do particular smbolono-terminal a ser substitudo em cada passo da derivao, todaselas resultando na mesma sentena analisada;

    I Na prtica, no entanto, costuma-se fixar alguns critrios dederivao de sentenas, para permitir a construo e a operaosistemticas dos reconhecedores sintticos.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 23 / 295

  • Gramticas Livres de Contexto

    Derivaes mais esquerda e mais direita

    I Diz-se que a derivao de uma forma sentencial em umagramtica livre de contexto uma derivao mais esquerda,quando a substituio de um no-terminal pelo lado direito deuma produo que o define feita substituindo-se sempre ono-terminal que ocorre mais esquerda na cadeia querepresenta a forma sentencial em questo;

    I De maneira anloga, uma derivao mais direita aquela emque sempre o no-terminal mais direita, na forma sentencial,que substitudo pela sua definio.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 24 / 295

  • Gramticas Livres de Contexto

    Exemplo

    Exemplo 1.4Considere-se a gramtica do Exemplo 1.3. A seguir so apresentadas duas seqnciasde derivao para a sentena a + a. Na primeira, todas as derivaes so mais esquerda, e na segunda, mais direita. Note-se que as seqncias de produesutilizadas em cada caso so distintas, e tambm que diversas outras seqnciaspoderiam ser obtidas combinando-se arbitrariamente os no-terminais a seremsubstitudos em cada forma sentencial.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 25 / 295

  • Gramticas Livres de Contexto

    Exemplo

    1 Derivaes com substituies mais esquerda apenas:E T + E F + E a + E a + T a + F a + aProdues aplicadas: 4.1,4.4,4.6,4.2,4.4,4.6

    2 Derivaes com substituies mais direita apenas:E T + E T + T T + F T + a F + a a + aProdues aplicadas: 4.1,4.2,4.4,4.6,4.4,4.6

    3 Derivaes com substituies de diversos tipos:E T + E F + E F + T a + T a + F a + aProdues aplicadas: 4.1,4.4,4.2,4.6,4.4,4.6

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 26 / 295

  • Gramticas Livres de Contexto

    Metalinguagens

    I Como conseqncia do elevado interesse prtico despertadopelas gramticas livres de contexto, inmeras notaes foramdesenvolvidas para facilitar a formalizao sinttica daslinguagens artificiais, permitindo criar definies formais maislegveis e concisas do que as obtidas usualmente com a notaoalgbrica.

    I Tais notaes, denominadas metalinguagens, permitem arepresentao de linguagens livres de contexto, sendoequipotentes, portanto, notao algbrica introduzidaanteriormente. A primeira e talvez mais importante delas a BNF,abreviatura de Backus-Naur Form.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 27 / 295

  • Gramticas Livres de Contexto

    BNF

    Na notao BNF, os no-terminais so representados por textosdelimitados pelos metassmbolos ; para distingui-los dossmbolos terminais, o metassmbolo substitudo por ::= e,finalmente, todas as alternativas de substituio para um mesmono-terminal so agrupadas, separando-se umas das outras com ometassmbolo |. Os terminais so denotados sem delimitadores.

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

  • Gramticas Livres de Contexto

    Exemplo

    Exemplo 1.5Em BNF, a gramtica que representa expresses aritmticas aninhveis, sobreoperandos a, com os operadores adio e multiplicao, anteriormente apresentadano Exemplo 1.1, torna-se:

    ::= + | ::= | ::= a | ()

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 29 / 295

  • Gramticas Livres de Contexto

    BNF

    Empregada pela primeira vez no incio da dcada de 1960, napublicao que definiu formalmente a linguagem de programaoAlgol 60, a notao BNF se tornou extremamente popular justamentepor ter demonstrado na prtica, pela primeira vez, a viabilidade de usode uma notao formal para a representao da sintaxe de umalinguagem de programao, representando um dos primeirosresultados prticos advindos do interesse dos profissionais decomputao pelas ento recm descobertas gramticas livres decontexto.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 30 / 295

  • Gramticas Livres de Contexto

    Metalinguagens

    Embora largamente utilizada ainda hoje, a notao BNF enfrentaatualmente a concorrncia de outras metalinguagens igualmenteimportantes, como o caso de vrios de seus dialetos, da Notao deWirth, dos Diagramas de Sintaxe, das Expresses RegularesEstendidas e de inmeras outras. Apesar disso, a notao algbricacontinuar sendo empregada preferencialmente neste texto por ser amais adequada ao estudo terico e conceitual das linguagens formais.Eventualmente, poder ser empregada a BNF, em exemplos delinguagens de programao.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 31 / 295

  • BNF Estendida

    Conceito

    I Expresses regulares foram definidas como uma notaobastante concisa e adequada para a representao de linguagensregulares;

    I Uma importante extenso das expresses regulares so asexpresses regulares estendidas, que, em combinao com aBNF, disponibilizam as vantagens do uso de expressesregulares para a classe das linguagens livres de contexto,constituindo assim uma metalinguagem alternativa para arepresentao das mesmas;

    I Essa metalinguagem, denominada BNF estendida (ou EBNF),resulta da fuso das definies da BNF e da expresso regular.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 32 / 295

  • BNF Estendida

    Expresso regular estendida e BNF estendida

    I Uma expresso regular estendida , por definio, umaexpresso regular que admite como operandos os smbolosno-terminais da gramtica, em adio aos terminais;

    I Um conjunto de regras gramaticais representado atravs danotao BNF estendida um conjunto de expresses regularesestendidas, cada uma delas associada a um smbolono-terminal distinto.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 33 / 295

  • BNF Estendida

    Exemplo

    Exemplo 2.1Considere-se a gramtica livre de contexto:

    G = ({S,X,Y,Z,a,b,c,d,e, f ,g},{a,b,c,d,e, f ,g},P,S)com P apresentado a seguir, que gera uma linguagem L estritamente livre de contexto.

    P = {S XYZ | gX aX | aY SbZ cdZ | eZ | f}

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 34 / 295

  • BNF Estendida

    Exemplo

    Transcrito para a BNF, este conjunto de produes resulta: ::= | g ::= a | a ::= b ::= cd | e | f

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 35 / 295

  • BNF Estendida

    Exemplo

    No difcil perceber que gera cadeias compostas por um ou mais smbolos a.Ento, a regra ::= a | pode ser substituda pela regra ::= aa. Demaneira anloga, a regra ::= cd | e | f pode ser substituda por ::= (cd | e)f . Note-se, em ambos os casos, a substituio do uso de smbolono-terminal no lado direito das regras, pelo uso do operador fechamento reflexivo etransitivo () para representar a repetio de termos.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 36 / 295

  • BNF Estendida

    Exemplo

    O novo conjunto de regras torna-se, portanto: ::= | g ::= aa

    ::= b ::= (cd | e)f

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 37 / 295

  • BNF Estendida

    Exemplo

    A substituio das definies dos smbolos , e na regra do smbolo resulta em:

    ::= aab(cd | e)f | g

    I O lado direito da regra acima (aab(cd | e)f | g) , como se pode perceber,uma expresso regular estendida, pois possui a forma de uma expresso regular,acrescida da referncia ao smbolo no-terminal . O lado esquerdo e o ladodireito, juntamente, constituem uma regra gramatical representada na notaoBNF estendida;

    I A regra acima explicita a presena de um smbolo no-terminal auto-recursivoessencial em G (no caso, o smbolo ), suficiente para caracterizar L comosendo livre de contexto e no-regular. Em termos informais, L pode tambm serrepresentada como (aa)ng(b(cd | e)f )n, com n > 0.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 38 / 295

  • BNF Estendida

    Vantagens

    I A principal vantagem decorrente uso da BNF estendida, emcomparao com a notao algbrica, ou mesmo com a BNF,resulta da possibilidade de representar a repetio de formassintticas sem a necessidade de definies gramaticaisrecursivas (aquelas em que o smbolo no-terminal que estiversendo definido ressurge, direta ou indiretamente, em formassentenciais derivadas do mesmo), substituindo-as pela definiode iteraes explcitas (atravs do uso do operador fechamentoreflexivo e transitivo);

    I Isso proporciona um entendimento mais fcil da linguagem porela definida, sendo ainda til em determinados mtodos deconstruo de reconhecedores sintticos a partir de gramticaslivres de contexto.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 39 / 295

  • BNF Estendida

    No-terminais auto-recursivas centrais essenciais

    I Nem sempre uma gramtica livre de contexto poder ser reduzidaa uma nica regra em BNF estendida, ainda que esta representeuma definio recursiva;

    I A quantidade mnima de regras a que se pode chegar igual quantidade de smbolos no-terminais auto-recursivos centraisessenciais que a gramtica possui, uma vez que cada um destes responsvel pela incorporao de uma caracterstica distinta deaninhamento sinttico linguagem definida pela gramtica, nopodendo ser removidos da gramtica sem prejuzo da linguagempor ela definida.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 40 / 295

  • BNF Estendida

    Gramticas com uma nica regra

    I Gramticas livres de contexto que representam linguagensregulares podero sempre ser manipuladas at a eliminao detodos os smbolos no-terminais da gramtica, exceto,naturalmente, a raiz, resultando em uma nica expresso regular(no-estendida) que gera a linguagem definida pela gramtica;

    I Dessa maneira, a BNF estendida um formalismo que une asvantagens das expresses regulares s da BNF, constituindoimportante alternativa tanto para a representao de linguagensregulares quanto para a de linguagens livres de contexto.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 41 / 295

  • rvores de Derivao

    Conceito

    A representao da estrutura de sentenas ou formas sentenciais delinguagens livres de contexto, na forma de rvores bidimensionais, um recurso muito utilizado, tanto na teoria quanto na prtica daimplementao de linguagens, uma vez que:

    1 Proporciona meios para uma melhor visualizao da estruturadas sentenas da linguagem, facilitando a anlise das mesmas.

    2 Auxilia na demonstrao formal de teoremas, na interpretao decertos resultados tericos e na assimilao de vrios conceitos.

    3 Facilita a representao interna, nos compiladores einterpretadores, da estrutura das sentenas analisadas,registrando importantes informaes estruturais sobre asmesmas, a serem utilizadas em outros estgios doprocessamento da linguagem.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 42 / 295

  • rvores de Derivao

    Definio

    Formalmente, uma rvore de derivao um sistema derepresentao de seqncias de derivaes em uma gramtica livrede contexto G = (V,,P,S), consistindo em um grafo orientado eordenado, acclico, com as seguintes propriedades:

    1 Todo vrtice rotulado com um elemento de V {};2 O rtulo da raiz S;3 Os rtulos de vrtices internos so elementos de N = V;4 Se um vrtice tem o rtulo A, e X1,X2, . . .Xn so descendentes

    diretos de A, ordenados da esquerda para a direita, entoA X1,X2, ...Xn deve pertencer ao conjunto P de regras;

    5 Se um vrtice possui o rtulo , ento este vrtice deve sersimultaneamente uma folha e descendente nico de seuancestral direto.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 43 / 295

  • rvores de Derivao

    Fronteira de uma rvore

    I Define-se como fronteira de uma rvore a cadeia formada pelaconcatenao dos smbolos correspondentes aos rtulos dosvrtices que so folhas, considerados no sentido da esquerdapara a direita, e de cima para baixo;

    I Essa cadeia de smbolos (terminais e/ou no-terminais)corresponde forma sentencial cuja estrutura est sendorepresentada pela rvore.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 44 / 295

  • rvores de Derivao

    Exemplo

    Exemplo 3.1Considere-se a gramtica das expresses aritmticas anteriormente apresentada noExemplo 1.1. A estrutura da sentena a (a+a), de acordo com essa gramtica, podeser representada pela rvore de derivao da Figura 1.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 45 / 295

  • rvores de Derivao

    Exemplo

    a

    F *

    (

    a

    F

    T +

    a

    F

    T

    E

    E )

    F

    T

    T

    E

    Figura 1: rvore de derivao para E a (a + a)

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 46 / 295

  • rvores de Derivao

    rvores e derivaes

    Naturalmente, nem toda rvore necessita ter como raiz S, nemtampouco possuir como fronteira , S . comum que seconsiderem subrvores cuja raiz seja um elemento X qualquer, X N,e a fronteira, uma cadeia V, tal que X .

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 47 / 295

  • rvores de Derivao

    Exemplo

    Exemplo 3.2A derivao no-trivial T a(E), segundo a gramtica do Exemplo 1.1, pode serrepresentada atravs da subrvore da Figura 2.

    a

    F *

    ( E )

    F

    T

    T

    Figura 2: rvore de derivao para T a(E)

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 48 / 295

  • rvores de Derivao

    rvores e derivaes

    I A seguir, ser apresentado o teorema fundamental das rvoresde derivao;

    I Ele estabelece a existncia de pelo menos uma rvore dederivao para toda e qualquer cadeia derivvel a partir da raiz dagramtica, e tambm que toda e qualquer fronteira de uma rvorecorretamente construda sobre uma gramtica livre de contexto Gcorresponde a uma cadeia derivvel a partir da raiz de G.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 49 / 295

  • rvores de Derivao

    rvores e derivaes

    Teorema 3.1 Seja G = (V,,P,S) uma gramtica livre de contexto.Ento S se e apenas se existir uma rvore de derivao sobre Gcom fronteira .

    Por se tratar de um teorema bastante intuitivo, no ser apresentada asua prova formal, que no entanto pode ser encontrada em livros darea. A importncia deste teorema se deve ao fato de que elecredencia as rvores de derivao como uma representao vlidada estrutura das formas sentenciais geradas por uma gramtica.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 50 / 295

  • rvores de Derivao

    Informaes que as rvores no representam

    I rvores de derivao no contm informao sobre a particularseqncia em que foram aplicadas as produes para a obtenode uma dada forma sentencial: elas informam apenas quaisforam as produes aplicadas, mas no em que ordem;

    I Assim, para cada rvore de derivao, possvel identificardiversas seqncias distintas de derivao que resultem namesma forma sentencial: basta alterar a ordem em que osno-terminais so substitudos em cada passo da derivao.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 51 / 295

  • Ambigidade

    Gramtica no-ambgua

    Diz-se que uma gramtica livre de contexto no-ambgua se, paratoda e qualquer cadeia pertencente linguagem por ela gerada, existiruma nica seqncia de derivaes mais esquerda e uma nicaseqncia de derivaes mais direita que a geram.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 52 / 295

  • Ambigidade

    Gramtica ambgua

    Diz-se que uma gramtica livre de contexto ambgua quando existirpelo menos uma cadeia, pertencente linguagem por ela gerada, quepossua mais de uma seqncia distinta de derivaes, feitasexclusivamente atravs de substituies de no-terminais mais esquerda ou mais direita. Se houver mais de uma seqncia comsubstituies mais esquerda, ento haver tambm mais de umacom substituies mais direita, conforme demonstrado no Teorema4.1.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 53 / 295

  • Ambigidade

    Mltiplas derivaes esquerda e direita

    Teorema 4.1 Se w L(G), com G sendo uma gramtica livre decontexto, e existindo duas (ou mais) derivaes mais esquerda paraw em G, ento existem tambm, correspondentemente, duas (oumais) derivaes mais direita para w em G.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 54 / 295

  • Ambigidade

    Mltiplas derivaes esquerda e direita

    As gramticas livres de contexto possuem a propriedade de que asderivaes de cada um dos smbolos no-terminais presentes emuma mesma forma sentencial podem ser feitas de forma independenteumas das outras. Se S X , ento a derivao X independe de e .

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 55 / 295

  • Ambigidade

    Mltiplas derivaes esquerda e direita

    Considere-se uma gramtica livre de contexto G e a seqncia dederivaes mais esquerda S 1X , com 1 ,X N, e V.Considere-se que X 2, com 2 e 3, com 3 .Ento, S 1X 123 e 123 L(G).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 56 / 295

  • Ambigidade

    Mltiplas derivaes esquerda e direita

    Sejam X 1 e X 2 duas produes distintas de G. Ento, existemduas derivaes esquerda distintas para a cadeia 123:

    I S 1X 11 12 123I S 1X 12 12 123

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 57 / 295

  • Ambigidade

    Mltiplas derivaes esquerda e direita

    Se 123 L(G) e X 2, ento existe uma seqncia dederivaes mais direita S X3, com V e, alm disso, 1. Portanto, S X3 23 123.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 58 / 295

  • Ambigidade

    Mltiplas derivaes esquerda e direita

    Como, por hiptese, X 1 2 e X 2 2, ento existemduas seqncias de derivaes mais direita para a cadeia 123:

    I S X3 13 23 123I S X3 23 23 123

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 59 / 295

  • Ambigidade

    Mltiplas derivaes esquerda e direita

    De maneira anloga, possvel demonstrar que, para cada seqnciadistinta de derivaes mais esquerda que geram uma mesmacadeia da linguagem, existe uma seqncia distinta de derivaesmais direita correspondente, que gera a mesma cadeia.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 60 / 295

  • Ambigidade

    Exemplo

    Exemplo 4.1A gramtica cujo conjunto de regras est abaixo apresentado equivalente gramtica anteriormente utilizada na definio da linguagem das expressesaritmticas sobre {a,+,,(,)} do Exemplo 1.1. Diferentemente daquela, no entanto,apenas um smbolo no-terminal (E) utilizado:

    {E E + E,E E E,E a,E (E)}

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

  • Ambigidade

    Exemplo

    Adotando-se o critrio das derivaes mais esquerda, pode-se perceber que asentena a + a a pode ser derivada ao menos de duas formas distintas:

    1 Aplicando-se inicialmente a produo E E + E:E E + E a + E a + E E a + a E a + a a

    2 Aplicando-se inicialmente a produo E E E:E E E E + E E a + E E a + a E a + a a

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 62 / 295

  • Ambigidade

    Exemplo

    Como conseqncia, a gramtica anterior ambgua. possvel provar, no entanto,que a gramtica do Exemplo 1.1 (com os no-terminais E, T e F) admite uma nicaseqncia de derivao para cada sentena pertencente linguagem. Note-se, emparticular, que isso ocorre com a sentena acima considerada. Como concluso, estalinguagem pode ser indistintamente definida atravs de uma gramtica ambgua ou deuma gramtica no-ambgua.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 63 / 295

  • Ambigidade

    Exemplo

    Exemplo 4.2

    Considere-se o fragmento de gramtica abaixo apresentado, que ilustra um problematpico de determinadas linguagens de programao de alto nvel a ambigidade naconstruo de comandos condicionais aninhados.

    . . . . . .

    if then if then else

    . . .

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 64 / 295

  • Ambigidade

    Exemplo

    Passa-se a analisar a estrutura da seguinte forma sentencial:

    if then if then else

    Para se determinar uma eventual ambigidade nessa forma sentencial, escolhe-seinicialmente e fixa-se um critrio de substituio de no-terminais por exemplo, assubstituies dos no-terminais mais esquerda. Neste caso, fcil verificar que aforma sentencial acima admite duas seqncias distintas de derivao.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 65 / 295

  • Ambigidade

    Exemplo

    1. Primeira alternativa:

    . . . . . . . . . . . . . . . if then else . . . . . . if then else . . . . . . if then if then

    else . . .

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 66 / 295

  • Ambigidade

    Exemplo

    2. Segunda alternativa:

    . . . . . . . . . . . . . . . if then . . . . . . if then . . . . . . if then if then

    else . . .

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 67 / 295

  • Ambigidade

    Exemplo

    No primeiro caso, o ramo do else considerado como parte integrante docomando condicional mais externo e, no segundo, este mesmo ramo consideradocomo parte do comando condicional mais interno:

    if then if then

    else

    if then if then else

    Assim, a forma sentencial apresentada ambgua, o que tambm torna ambgua agramtica. Como se pode verificar facilmente, as mesmas concluses poderiamtambm ter sido obtidas caso fossem consideradas apenas substituies mais direita.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 68 / 295

  • Ambigidade

    Eliminao de ambigidades

    Normalmente, ambigidades costumam ser eliminadas atravs dautilizao de construes gramaticais que impeam a existncia demais de uma seqncia de derivaes mais esquerda (e, portantotambm mais direita) para cada sentena pertencente linguagem,desde que fixado e observado a priori, naturalmente, um critrio nicopara a substituio dos no-terminais nas formas sentenciais.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 69 / 295

  • Ambigidade

    Exemplo

    Exemplo 4.3

    Seja a seguinte gramtica, inspirada na do Exemplo 4.2: . . . . . .

    if then fi if then else fi

    . . .

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 70 / 295

  • Ambigidade

    Exemplo

    A associao do else ao comando condicional mais externo ou mais interno feita, de acordo com esta nova gramtica, respectivamente:

    if then if then fi

    else fi

    ou

    if then if then else fi

    fi

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 71 / 295

  • Ambigidade

    Linguagem livre de contexto ambgua

    Diz-se que uma linguagem livre de contexto ambgua se ela puderser gerada por uma gramtica livre de contexto ambgua, eno-ambgua se ela puder ser gerada por uma gramtica livre decontexto no-ambgua. No entanto, raramente se costuma dizer queuma linguagem ambgua, uma vez que uma mesma linguagem podeser gerada por inmeras gramticas distintas (ambguas eno-ambguas).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 72 / 295

  • Ambigidade

    Linguagem livre de contexto inerentemente ambgua

    H, no entanto, casos em que se pode provar, apesar de isso ser, emgeral, uma tarefa consideravelmente complexa, que determinadaslinguagens so inerentemente ambguas, indicando com isso quetoda e qualquer gramtica que gera a linguagem em questo deve sernecessariamente ambgua. Em casos como esse, o conceito deambigidade pode ser estendido tambm para caracterizar mais umatributo da linguagem.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 73 / 295

  • Ambigidade

    Exemplo

    Exemplo 4.4A linguagem {anbncmdm | n > 1,m > 1}{anbmcmdn | n > 1,m > 1}

    inerentemente ambgua. A demonstrao pode ser encontrada em Hopcroft79.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 74 / 295

  • Ambigidade

    Exemplo

    Exemplo 4.5A linguagem {aibjck | i = j ou j = k} inerentemente ambgua. A demonstrao

    pode ser encontrada em Aho72.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 75 / 295

  • Ambigidade

    rvores e derivaes cannicas

    Teorema 4.2 Seja G uma gramtica livre de contexto. Para todacadeia w L(G), o nmero de seqncias distintas de derivaesmais esquerda (e portanto mais direita) igual ao nmero dervores de derivao distintas que representam w.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 76 / 295

  • Ambigidade

    rvores e derivaes cannicas

    Prova:Pode ser encontrada em Hopcroft79. No difcil, no entanto, intuirque, para cada forma sentencial obtida atravs de derivaes mais esquerda, a substituio do no-terminal mais esquerda porprodues distintas, sejam elas quantas forem, d origem a umaquantidade idntica de rvores distintas, as quais so diferenciadaspelos ns que representam os filhos do n que representa esseno-terminal. De forma anloga, o raciocnio inverso tambm seaplica.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 77 / 295

  • Ambigidade

    rvores e derivaes cannicas

    Quando se consideram gramticas livres de contexto no-ambguas, aordem em que so feitas as substituies dos smbolos no-terminaisnas formas sentenciais irrelevante do ponto de vista das cadeiasque podem ser geradas e das respectivas rvores de derivao.Como mostra o Teorema 4.3, qualquer que seja a ordem desubstituio dos no-terminais escolhida na gerao de uma mesmacadeia, a rvore de derivao ser sempre a mesma.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 78 / 295

  • Ambigidade

    rvores e derivaes cannicas

    Teorema 4.3 Seja G uma gramtica livre de contexto no-ambgua.Para toda cadeia w L(G), toda e qualquer seqncia de derivaesque produz w representada atravs da mesma e nica rvore dederivao.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 79 / 295

  • Ambigidade

    rvores e derivaes cannicas

    Se G uma gramtica livre de contexto no-ambgua, ento, conformea definio, toda e qualquer cadeia w L(G) possui uma nicaseqncia de derivaes mais esquerda ou mais direita, mesmoque existam outras seqncias no-cannicas de derivao para essamesma cadeia. Conforme o Teorema 4.2, existe uma nica rvore dederivao para w. Logo, todas as derivaes de w em G sorepresentadas por uma mesma rvore de derivao.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 80 / 295

  • Ambigidade

    rvores e derivaes cannicas

    Conforme a definio, uma gramtica livre de contexto no-ambgua aquela para a qual cada cadeia pertencente linguagem gerada portal gramtica gerada por uma nica seqncia de derivaes mais esquerda e por uma nica seqncia de derivaes mais direita. OTeorema 4.3 estende esse resultado, e estabelece que taisseqncias de derivaes correspondem a uma mesma rvore dederivao.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 81 / 295

  • Ambigidade

    rvores e derivaes cannicas

    Em resumo: cada uma das cadeias pertencentes a uma linguagemgerada por uma gramtica livre de contexto no-ambgua possui umanica seqncia de derivaes mais esquerda, uma nica seqnciade derivaes mais direita e uma nica rvore de derivao.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 82 / 295

  • Ambigidade

    rvores e derivaes cannicas

    Esta importante propriedade das linguagens livres de contexto (eportanto tambm das linguagens regulares) permite que se adote umaordem arbitrria para a aplicao das regras gramaticais na derivaode uma sentena. Tecnologicamente, isso pode ser aproveitadoescolhendo-se uma ordem que seja econmica do ponto de vistaalgortmico.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 83 / 295

  • Ambigidade

    rvores e derivaes cannicas

    A existncia de uma nica seqncia cannica de derivaes (umamais esquerda e outra mais direita) para cada sentena de umalinguagem gerada por uma gramtica no-ambgua explorada nosalgoritmos de construo de reconhecedores sintticosdeterminsticos para linguagens livres de contexto, cuja operaoconsiste exatamente na busca sistemtica de tal seqncia (e,conseqentemente, da correspondente rvore de derivao), se essaseqncia existir, para cada cadeia de entrada que lhe sejasubmetida. Do ponto de vista tecnolgico, esse resultado permite abusca da soluo de implementao mais barata, conforme alinguagem considerada.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 84 / 295

  • Ambigidade

    Gramtica livre de contexto ambgua

    Por outro lado, o Teorema 4.2 permite estender o conceito degramtica livre de contexto ambgua, que passa a ser caracterizadode trs formas distintas, porm equivalentes entre si. Diz-se que umagramtica livre de contexto ambgua se for possvel identificar, nalinguagem por ela gerada, pelo menos uma cadeia que:

    I possa ser derivada por duas ou mais seqncias distintas dederivaes mais esquerda, ou

    I possa ser derivada por duas ou mais seqncias distintas dederivaes mais direita, ou

    I possa ser representada por duas ou mais rvores de derivaodistintas.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 85 / 295

  • Ambigidade

    Exemplo

    Exemplo 4.6Considere-se o fragmento de gramtica utilizado para ilustrar o problema daambigidade em comandos condicionais (Exemplo 4.2). De acordo com essagramtica, a forma sentencial:

    if then if then else

    pode ser derivada segundo duas seqncias distintas de derivaes mais esquerda.Como conseqncia, existem tambm duas rvores de derivao distintas quepossuem como fronteira essa mesma forma sentencial, conforme mostram as Figuras3 e 4.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 86 / 295

  • Ambigidade

    Exemplo

    if then

    if then

    else

    Figura 3: Ambigidade no comando IF: associao interna

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 87 / 295

  • Ambigidade

    Exemplo

    if then

    if then else

    Figura 4: Ambigidade no comando IF: associao externa

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 88 / 295

  • Simplificao de Gramticas Livres de Contexto

    Etapas

    Por uma questo de convenincia no estudo das gramticas livres decontexto, muitas vezes necessrio submet-las a simplificaes quevisam torn-las mais apropriadas para a demonstrao de teoremas,para a verificao de propriedades, ou simplesmente para facilitar asua anlise.Tais simplificaes consistem em manipulaes gramaticais que noafetam a linguagem definida pela gramtica original, e so de trstipos (os novos termos sero definidos mais adiante):

    1 Eliminao de smbolos inacessveis e inteis;2 Eliminao de produes em vazio;3 Eliminao de produes unitrias.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 89 / 295

  • Simplificao de Gramticas Livres de Contexto

    Smbolo inacessvel

    I Diz-se que um smbolo Y V terminal ou no-terminal inacessvel, se no for possvel derivar qualquer forma sentencialem que se registre alguma ocorrncia de Y. Caso contrrio, osmbolo dito acessvel. Formalmente, smbolos acessveis Yso aqueles para os quais existem derivaes da formaS Y , com , V. Smbolos inacessveis, portanto, soaqueles para os quais inexistem derivaes com taiscaractersticas.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 90 / 295

  • Simplificao de Gramticas Livres de Contexto

    Smbolo intil

    I Diz-se que um smbolo Y no-terminal intil, se no forpossvel derivar pelo menos uma cadeia formada exclusivamentepor terminais (ou a cadeia vazia) a partir de Y. Caso contrrio, osmbolo dito til. Formalmente, smbolos teis Y so aquelespara os quais existem derivaes da forma Y , com .Smbolos inteis, portanto, so aqueles para os quais inexistemderivaes com tais caractersticas. Cumpre notar que smbolosterminais so, por definio, sempre teis.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 91 / 295

  • Simplificao de Gramticas Livres de Contexto

    Smbolo acessvel e til

    Um smbolo Y que seja simultaneamente acessvel e til , portanto,aquele que satisfaz condio:

    S Y , com , V,

    Em outras palavras, um smbolo Y acessvel e til se e somente se:1 Y est presente em pelo menos uma forma sentencial derivada a

    partir da raiz da gramtica, e2 Y deriva pelo menos uma cadeia pertencente ao conjunto

    (condio verificada trivialmente pelos smbolos terminais).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 92 / 295

  • Simplificao de Gramticas Livres de Contexto

    Eliminao de smbolos inacessveis e inteis

    A transformao de uma gramtica em outra equivalente, isenta desmbolos inacessveis e inteis, pode ser feita em dois passos, atravsde dois algoritmos distintos: o primeiro algoritmo encarrega-se deeliminar da gramtica original os smbolos inteis; o segundoalgoritmo elimina todos os smbolos inacessveis.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 93 / 295

  • Simplificao de Gramticas Livres de Contexto

    Eliminao de smbolos inacessveis e inteis

    Teorema 5.1 Toda linguagem livre de contexto pode ser gerada poruma gramtica livre de contexto em que no h smbolos inacessveisou inteis.

    A demonstrao deste teorema pode ser realizada tomando-se comobase os dois algoritmos apresentados a seguir. O Algoritmo 5.1mostra como eliminar os no-terminais que no geram cadeias determinais, bem como as produes em que os mesmos comparecem,preservando em N apenas os smbolos do conjuntoN = {Y N | Y , com }.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 94 / 295

  • Simplificao de Gramticas Livres de Contexto

    Eliminao de smbolos inteis

    Algoritmo 5.1 Eliminao de smbolos inteis em gramticas livres decontexto.

    I Entrada: uma gramtica livre de contexto G = (V,,P,S), tal queL(G) 6= /0.

    I Sada: uma gramtica livre de contexto G = (V ,,P,S), tal queL(G) = L(G) e Y N se e apenas se L(Y) 6= /0.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 95 / 295

  • Simplificao de Gramticas Livres de Contexto

    Eliminao de smbolos inteis

    Mtodo:1 N0 /0;2 i 1;3 Ni Ni1{Y | Y P e (Ni1)};4 Se Ni 6= Ni1, ento:

    1 i i+ 1;2 Desviar para (3);

    Caso contrrio:1 N Ni;2 P{A X1X2 . . .Xn P | A,X1,X2, . . . ,Xn (Ni)}.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 96 / 295

  • Simplificao de Gramticas Livres de Contexto

    Eliminao de smbolos inacessveis

    Algoritmo 5.2 Eliminao de smbolos inacessveis em gramticas livres decontexto.

    I Entrada: uma gramtica livre de contexto G = (V,,P,S).I Sada: uma gramtica livre de contexto G = (V ,,P,S), tal que

    L(G) = L(G) e Y V se e apenas se S Y , com , V.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 97 / 295

  • Simplificao de Gramticas Livres de Contexto

    Eliminao de smbolos inacessveis

    Mtodo:1 V0{S};2 i 1;3 Vi Vi1{Xj V,1 6 j 6 n | A X1X2 . . .Xn P e A Vi1};4 Se Vi 6= Vi1, ento:

    1 i i+ 1;2 Desviar para (3);

    Caso contrrio:1 N ViN;2 Vi;3 P{A X1X2 . . .Xn P | A,X1,X2 . . .Xn Vi}.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 98 / 295

  • Simplificao de Gramticas Livres de Contexto

    Ordem de aplicao dos algoritmos

    Teorema 5.2 A obteno de uma gramtica livre de contexto G3,isenta de smbolos inacessveis ou inteis, a partir de uma gramticalivre de contexto G1 qualquer, pode ser feita pela aplicao dosAlgoritmos 5.1 e 5.2 uma nica vez cada, em qualquer seqncia.

    Seja G1 = (V1,1,P1,S1). Os smbolos do conjunto V1 podem ser,individualmente, classificados em uma das seguintes categorias:

    i) Acessvel e til;ii) Acessvel e intil;iii) Inacessvel e til;iv) Inacessvel e intil.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 99 / 295

  • Simplificao de Gramticas Livres de Contexto

    Ordem de aplicao dos algoritmos

    Alm disso, os Algoritmos 5.1 e 5.2 no criam novos smbolos,tampouco alteram as caractersticas de acessibilidade ou de utilidadedos smbolos da gramtica de entrada que foram preservados nagramtica de sada. Em funo dessas observaes, considerem-seas duas seguintes seqncias possveis para a aplicao dosAlgoritmos 5.1 e 5.2.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 100 / 295

  • Simplificao de Gramticas Livres de Contexto

    Ordem de aplicao dos algoritmos

    1. Inicialmente o Algoritmo 5.1, e depois o Algoritmo 5.2:A aplicao do Algoritmo 5.1 (eliminao de smbolos inteis) gramtica G1 resulta na gramtica G2 = (V2,2,P2,S2), em que ossmbolos de V2 so apenas dos tipos (i) e (iii). Em seguida, aaplicao do Algoritmo 5.2 (eliminao de smbolos inacessveis) gramtica G2 resulta na gramtica G3 = (V3,3,P3,S3), em queos smbolos de V3 so apenas do tipo (i).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 101 / 295

  • Simplificao de Gramticas Livres de Contexto

    Ordem de aplicao dos algoritmos

    2. Inicialmente o Algoritmo 5.2, e depois o Algoritmo 5.1:A aplicao do Algoritmo 5.2 (eliminao de smbolosinacessveis) gramtica G1 resulta na gramticaG2 = (V2,2,P2,S2), em que os smbolos de V2 so apenas dostipos (i) e (ii). Em seguida, a aplicao do Algoritmo 5.1(eliminao de smbolos inteis) gramtica G2 resulta nagramtica G3 = (V3,3,P3,S3), em que os smbolos de V3 soapenas do tipo (i).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 102 / 295

  • Simplificao de Gramticas Livres de Contexto

    Ordem de aplicao dos algoritmos

    Logo, a ordem de aplicao dos algoritmos de eliminao de smbolosinacessveis e inteis irrelevante, e a obteno de uma gramticalivre de contexto, isenta de tais smbolos, pode ser feita pela aplicaode cada um dos correspondentes algoritmos uma nica vez, emqualquer ordem.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 103 / 295

  • Simplificao de Gramticas Livres de Contexto

    Exemplo

    Exemplo 5.1Considere-se G = (V,,P,S), com:

    V = {S,A,B,C,a,b} = {a,b}P = {S A | B,A aB | bS | b,B AB | Ba,C AS | b}

    Aplicando-se o algoritmo de eliminao de no-terminais que no geram cadeias determinais, obtm-se:

    N0 = /0N1 = {A,C}N2 = {A,C,S}N3 = {A,C,S}

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 104 / 295

  • Simplificao de Gramticas Livres de Contexto

    ExemploContinuao

    Logo, G = {V ,,P,S}, com:

    V = {S,A,C,a,b}P = {S A,A bS | b,C AS | b}

    Note-se que o no-terminal B foi eliminado de N uma vez que no possvel derivarqualquer cadeia de terminais a partir dele. Aplicando-se a G o Algoritmo 5.2, para aeliminao de smbolos inacessveis, obtm-se:

    V0 = {S}V1 = {S,A}V2 = {S,A,b}V3 = {S,A,b}

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 105 / 295

  • Simplificao de Gramticas Livres de Contexto

    ExemploContinuao

    e G = {V ,,P,S}, com:

    V = {S,A,b} = {b}P = {S A,A bS | b}

    Observe-se a eliminao dos smbolos C e a de V , uma vez que eles nocomparecem em qualquer forma sentencial derivvel a partir de S. G corresponde,assim, a uma gramtica equivalente a G, isenta de smbolos inacessveis e inteis, eL(G) = L(G) = b+.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 106 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes em vazio

    Produes em vazio so produes da forma A , e a totaleliminao de produes desse tipo de uma gramtica G naturalmentes possvel se / L(G).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 107 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes em vazio

    Teorema 5.3 Toda linguagem livre de contexto que no contm acadeia vazia pode ser gerada por uma gramtica livre de contexto emque no h produes em vazio.

    O Algoritmo 5.3 mostra como transformar uma gramtica G em outraequivalente G, isenta de produes em vazio. Se L(G), ento seradmitida uma nica produo em vazio, cujo lado esquerdocorresponde raiz da gramtica, de modo que L(G) = L(G).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 108 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes em vazio

    Algoritmo 5.3 Eliminao de produes em vazio em gramticas livres decontexto.

    I Entrada: uma gramtica livre de contexto G = (V,,P,S).I Sada: uma gramtica livre de contexto G = (N,,P,S), tal que

    L(G) = L(G) ei) Se / L(G), ento no h produes em vazio em G, ouii) Se L(G), ento a nica produo em vazio em G S , onde S a

    raiz de G e S no aparece no lado direito de nenhuma produo.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 109 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes em vazio

    Mtodo:

    1. E0{A | A P};2. i 1;3. Ei Ei1{A | A X1X2 . . .Xn P e X1,X2 . . .Xn Ei1};4. Se Ei 6= Ei1, ento:

    1 i i+ 1;2 Desviar para (3);

    Caso contrrio:1 E Ei1;

    5. P /0;6. P{A P | 6= };

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 110 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes em vazio

    7. Considerem-se as produes de P no formato:A 0B11B22 . . .Bkk, com i (VE)+ e Bi EA verso final do conjunto P obtida acrescentando-se sua versoanterior o conjunto das produes obtidas pela substituio dossmbolos Bi, 0 6 i 6 k por , considerando-se todas as combinaespossveis, sem no entanto gerar a produo A .

    8. Se S E, ento:1 P P{S S | };2 N N {S};

    Caso contrrio:1 N N;2 S S.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 111 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes em vazio

    Este algoritmo implementa um mapeamento do conjunto P noconjunto P, em que as seguintes condies so obedecidas:

    1 Produes em vazio A P so eliminadas;2 As produes A P, = 12 . . .n, i V, em que contm

    smbolos no-terminais que eventualmente derivam , isto ,i , 1 6 i 6 n, so expandidas para contemplar todos ospossveis casos de eliminao desses no-terminais,compensando assim a eliminao das produes em vazio.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 112 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes em vazio

    Os passos (1), (2), (3) e (4) do algoritmo buscam identificar osubconjunto E dos elementos A de N, E N, tais que A , e emmuito se assemelham aos Algoritmos 5.1 e 5.2 anteriormenteapresentados. Os passos (5), (6) e (7) realizam o mapeamento acimadescrito, eliminando as produes em vazio e eventualmenteexpandindo as demais produes.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 113 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes em vazio

    Observe-se que o fato de cada produo de P ser considerada noformato genrico:

    A 0B11B22 . . .Bkk

    visa isolar exatamente os no-terminais Bi, tais que Bi . A seguirso geradas, a partir de cada produo deste tipo, 2k (no mximo)novas produes distintas, cada qual correspondente a uma particularcombinao de no-terminais Bi substitudos por .Por fim, note-se que se S E, isso indica que L(G). Assim, paraque L(G) = L(G), um novo smbolo no-terminal S e a produoS so introduzidos em G no passo (8).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 114 / 295

  • Simplificao de Gramticas Livres de Contexto

    Exemplo

    Exemplo 5.2Seja uma gramtica G = (V,,P,S), com:

    V = {S,A,B,C} = {a,b}P = {S ABC,A BB | ,B CC | a,C AA | b}

    Como se pode perceber, E = {A,C,B,S}. Em conseqncia, obtm-se o seguinteconjunto de produes P:

    {C AA | A | b,B CC | C | a,A BB | B,S ABC | A | B | C | AB | AC | BC}

    Pelo fato de S E, a produo S S | deve ainda ser incorporada a P, resultandoassim G = (V {S},,P,S).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 115 / 295

  • Simplificao de Gramticas Livres de Contexto

    Exemplo

    Exemplo 5.3Considere-se a gramtica G = (V,,P,S), com

    V = {S,B,C} = {a,b,c,d}P = {S aBC,B bB | ,C cCc | d | }

    Neste caso, E = {B,C}. Portanto, P se torna:

    {B bB | b,C cCc | cc | d,S aBC | aB | aC | a}

    Como / L(G), ento G = (V,,P,S).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 116 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes unitrias

    Produes unitrias so produes da forma A B, em que A e Bso no-terminais, e costumam ser descartadas das gramticas livresde contexto porque nada acrescentam s formas sentenciais s quaisso aplicadas, constituindo mera renomeao de smbolos (no caso,de A para B).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 117 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes unitrias

    Teorema 5.4 Toda linguagem livre de contexto pode ser gerada poruma gramtica livre de contexto isenta de produes unitrias.

    O Algoritmo 5.4 mostra como transformar gramticas livres decontexto arbitrrias em outras equivalentes sem produes unitrias.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 118 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes unitrias

    Algoritmo 5.4 Eliminao de produes unitrias em gramticas livres decontexto.

    I Entrada: uma gramtica livre de contexto G = (V,,P,S).I Sada: uma gramtica livre de contexto G = (V,,P,S), tal que

    L(G) = L(G) e G no contm produes unitrias.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 119 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes unitrias

    Mtodo:1 Para cada A N, constri-se NA tal que NA = {B N | A B} da

    seguinte forma:1 N0 {A};2 i 1;3 Ni Ni1{C | B C P e B Ni1};4 Se Ni 6= Ni1, ento:

    1 i i+1;2 Desviar para (1.c);

    Caso contrrio:1 NA Ni1;

    2 P{A P | / N};3 Para todo B NA, se B P, e / N, ento P P{A }.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 120 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes unitrias

    I O funcionamento deste algoritmo baseia-se inicialmente naidentificao e na associao de subconjuntos de N a cadano-terminal X da gramtica, sendo que cada elemento Y dessesubconjunto satisfaz condio X Y. Esses subconjuntos soconstrudos no passo (1) do algoritmo.

    I Observe-se que a condio X Y refere-se apenas a derivaesefetuadas exclusivamente atravs do emprego de produesunitrias. Em alguns casos, possvel que tal condio sejasatisfeita atravs do emprego de produes no-unitrias, isto ,X Y, | |> 1, como ilustrado no Exemplo 5.4.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 121 / 295

  • Simplificao de Gramticas Livres de Contexto

    Exemplo

    Exemplo 5.4Considere-se a gramtica G:

    G = ({S,X,Y,a},{a},P,S)P = {S XY,

    X a,Y }

    A derivao S XY X, ou simplesmente S X, feita sem o uso de regrasunitrias.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 122 / 295

  • Simplificao de Gramticas Livres de Contexto

    Produes unitrias

    Para evitar situaes como as do Exemplo 5.4, suficiente garantirque a gramtica em questo no possua regras em vazio, ou,alternativamente, desconsiderar derivaes que faam uso dasmesmas no clculo dos conjuntos NA (passo (1) do Algoritmo 5.4).O conjunto P construdo nos passos (2) e (3). Ele obtido pelaeliminao de todas as produes unitrias de P, preservando-se asdemais e criando novas produes do tipo X , onde Y NX eY P. Isso implica abreviar uma seqncia de derivaes,substituindo cada derivao que utilize produes unitrias peladerivao utilizando as novas produes que produz o efeitofinal pretendido.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 123 / 295

  • Simplificao de Gramticas Livres de Contexto

    Exemplo

    Exemplo 5.5Considere-se G = (V,,P,S), com o conjunto de regras P seguinte:

    {S A | B | C,A aaAa | B | ,B bBb | b | C,C cC | }

    Aplicando-se o Algoritmo 5.4, obtm-se:

    NS = {S,A,B,C}NA = {A,B,C}NB = {B,C}NC = {C}

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 124 / 295

  • Simplificao de Gramticas Livres de Contexto

    ExemploAssim, G = (V,,P,S), e P torna-se:

    {S aaAa | | bBb | b | cC,A aaAa | | bBb | b | cC,B bBb | b | cC | ,C cC | }

    A ttulo de ilustrao, considere-se a derivao da sentena aabba. Tomando-se comobase a gramtica G, a seqncia de derivaes desta sentena :

    S A aaAa aaBa aabBba aabCba aabba

    ao passo que, tomando-se como base a gramtica modificada G, a seqncia dederivao desta sentena se torna:

    S aaAa aabBba aabba

    (note-se como a eliminao de produes unitrias abrevia a derivao dasentena).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 125 / 295

  • Simplificao de Gramticas Livres de Contexto

    Deteco de ciclos

    Diz-se que uma gramtica livre de contexto isenta de produes emvazio acclica se e somente se no existir A N, tal que A A.Caso contrrio, diz-se que a gramtica cclica. O Algoritmo 5.4 podeser facilmente adaptado para detectar ciclos em gramticas livres decontexto isentas de produes em vazio, conforme apresentado noAlgoritmo 5.5.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 126 / 295

  • Simplificao de Gramticas Livres de Contexto

    Deteco de ciclos

    Algoritmo 5.5 Deteco de ciclos em gramticas livres de contexto isentasde produes em vazio.

    I Entrada: uma gramtica livre de contexto isenta de produes em vazioG = (V,,P,S).

    I Sada: SIM, se G for cclica. NO, se G for acclica.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 127 / 295

  • Simplificao de Gramticas Livres de Contexto

    Deteco de ciclos

    Mtodo:1 Para cada A N, constri-se NA tal que NA = {B N | A B} da

    seguinte forma:1 N0 {B | A B P e B 6= A};2 i 1;3 Ni Ni1{C | B C P e B Ni1};4 Se Ni 6= Ni1, ento:

    1 i i+1;2 Desviar para (1.c);

    Caso contrrio:1 NA Ni1;

    2 Se A N, A / NA, ento NO; caso contrrio, SIM.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 128 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Conceito

    I Uma gramtica dita normalizada em relao a um certo padroquando todas as suas produes seguem as restries impostaspelo padro em questo;

    I comum designar tais padres como formas normais;I Nesta seo sero definidas duas das formas normais mais

    importantes para as gramticas livres de contexto: a FormaNormal de Chomsky e a Forma Normal de Greibach;

    I Mostrar-se- que toda e qualquer gramtica do tipo 2corresponde a gramticas equivalentes, expressas em ambas asformas normais.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 129 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Forma Normal de Chomsky

    Diz-se que uma gramtica G = (V,,P,S) do tipo 2 obedece FormaNormal de Chomsky se todas as produes p P forem de uma dasduas formas seguintes:

    1 A BC, ou2 A a

    com A, B, C N e a .Se L(G), ento admite-se S como nica produo em que comparece do lado direito.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 130 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Forma Normal de Chomsky

    Teorema 6.1 Toda linguagem livre de contexto L pode ser gerada poruma gramtica livre de contexto na Forma Normal de Chomsky.

    Seja G uma gramtica livre de contexto qualquer que gera L. Semperda de generalidade, considere-se que G no apresenta produesunitrias, smbolos inteis e nem produes em vazio exceto S ,se L(G). possvel demonstrar formalmente (ver Hopcroft79) queo mapeamento de G em G, a gramtica equivalente na Forma Normalde Chomsky, pode ser efetuado atravs do Algoritmo 6.1.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 131 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Forma Normal de Chomsky

    Algoritmo 6.1 Obteno de uma gramtica livre de contexto na FormaNormal de Chomsky.

    I Entrada: uma gramtica livre de contexto G = (V,,P,S) isenta deprodues unitrias, smbolos inteis e produes em vazio.

    I Sada: uma gramtica livre de contexto G = (V ,,P,S), na FormaNormal de Chomsky, tal que L(G) = L(G).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 132 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Forma Normal de Chomsky

    Mtodo:1. P /0;2. N N;3. Se A BC P, com A,B,C N, ento A BC P;4. Se A P, com A N, , ento A P;5. Se S P, ento S P;6. Para cada produo p P da forma:

    A X1X2, . . . ,Xn, com n > 2se Xi , ento criam-se novos no-terminais Yi e produes Yi Xisubstituindo-se as ocorrncias de Xi por Yi em p. Acrescentam-se osnovos no-terminais Yi a N e as novas produes a P.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 133 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Forma Normal de Chomsky

    7. Para cada produo da forma:A X1X2, . . . ,Xn, com n > 2 e Xi N, 1 6 i 6 ngerada no passo (6), criar um novo conjunto de no-terminais Zi e deprodues da forma:

    {A X1Z1,Z1 X2Z2,

    . . .

    Zn2 Xn1Xn}

    acrescentando-os, respectivamente, aos conjuntos N e P.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 134 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Exemplo

    Exemplo 6.1Considere-se a gramtica G = (V,,P,S) com N = {E,T,F} e o conjunto de

    produes P apresentado abaixo:

    {E E + T | T,T T F | F,F (E) | a}

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 135 / 295

  • Formas Normais para Gramticas Livres de Contexto

    ExemploDa aplicao do algoritmo acima resulta G = (V ,,P,S), com:

    N = {E,T,F,X0,X1,X2,X3,W0,W1,W2}P = {E EW0|TW1|X2W2|a,

    W0 X0T,W1 X1F,W2 EX3,T TW1|X2W2|a,F X2W2|a,X0+,X1,X2 (,X3)}

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 136 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Forma Normal de Greibach

    Diz-se que uma gramtica livre de contexto G = (V,,P,S) obedece Forma Normal de Greibach se todas as suas produes p P foremda forma:

    A , , N

    Se L(G), ento admite-se S como nica produo em que comparece do lado direito. Como pr-requisito antes deapresentarmos o teorema que mostra como converter gramticaslivres de contexto quaisquer em equivalentes na Forma Normal deGreibach, ser necessrio apresentar um algoritmo que permitaeliminar recurses esquerda em gramticas livres de contextoquaisquer.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 137 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Forma Normal de Greibach

    Eliminar recurses esquerda de uma gramtica livre de contextoG = (V,,P,S) significa obter G = (V ,,P,S), de modo queL(G) = L(G) e nenhum A N seja recursivo esquerda. A eliminaode recurses esquerda em gramticas livres de contexto pode serfeita atravs de um algoritmo cuja idia bsica consiste emtransformar G, com no-terminais ordenados arbitrariamente, em G,de modo que Xi Xj pertence a P se e apenas se j > i.Sem perda de generalidade, admite-se que a gramtica G de entradaseja isenta de produes unitrias, smbolos inteis e produes emvazio.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 138 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Forma Normal de Greibach

    Teorema 6.2 Toda linguagem livre de contexto L pode ser gerada poruma gramtica livre de contexto na Forma Normal de Greibach.

    Pode ser desenvolvida a partir do Algoritmo 6.2, que permite aconverso de uma gramtica livre de contexto qualquer em outraequivalente na Forma Normal de Greibach.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 139 / 295

  • Formas Normais para Gramticas Livres de Contexto

    Forma Normal de Greibach

    Algoritmo 6.2 Obteno de uma gramtica livre de contexto na FormaNormal de Greibach.

    I Entrada: uma gramtica livre de contexto G = (V,,P,S) isenta deprodues unitrias, smbolos inacessveis, smbolos inteis, produesem vazio e recurses esquerda, tal que L = L(G).

    I Sada: uma gramtica livre de contexto G = (V ,,P,S) na FormaNormal de Greibach, tal que L(G) = L(G).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 140 / 295

  • Autmatos de Pilha

    Conceito

    I Os autmatos de pilha constituem a segunda instncia, em umaescala de complexidade crescente, do modelo genrico dereconhecedor introduzido anteriormente, prestando-se aoreconhecimento de linguagens livres de contexto;

    I Diferentemente dos autmatos finitos, que no se utilizam damemria auxiliar prevista no modelo genrico, os autmatos depilha tm o seu poder de reconhecimento estendido, quandocomparado ao dos autmatos finitos, justamente peladisponibilidade e pela utilizao de uma memria auxiliarorganizada na forma de uma pilha.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 141 / 295

  • Autmatos de Pilha

    Pilha

    A pilha de um autmato de pilha pode ser entendida como umaestrutura de dados, de capacidade ilimitada, na qual a mquina deestados capaz de armazenar, consultar e remover smbolos de umalfabeto prprio, denominado alfabeto de pilha, segundo aconveno usual para estruturas deste tipo (LIFO last-in-first-out).Quanto aos seus demais componentes e caractersticas, o autmatode pilha se assemelha ao autmato finito anteriormente estudado.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 142 / 295

  • Autmatos de Pilha

    DefinioFormalmente, um autmato de pilha pode ser definido como umastupla M:

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

    Q um conjunto finito de estados; um alfabeto (finito e no-vazio) de entrada; um alfabeto (finito e no-vazio) de pilha; uma funo de transio Q ({}) 2Q ;

    q0 o estado inicial de M, q0 Q;Z0 o smbolo inicial da pilha, Z0 ;F o conjunto de estados finais de M, F Q.

    Dos sete elementos que compem este sistema formal, apenas trsmerecem explicao adicional , e Z0 , uma vez que os demaisesto em correspondncia direta com o que j foi estudado para ocaso dos autmatos finitos.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 143 / 295

  • Autmatos de Pilha

    Smbolo inicial da pilha

    Note-se, inicialmente, a presena de um alfabeto de pilha e de umsmbolo inicial de pilha Z0. O alfabeto de pilha especifica os smbolosque podem ser armazenados na pilha. Por conveno, um dessessmbolos, denotado Z0, representa o contedo inicial da pilha toda vezque o autmato de pilha principia o reconhecimento de uma novasentena. Ao longo de sua operao, elementos de soacrescentados e/ou removidos da pilha, e seu contedo total pode serinterpretado, em um dado instante, como sendo um elemento de .Por conveno, cadeias de que representam o contedo da pilha emum determinado instante so interpretadas considerando-se ossmbolos mais esquerda da cadeia no topo da pilha, e os smbolosmais direita da cadeia no fundo da pilha.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 144 / 295

  • Autmatos de Pilha

    Funo de transio

    Observe-se que, a partir do formato geral apresentado acima para afuno de transio em autmatos de pilha no-determinsticos ecom transies em vazio, possvel extrair os seguintes casosparticulares, equivalentes aos estudados do Captulo 3, para osautmatos finitos:

    I Autmato de pilha determinstico sem transies em vazio: : Q Q

    I Autmato de pilha determinstico com transies em vazio: : Q ({}) Q

    I Autmato de pilha no-determinstico sem transies em vazio:Q 2Q

    I Autmato de pilha no-determinstico com transies em vazio:Q ({}) 2Q

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 145 / 295

  • Autmatos de Pilha

    Exemplo

    Exemplo 7.1Considere-se = {1,2,3,4}. A cadeia 2144, por exemplo, representa ocontedo da pilha conforme ilustrado na Figura 5. Note-se que 2 se encontra no topoda pilha e que 4 se encontra no fundo da mesma:

    Figura 5: Pilha com ponteiro de topo

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 146 / 295

  • Autmatos de Pilha

    Stack pushdown

    Os dispositivos que fazem uso de pilha costumam definir a forma deoperao da mesma como uma das seguintes possibilidades:

    I Pilha Stack: alm das operaes de empilhamento edesempilhamento de elementos no topo da pilha (push e pop),permite que os demais elementos da mesma sejam endereadosdiretamente, somente para consulta;

    I Pilha Pushdown: permite o acesso apenas ao elementoarmazenado no topo da pilha, atravs das operaes deempilhamento e desempilhamento (push e pop). No permiteo endereamento dos demais elementos da pilha.

    A definio de autmato de pilha neste texto considera que a suamemria auxiliar seja uma pilha pushdown.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 147 / 295

  • Autmatos de Pilha

    Configurao e configurao inicial

    A configurao de um autmato de pilha definida pelo seu estadocorrente, pela parte da cadeia de entrada ainda no analisada e pelocontedo da pilha. A configurao inicial de um autmato de pilha aquela em que o autmato se encontra no estado inicial q0, o cursorse encontra posicionado sob a clula mais esquerda na fita deentrada e o contedo da pilha Z0. Algebricamente, a configurao deum autmato de pilha pode ser representada como uma tripla(q, ,) Q.A configurao inicial para o reconhecimento de uma cadeia w representada como (q0,w,Z0).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 148 / 295

  • Autmatos de Pilha

    Movimentao

    I As possibilidades de movimentao de um autmato de pilha emuma dada configurao so determinadas a partir de trsinformaes: o seu estado corrente, o prximo smbolo presentena cadeia de entrada e o smbolo armazenado no topo da pilha;

    I Observe-se, pela definio da funo , a possibilidade demovimentaes em vazio, sem consumo de smbolos da fita deentrada, e tambm a possibilidade de serem especificadastransies no-determinsticas;

    I Note-se tambm a obrigatoriedade, imposta por essa formulao,de se consultar o smbolo presente no topo da pilha em toda equalquer transio efetuada pelo autmato.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 149 / 295

  • Autmatos de Pilha

    Movimentao

    I Aps a aplicao de uma transio, o cursor de leitura sofre umdeslocamento de uma posio para a direita, e o smbolopresente no topo da pilha removido, sendo substitudo pelacadeia de smbolos especificada no lado direito da transio;

    I No caso de transies em vazio, em que no h consulta desmbolo na fita de entrada, a posio do cursor permaneceinalterada aps a sua aplicao.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 150 / 295

  • Autmatos de Pilha

    Movimentao

    I Desejando-se efetuar alguma transio de forma independentedo contedo do topo da pilha, torna-se necessrio especificarpara cada elemento do alfabeto de pilha uma transio que efetueo mesmo tratamento do smbolo de entrada, removendo ereinserindo o mesmo smbolo da pilha, simulando assim umatransio independente do contedo da pilha.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 151 / 295

  • Autmatos de Pilha

    Autmato determinstico

    Para cada tripla (q, ,) pertencente ao domnio da funo , oelemento (q, ,) pode conter zero, um ou mais elementos de Q.Considere-se inicialmente o caso em que 6= . Havendo zeroelementos em (q, ,), isso indica que no h possibilidade demovimentao a partir da configurao considerada. Havendo umnico elemento, isso significa que h apenas uma possibilidade demovimentao e, portanto, a transio determinstica. Quando todasas transies de um autmato de pilha so determinsticas, diz-se queo mesmo determinstico.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 152 / 295

  • Autmatos de Pilha

    Autmato no-determinstico

    Nos casos em que h mais de um elemento em (q, ,), issosignifica que h mais de uma opo de movimentao a partir destaconfigurao, e ento a transio dita no-determinstica. Havendopelo menos uma transio no-determinstica, diz-se que o autmatode pilha no-determinstico.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 153 / 295

  • Autmatos de Pilha

    Autmato no-determinstico

    Autmatos de pilha no-determinsticos e com transies em vazioapresentam um comportamento dinmico determinstico quando asduas seguintes condies forem simultaneamente verificadas:

    1 q Q, , se |( ,q, ,)| > 1, ento | (q, ,)|= 0, ;2 q Q, , {}, | (q, ,))|6 1.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 154 / 295

  • Autmatos de Pilha

    Determinismo no-determinismo

    I Diferentemente do que foi visto para o caso dos autmatos finitos,no que se refere equivalncia dos modelos determinstico eno-determinstico quanto classe de linguagens que socapazes de reconhecer, os autmatos de pilha no apresentamcorrespondente equivalncia;

    I Conforme ser visto mais adiante, os autmatos de pilhadeterminsticos so capazes de reconhecer apenas umsubconjunto das linguagens livres de contexto;

    I Por esse motivo, exceto por ressalvas em sentido contrrio, osautmatos de pilha mencionados daqui em diante serono-determinsticos.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 155 / 295

  • Autmatos de Pilha

    Movimentao

    A movimentao de um autmato de pilha de uma configurao paraa configurao seguinte denotada pelo smbolo `, que representaa relao:

    `: Q Q

    Estando o autmato de pilha em uma configurao (qi, ,), comqi Q, , , e , sua movimentao a partir dessaconfigurao para a seguinte, como decorrncia da aplicao de umatransio (qi, ,) = (qj,), com , representada por:

    (qi, ,) ` (qj, ,)

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 156 / 295

  • Autmatos de Pilha

    Movimentao

    A aplicao de transies em vazio, em que no h consumo desmbolo, representada de maneira similar atravs de:

    (qi, ,) ` (qj, ,)Da mesma forma que no caso dos autmatos finitos, a aplicao dezero ou mais transies entre duas configuraes quaisquer representada atravs do smbolo `, e a aplicao de no mnimo umatransio, por intermdio do smbolo `+.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 157 / 295

  • Autmatos de Pilha

    Configurao final

    A configurao final de um autmato de pilha costuma sercaracterizada de duas maneiras distintas, porm equivalentes. Naprimeira delas, exige-se o esgotamento da cadeia de entrada etambm que o autmato atinja um estado final. Nesta caracterizao,o contedo final da pilha irrelevante. Na segunda caracterizao,exige-se o esgotamento da cadeia de entrada e tambm que a pilhatenha sido completamente esvaziada, no importando que o estadoatingido seja final ou no-final.Dependendo do tipo de definio adotada para caracterizar aconfigurao final de um autmato de pilha, possvel definir, tambmde duas maneiras distintas, a linguagem aceita pelo dispositivo.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 158 / 295

  • Autmatos de Pilha

    Critrio de aceitao estado final

    A linguagem aceita por um autmato de pilha M, com base no critriode estado final, denotada L(M), definida como:

    L(M) = {w | (q0,w,Z0) ` (q, ,),q F, }

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 159 / 295

  • Autmatos de Pilha

    Critrio de aceitao pilha vazia

    Analogamente, a linguagem aceita por um autmato de pilha M, combase no critrio de pilha vazia, denotada V(M), definida como:

    V(M) = {w | (q0,w,Z0) ` (q, ,),q Q}

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 160 / 295

  • Autmatos de Pilha

    Notao

    Com o intuito de facilitar a leitura do texto no restante deste captulo,as transies de um autmato de pilha sero denotadas como:

    (qi, ,X) (qj,)

    indicando, com isso, o par ordenado ((qi, ,X),(qj,)) pertencente funo , ou, simplesmente, (qi, ,X) = (qj,).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 161 / 295

  • Autmatos de Pilha

    Exemplo

    Exemplo 7.2Seja M1 o autmato de pilha determinstico abaixo discriminado, cujo critrio deaceitao de sentenas baseado no esvaziamento da pilha.

    Q = {q0,q1} = {a,b,c} = {Z0,C} = {(q0,a,Z0) {(q0,CCZ0)},

    (q0,a,C) {(q0,CCC)},(q0,b,Z0) {(q1,Z0)},(q0,b,C) {(q1,C)},(q1,c,C) {(q1,)},(q1,,Z0) {(q1,)}}

    F = /0

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 162 / 295

  • Autmatos de Pilha

    ExemploDeve-se notar, em primeiro lugar, que o determinismo deste autmato decorre do fatode que a funo exibe no mximo um elemento para cada combinao possvel deestado, smbolo de entrada e smbolo no topo da pilha, e tambm porque inexistemtransies em vazio que se refiram a pares de estado e smbolo no topo da pilhaconsiderados nas transies no-vazias: note-se que a nica transio em vazio desteautmato ocorre no estado q1, com um smbolo do alfabeto de pilha (Z0) diferente doutilizado na transio no-vazia desse mesmo estado (C).A linguagem definida por M1 :

    V1(M1) = {w | (q0,w,Z0) ` (q,,),q Q}

    Como conseqncia, o conjunto de sentenas capazes de conduzir este autmato aconfiguraes finais, com base no critrio de pilha vazia, e portanto a linguagem porele definida, o seguinte:

    V1(M1) = {aibc2i | i > 0}

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 163 / 295

  • Autmatos de Pilha

    Exemplo

    Considerem-se algumas sentenas desta linguagem e a correspondente seqncia demovimentos executada pelo autmato durante o seu reconhecimento:

    1 Sentena: bMovimentos: (q0,b,Z0) ` (q1,,Z0) ` (q1,,)

    2 Sentena: abccMovimentos: (q0,abcc,Z0) ` (q0,bcc,CCZ0) ` (q1,cc,CCZ0) ` (q1,c,CZ0) `(q1,,Z0) ` (q1,,)

    3 Sentena: aabccccMovimentos: (q0,aabcccc,Z0) ` (q0,abcccc,CCZ0) ` (q0, bcccc, CCCCZ0) `(q1, cccc, CCCCZ0) ` (q1,ccc,CCCZ0) ` (q1,cc,CCZ0) `(q1,c,CZ0) ` (q1,,Z0) ` (q1,,)

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 164 / 295

  • Autmatos de Pilha

    Exemplo

    Tome-se agora como exemplo duas sentenas que no pertencem linguagemdefinida por este autmato, e as correspondentes seqncias de configuraes:

    1 Sentena: abcccMovimentos:(q0,abccc,Z0) ` (q0,bccc,CCZ0) ` (q1,ccc,CCZ0) ` (q1,cc,CZ0) `(q1,c,Z0)

    2 Sentena: aabcccMovimentos: (q0,aabccc,Z0) ` (q0,abccc,CCZ0) ` (q0, bccc, CCCCZ0) `(q1, ccc, CCCCZ0) ` (q1,cc,CCCZ0) ` (q1,c,CCZ0) ` (q1,,CZ0)

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 165 / 295

  • Autmatos de Pilha

    Diagramas de estado

    Convm, neste ponto, introduzir uma extenso na notao dosDiagramas de Estado estudados para o caso dos autmatos finitos,com o intuito de permitir a representao grfica tambm dosautmatos de pilha. Diferentemente dos Diagramas de Estadodefinidos para os autmatos finitos, os arcos entre dois estados p e qso rotulados com cadeias da forma:

    ( ,Z)/ , com ,Z e

    para cada produo (p, ,Z) = (q,).

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 166 / 295

  • Autmatos de Pilha

    Exemplo

    Exemplo 7.3O autmato M2, ilustrado na Figura 6, com critrio de aceitao baseado no

    esvaziamento da pilha, reconhece a linguagem:

    V2(M2) = {a2ibci | i > 0}

    q0 q1 q2 q3(a,Z0)/X

    (a,X)/X

    (a,X)/XX

    (b,X)/X

    (c,X)/(b,Z0)/

    Figura 6: Autmato de pilha do Exemplo 7.3

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 167 / 295

  • Autmatos de Pilha

    ExemploExemplo 7.4Considere-se o autmato de pilha no-determinstico M3 a seguir apresentado, cujo

    critrio de aceitao de sentenas baseado em estado final.

    Q = {q0,q1,q2,q3,q4} = {a,c} = {Z0,C} = {(q0,a,Z0) {(q1,CCZ0),(q2,CZ0)},

    (q1,a,C){(q1,CCC)},(q1,c,C) {(q3,)},(q2,a,C){(q2,CC)},(q2,c,C) {(q3,)},(q3,c,C) {(q3,)},(q3,,Z0){(q4,Z0)}}

    F = {q4}

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 168 / 295

  • Autmatos de Pilha

    Exemplo

    q0

    q1

    q2

    q3 q4

    (a,C)/CCC

    (a,C)/CC

    (a,Z0)/CCZ0

    (a,Z0)/CZ0

    (c,C)/ (,Z0)/Z0

    (c,C)/ (c,C)/

    Figura 7: Autmato de pilha do Exemplo 7.4

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 169 / 295

  • Autmatos de Pilha

    Exemplo

    A operao deste autmato exemplificada a seguir atravs do reconhecimento dasseguintes sentenas:

    1 Sentena: aaccMovimentos: (q0,aacc,Z0) ` (q2,acc,CZ0) ` (q2,cc,CCZ0) ` (q3,c,CZ0) `(q3,,Z0) ` (q4,,Z0)

    2 Sentena: aaccccMovimentos: (q0,aacccc,Z0) ` (q1,acccc,CCZ0) ` (q1, cccc, CCCCZ0) ` (q3,ccc, CCCZ0) ` (q3,cc,CCZ0) ` (q3,c,CZ0) ` (q3,,Z0) ` (q4,,Z0)

    Note-se que o reconhecimento, em ambos os casos, pde ser bem-sucedido j naprimeira seqncia de movimentos, uma vez que a escolha da transio a ser aplicadana configurao inicial foi corretamente adivinhada nas duas situaes.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 170 / 295

  • Autmatos de Pilha

    Exemplo

    No entanto, a escolha da transio a ser aplicada na configurao inicial do primeirocaso poderia ter sido diferente da apresentada, e neste caso ocorreria o seguinte:

    1 Sentena: aaccMovimentos: (q0,aacc,Z0) ` (q1,acc,CCZ0) ` (q1,cc,CCCCZ0) `(q3,c,CCCZ0) ` (q3,,CCZ0)

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 171 / 295

  • Autmatos de Pilha

    Exemplo

    Figura 8: Aceitao em autmato de pilha no-determinstico do Exemplo7.4

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 172 / 295

  • Autmatos de Pilha

    ExemploConsidere-se, agora, o caso de uma cadeia aac que no pertena linguagemdefinida por este autmato. Conforme ilustrado na Figura 9, a rejeio desta cadeiaocorre apenas aps o fracasso do reconhecimento em todas as seqncias possveisde movimentao (duas, para este autmato):

    Figura 9: Rejeio em autmato de pilha no-determinstico do Exemplo 7.4

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 173 / 295

  • Autmatos de Pilha

    Exerccios

    Obter autmatos de pilha (determinsticos ou no-determinsticos) queaceitem cada uma das seguintes linguagens:

    1 {aibi|i > 0}, com aceitao por estado final;2 {aibi|i > 0}, com aceitao por pilha vazia;3 {aibi|i > 1}, com aceitao por estado final;4 {aibi|i > 1}, com aceitao por pilha vazia;5 {ab}, com aceitao por estado final;6 {ab}, com aceitao por pilha vazia;7 {aibci|i > 0}, com aceitao por estado final;8 {aibci|i > 0}, com aceitao por pilha vazia;9 {aibci|i > 1}, com aceitao por estado final;10 {aibci|i > 1}, com aceitao por pilha vazia.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 174 / 295

  • Autmatos de Pilha

    Transies em vazio

    Para finalizar, cumpre notar que, de acordo com a definio, osautmatos de pilha so capazes de efetuar movimentosindependentemente da existncia de smbolos na fita de entrada,atravs das chamadas transies em vazio, ao passo que oesvaziamento da pilha necessariamente impede qualquerpossibilidade de movimentao futura. Ambos estes fatos seroutilizados em seguida para demonstrar a equivalncia dos critrios deaceitao por estado final e por pilha vazia.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 175 / 295

  • Autmatos de Pilha

    Equivalncia dos critrios de aceitao

    A classe de linguagens aceita por autmatos de pilhano-determinsticos com critrio de aceitao baseado em estado final idntica classe de linguagens aceita por autmatos de pilhano-determinsticos com critrio de aceitao baseado em pilha vazia.A importncia desse resultado deve-se liberdade de escolha que eleoferece quando se pretende demonstrar algum teorema relativo aosautmatos de pilha e s linguagens livres de contexto, podendo-seoptar indistintamente entre um e outro critrio de aceitao, semprejuzo para a sua generalizao.

    Marcus Ramos (UNIVASF) LFA 2010-1 4 de junho de 2012 176 / 295

  • Autmatos de Pilha

    Estado final pilha vazia

    Teorema 7.1 Seja M um autmato de pilha no-determinstico comcritrio de aceitao baseado em estado final. Ento, possveldefinir um autmato de pilha no-determinstico M com critrio deaceitao baseado em pilha vazia, de modo que L(M) = V(M)