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.

0.5. CLASES DE LENGUAJES 7uso <strong>de</strong> la palabra lenguaje sea, a primera vista, <strong>de</strong>masiado restrictiva. Las i<strong>de</strong>as enunciadas para lenguajestienen también otras <strong>de</strong>rivaciones <strong>de</strong> importancia.Por ejemplo, <strong>de</strong> acuerdo con la <strong>de</strong>finición <strong>de</strong> lenguaje en uso, es posible <strong>de</strong>finir el siguiente lenguaje:L + = {X#Y #Z/ X, Y y Z son enteros no negativos tales que Z = X + Y }Nótese que L + es un conjunto infinito <strong>de</strong> sentencias. Cada una <strong>de</strong> ellas tiene longitud finita y estáconstruida por elementos tomados <strong>de</strong>l conjunto finito <strong>de</strong> símbolos: { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, # }, es <strong>de</strong>cir,L + es un lenguaje. En realidad, el lenguaje L + expresa la función suma entre números enteros no negativos.Esta misma i<strong>de</strong>a pue<strong>de</strong> exten<strong>de</strong>rse a cualquier función binaria. Para cada función binaria, f, es posible<strong>de</strong>finir el lenguaje:L f = {X#Y #Z/ X, Y y Z son enteros no negativos tales que Z = f(x, y)}Y, en general, también es posible exten<strong>de</strong>r esta i<strong>de</strong>a a funciones <strong>de</strong> uno o más argumentos, con tan solousar el número apropiado <strong>de</strong> símbolos “#” como separadores. Más aún, también es posible exten<strong>de</strong>rla adominios que no sean el <strong>de</strong> los números enteros no negativos.Por sobre todo, la <strong>de</strong>finición <strong>de</strong> los lenguajes L f y la construcción <strong>de</strong> mecanismos <strong>de</strong> aceptación para ellos,es una forma <strong>de</strong> estudiar algoritmos para estudiar la función f. En particular, si se tiene un dispositivo queacepta todas y sólo las sentencias <strong>de</strong> un lenguaje L f , ese dispositivo <strong>de</strong>be incluir la noción <strong>de</strong> un algoritmopara calcular la función f.0.5 Clases <strong>de</strong> <strong>Lenguajes</strong>Los lenguajes se pue<strong>de</strong>n clasificar según el tipo <strong>de</strong> dispositivos <strong>de</strong> aceptación y generación que existen paraellos. Estas clases correspon<strong>de</strong>n a lenguajes <strong>de</strong> distinta complejidad que, a su vez, representan problemas<strong>de</strong> complejidad diferente. En particular se estudiarán las siguientes tres clases, las <strong>de</strong> la clásica jerarquía <strong>de</strong>Chomsky, a<strong>de</strong>más <strong>de</strong> algunas subclases <strong>de</strong> ellas:• <strong>Lenguajes</strong> Regulares.• <strong>Lenguajes</strong> Libres <strong>de</strong> Contexto.• <strong>Lenguajes</strong> Enumerables Recursivamente.Para cada clase hay un tipo <strong>de</strong> dispositivo <strong>de</strong> aceptación para todas y sólo las sentencias <strong>de</strong> esos lenguajes:autómatas <strong>de</strong> distinto grado <strong>de</strong> complejidad. También existe, para cada clase, un tipo <strong>de</strong> gramática quegenera todas y sólo las sentencias <strong>de</strong> esos lenguajes.Los dispositivos <strong>de</strong> generación <strong>de</strong> los lenguajes regulares y <strong>de</strong> los lenguajes libres <strong>de</strong> contexto, son ampliamenteusados como mo<strong>de</strong>los para expresar la sintaxis <strong>de</strong> los lenguajes <strong>de</strong> programación. Sus mecanismos<strong>de</strong> aceptación forman la base para el diseño <strong>de</strong> los analizadores léxicos y sintácticos <strong>de</strong> los compiladores. Enla actualidad, la aplicación <strong>de</strong> estas técnicas ha permitido que esas fases <strong>de</strong> los compiladores sean generadasen forma automática por programas que utilizan dichos mo<strong>de</strong>los como base <strong>de</strong> trabajo.Las máquinas <strong>de</strong> Turing, dispositivos que aceptan y que también pue<strong>de</strong>n generar los lenguajes enumerablesrecursivamente, fueron formuladas originalmente como un mo<strong>de</strong>lo <strong>de</strong> un computador <strong>de</strong> propósito general,esto fue aún antes <strong>de</strong> que existieran los computadores electrónicos mo<strong>de</strong>rnos. Hoy en día, aún se consi<strong>de</strong>ranun mo<strong>de</strong>lo apropiado <strong>de</strong> la capacidad <strong>de</strong> un computador, siempre que no se consi<strong>de</strong>re la cantidad <strong>de</strong> recursosnecesarios, ni la eficiencia <strong>de</strong> implementación. Así los lenguajes enumerables recursivamente se consi<strong>de</strong>ranlos lenguajes más generales que pue<strong>de</strong>n ser generados por un proceso implementable en un computador. Es<strong>de</strong>cir, la máquina <strong>de</strong> Turing es un mo<strong>de</strong>lo razonable <strong>de</strong> la capacidad <strong>de</strong> un computador, aunque obviamenteno <strong>de</strong>l hardware o software real, ya que por la simplicidad <strong>de</strong>l mo<strong>de</strong>lo, las máquinas <strong>de</strong> Turing trabajan muyineficientemente; pero aún así, ellas pue<strong>de</strong>n hacer cualquier cosa que es posible hacer en un computador.

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

Saved successfully!

Ooh no, something went wrong!