11.07.2015 Views

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

Teor´ıa de Autómatas y Lenguajes Formales

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 5ACEPTACIÓN Y GENERACIÓNDE LENGUAJES LIBRES DECONTEXTOLos lenguajes libres <strong>de</strong> contexto, como los conjuntos regulares, tienen gran importancia práctica, especialmentepara <strong>de</strong>finir lenguajes <strong>de</strong> programación, para formalizar la i<strong>de</strong>a <strong>de</strong> “parsing”, simplificar la traducción<strong>de</strong> lenguajes <strong>de</strong> programación, etc.En este capítulo estudiaremos los lenguajes libres <strong>de</strong> contexto, concentrándonos fundamentalmente ensus mecanismos <strong>de</strong> aceptación y generación.Las primeras dos secciones abordan los mecanismos <strong>de</strong> aceptación. Tal como las expresiones regularestienen un autómata equivalente, el autómata finito, las gramáticas libres <strong>de</strong> contexto, también tienen unamáquina como contraparte: el autómata apilador (pushdown). La equivalencia es, en este caso, un pocomenos satisfactoria, ya que el autómata apilador es un dispositivo no <strong>de</strong>terminístico en que la versión<strong>de</strong>terminística sólo acepta un subconjunto <strong>de</strong> los lenguajes libres <strong>de</strong> contexto. Por fortuna, este subconjuntoincluye la sintaxis <strong>de</strong> la mayoría <strong>de</strong> los lenguajes <strong>de</strong> programación.En las restantes secciones se estudian las gramáticas libres <strong>de</strong> contexto, como mecanismos <strong>de</strong> generación<strong>de</strong> lenguajes libres <strong>de</strong> contexto.5.1 Autómatas ApiladoresEl autómata apilador es básicamente un autómata finito con control no sólo sobre la cinta con el input, sinotambién sobre un stack con capacidad infinita.Estos dispositivos pue<strong>de</strong>n utilizarse para reconocer lenguajes no regulares. El conjunto L = {wcw r /w ∈{0, 1} ∗ } es un lenguaje libre <strong>de</strong> contexto generado por la gramáticaS → 0S0|1S1|cNo es difícil probar que L no pue<strong>de</strong> ser regular, es <strong>de</strong>cir no pue<strong>de</strong> ser aceptado por ningún autómatafinito. Para aceptar L se hará uso <strong>de</strong> un control finito con dos estados, q 1 y q 2 , y <strong>de</strong> un stack en que sepondrán bolitas (símbolos) azules, ver<strong>de</strong>s y rojas. El dispositivo tendrá las siguientes reglas <strong>de</strong> operación:1. La máquina comienza con una bolita roja puesta en el stack y con el control finito en estado q 1 .2. Si el input tiene un símbolo 0 y el autómata está en estado q 1 , se pone una bolita azul en el stack. Siel símbolo <strong>de</strong> entrada es un 1 y está en estado q 1 , se pone una bolita ver<strong>de</strong>. En ambos casos el controlpermanece en estado q 1 .75

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!