




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Libro de Compiladores e interpretes buena explicación parte teórica y practica
Tipo: Apuntes
1 / 375
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!





























































































www.librosite.net/pulido
Departamento de Ingeniería Informática Universidad Autónoma de Madrid
Madrid • México • Santafé de Bogotá • Buenos Aires • Caracas • Lima Montevideo • San Juan • San José • Santiago • Sâo Paulo • Reading, Massachusetts • Harlow, England
5.4.1. Algunas observaciones sobre la información semántica
- Contenido capaz de obtener su solución. Por ello se considera a Turing el padre de la teoría de la com- putabilidad. El teorema de Turing es, en el fondo, equivalente al teorema de Gödel. Si el segundo de- muestra que no todos los teoremas pueden demostrarse, el primero dice que no todos los proble- mas pueden resolverse. Además, la demostración de ambos teoremas es muy parecida. Uno de esos problemas que no se puede resolver es el denominadol problema de la parada de la máqui- na de Turing. Puede demostrarse que la suposición de que es posible predecir, dada la descrip- ción de una máquina de Turing y la entrada que recibe, si llegará a pararse o si continuará procesando información indefinidamente, lleva a una contradicción. Esta forma de demostración, muy utilizada en las ciencias matemáticas, se llama reducción al absurdo.
Autómatas
El segundo eslabón en la cadena vino de un campo completamente diferente: la ingeniería eléc- trica. En 1938, otro artículo famoso [2] del matemático norteamericano Claude Elwood Shannon (1916-2001), quien más tarde sería más conocido por su teoría matemática de la comunicación, vino a establecer las bases para la aplicación de la lógica matemática a los circuitos combinato- rios y secuenciales, construidos al principio con relés y luego con dispositivos electrónicos de va- cío y de estado sólido. A lo largo de las décadas siguientes, las ideas de Shannon se convirtieron en la teoría de las máquinas secuenciales y de los autómatas finitos.
Los autómatas son sistemas capaces de transmitir información. En sentido amplio, todo siste- ma que acepta señales de su entorno y, como resultado, cambia de estado y transmite otras seña- les al medio, puede considerarse como un autómata. Con esta definición, cualquier máquina, una central telefónica, una computadora, e incluso los seres vivos, los seres humanos y las socieda- des se comportarían como autómatas. Este concepto de autómata es demasiado general para su estudio teórico, por lo que se hace necesario introducir limitaciones en su definición.
Desde su nacimiento, la teoría de autómatas encontró aplicación en campos muy diversos, pero que tienen en común el manejo de conceptos como el control , la acción , la memoria. A me- nudo, los objetos que se controlan, o se recuerdan, son símbolos, palabras o frases de algún tipo.
Estos son algunos de los campos en los que ha encontrado aplicación la Teoría de Autómatas:
1.
Se sabe que un autómata (o una máquina secuencial) recibe información de su entorno ( en- trada o estímulo ), la transforma y genera nueva información, que puede transmitirse al entorno ( salida o respuesta ). Puede darse el caso de que la información que devuelve el autómata sea muy reducida: podría ser una señal binaria (como el encendido o apagado de una lámpara), que indi- ca si la entrada recibida por el autómata es aceptada o rechazada por éste. Tendríamos, en este caso, un autómata aceptador.
Lenguajes y gramáticas
El tercer eslabón del proceso surgió de un campo que tradicionalmente no había recibido con- sideración de científico: la lingüística, la teoría de los lenguajes y las gramáticas. En la déca- da de 1950, el lingüista norteamericano Avram Noam Chomsky (1928-) revolucionó su campo de actividad con la teoría de las gramáticas transformacionales [3, 4], que estableció las ba- ses de la lingüística matemática y proporcionó una herramienta que, aunque Chomsky la des- arrolló para aplicarla a los lenguajes naturales, facilitó considerablemente el estudio y la formalización de los lenguajes de computadora, que comenzaban a aparecer precisamente en aquella época. El estudio de los lenguajes se divide en el análisis de la estructura de las frases (gramática) y de su significado (semántica). A su vez, la gramática puede analizar las formas que toman las pa- labras (morfología), su combinación para formar frases correctas (sintaxis) y las propiedades del lenguaje hablado (fonética). Por el momento, tan sólo esta última no se aplica a los lenguajes de computadora.
Aunque desde el punto de vista teórico la distinción entre sintaxis y semántica es un poco ar- tificial, tiene una enorme trascendencia desde el punto de vista práctico, especialmente para el di- seño y construcción de compiladores, objeto de este libro.
Máquinas abstractas y lenguajes formales
La teoría de lenguajes formales resultó tener una relación sorprendente con la teoría de máqui- nas abstractas. Los mismos fenómenos aparecen independientemente en ambas disciplinas y es posible establecer correspondencias entre ellas (lo que los matemáticos llamarían un isomor- fismo ). Chomsky clasificó las gramáticas y los lenguajes formales de acuerdo con una jerarquía de cuatro grados, cada uno de los cuales contiene a todos los siguientes. El más general se llama gra- máticas del tipo 0 de Chomsky. A estas gramáticas no se les impone restricción alguna. En con- secuencia, el conjunto de los lenguajes que representan coincide con el de todos los lenguajes posibles.
El segundo grado es el de las gramáticas del tipo 1 , que introducen algunas limitaciones en la estructura de las frases, aunque se permite que el valor sintáctico de las palabras dependa de su
1.
1.
Alfabetos, símbolos y palabras
Se llama alfabeto a un conjunto finito, no vacío. Los elementos de un alfabeto se llaman símbo- los. Un alfabeto se define por enumeración de los símbolos que contiene. Por ejemplo:
Σ 1 = {A,B,C,D,E,...,Z} Σ 2 = {0,1} Σ 3 = {0,1,2,3,4,5,6,7,8,9,.} Σ 4 = {/,}
Se llama palabra , formada con los símbolos de un alfabeto, a una secuencia finita de los sím- bolos de ese alfabeto. Se utilizarán letras minúsculas como x o y para representar las palabras de un alfabeto: x = JUAN (palabra sobre Σ 1 ) y = 1234 (palabra sobre Σ 3 ) Se llama longitud de una palabra al número de letras que la componen. La longitud de la pa- labra x se representa con la notación |x|. La palabra cuya longitud es cero se llama palabra va- cía y se representa con la letra griega lambda (λ). Evidentemente, cualquiera que sea el alfabeto considerado, siempre puede formarse con sus símbolos la palabra vacía.
El conjunto de todas las palabras que se pueden formar con las letras de un alfabeto se llama lenguaje universal de Σ. De momento se utilizará la notación W(Σ) para representarlo. Es evidente que W(Σ) es un conjunto infinito. Incluso en el peor caso, si el alfabeto sólo tiene una letra (por ejemplo, Σ = {a}), las palabras que podremos formar son:
W(Σ) = {λ, a, aa, aaa, ...}
Es obvio que este conjunto tiene infinitos elementos. Obsérvese que la palabra vacía pertene- ce a los lenguajes universales de todos los alfabetos posibles.
Operaciones con palabras
Esta sección define algunas operaciones sobre el conjunto W(Σ) de todas las palabras que se pue- den construir con las letras de un alfabeto Σ = {a 1 , a 2 , a 3 , ...}.
Sean dos palabras x e y tales que x ∈ W(Σ), y ∈ W(Σ). Suponiendo que x tiene i letras, e y tiene j letras:
x = a 1 a 2 ...a (^) i y = b 1 b 2 ...b (^) j
1.
1.
Donde todas las letras a (^) p, b (^) q son símbolos del alfabeto Σ. Se llama concatenación de las palabras x e y (y se representa xy) a otra palabra z, que se obtiene poniendo las letras de y a continuación de las letras de x: z = xy = a 1 ...a (^) i b 1 ...b (^) j La concatenación se representa a veces también x.y. Esta operación tiene las siguientes pro- piedades:
x(yz) = (xy)z Por cumplir las dos propiedades anteriores, la operación de concatenación de las palabras de un alfabeto es un semigrupo.
Por cumplir las tres propiedades anteriores, la operación de concatenación de las palabras de un alfabeto es un monoide (semigrupo con elemento neutro).
xy=abcad yx=adabc
Es evidente que xy no es igual a yx. Sea z = xy. Se dice que x es cabeza de z y que y es cola de z. Además, x es cabeza propia de z si y no es la palabra vacía. De igual manera, y es cola propia de z si x no es la palabra vacía.
Se observará que la función longitud de una palabra tiene, respecto a la concatenación, propie- dades semejantes a las de la función logaritmo respecto a la multiplicación de números reales: |xy| = |x| + |y|
Sea un alfabeto Σ. Cada una de sus letras puede considerarse como una palabra de longitud igual a 1, perteneciente a W(Σ). Aplicando a estas palabras elementales la operación concatenación, puede formarse cualquier palabra de W(Σ) excepto λ, la palabra vacía. Se dice entonces que Σ es un conjunto de generadores de W(Σ)-{λ}. Este conjunto, junto con la operación concatenación, es un semigrupo, pero no un monoide (pues carece de elemento neutro). Se dice que W(Σ)-{λ}