Professional Documents
Culture Documents
conceptos bsicos:
Lenguaje: Conjunto de smbolos y reglas que permiten la comunicacin, es decir, trasmitir una idea, un mensaje. Lxico (vocabulario): Conjunto de palabras que forman parte de un lenguaje especfico. Gramtica: Agrupa los elementos de forma, estructura y significado que permiten expresarse en un lenguaje determinado. Sintaxis: Conjunto de reglas necesarias para construir frases correctas en un lenguaje.
COMPILADORES Y TRADUCTORES.
Traductor es un programa que toma como entrada un programa escrito en un lenguaje de programacin (lenguaje fuente) y produce como salida un programa en otro lenguaje (lenguaje objeto). El traductor se escribe en un lenguaje denominado lenguaje de implementacin. Cuando el lenguaje fuente es de alto nivel (Pascal, C++, etc.) y el lenguaje objeto es un lenguaje de bajo nivel o de mquina, al traductor se le denomina compilador.
ESTRUCTURA DE UN COMPILADOR.
El trabajo de un compilador consiste en tomar la cadena fuente del programa, determinar si es sintcticamente vlida y, a la vez, generar un programa equivalente en un lenguaje que la computadora entienda. El trabajo del compilador se puede dividir en diferentes partes:
FASES DE UN COMPILADOR
ANALIZADOR SINTCTICO
Anlisis Jerrquico Agrupa los componentes lxicos en frases gramaticales que el compilador utiliza
ANALIZADOR SEMNTICO
Busca errores semnticos, rene informacin de tipos; identifica operadores y operandos en base al rbol sintctico producido en el anlisis anterior
OPTIMIZACIN
Esta fase trata de mejorar el cdigo intermedio, o las estructuras que generaran el cdigo definitivo de modo de que resulte un cdigo de maquina ms rpido de ejecutar para guardarlos valores calculados por cada instruccin.
GENERADOR DE CDIGO
Esta fase final de un compilador. Genera el cdigo objeto, que por lo general consiste en un cdigo de maquina relocalizable o cdigo ensamblador. Las posiciones de memoria relativas se seleccionan para cada variable. El uso de los registros de la CPU es relevante.
LENGUAJES FORMALES
Un lenguaje formal es un conjunto (finito o infinito) de cadenas finitas de smbolos primitivos.
Noan Chomsky en los aos 50, fue el creador de una jerarqua de lenguajes segn las gramticas que los generan. Esta gramtica est organizada en base al poder generativo formal de la gramtica y donde se destaca 4 tipos de gramticas (denominados tipo 0, tipo 1, tipo 2 y tipo 3), cada una definida por la clase de reglas que contiene.
Ntese que los lenguajes recursivamente enumerables no son cerrados con la diferencia ni el complementario.
Propiedades:
La unin, interseccin, y concatenacin de dos Lenguajes sensibles al contexto es un lenguaje sensible al contexto. El complemento de un lenguaje sensible al contexto es en si mismo sensible al contexto. Cada gramtica libre de contexto es un lenguaje sensible al contexto. La composicin de una cadena en un lenguaje definido por una gramtica sensible al contexto arbitraria, o por una gramtica determinista sensible al contexto arbitraria, es un problema PSPACE-completo.
Definicin formal
As como cualquier gramtica formal, una gramtica libre de contexto puede ser definida mediante la 4-tupla:
LENGUAJE REGULAR
Un lenguaje regular es un tipo de lenguaje formal que satisface las siguientes propiedades: Los lenguajes ms sencillos que se considerarn son los lenguajes regulares, es decir, los que se pueden generar a partir de los lenguajes bsicos, con la aplicacin de las operaciones de unin, concatenacin y * de Kleene un nmero finito de veces.
AUTMATAS
En el campo de los Traductores, Procesadores y Compiladores, lo fundamental es la simulacin de procesos para tratar informacin. La informacin se codifica en cadenas de smbolos. Un autmata es un dispositivo que manipula cadena de smbolos que se presentan a su entrada, produciendo otras tiras o cadenas de smbolos a su salida
AUTMATAS FINITOS
Un autmata finito es un conjunto de nodos y aristas que representan trayectorias para generar una expresin bajo un alfabeto. Un diagrama de transicin es un autmata finito. La autmata finita se clasifica en: Autmatas finitos no determinsticos. NFA Autmatas finitos determinsticos. DFA
AUTMATAS A PILA
Un autmata con pila, autmata a pila o autmata de pila es un modelo matemtico de un sistema que recibe una cadena constituida por smbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autmata reconoce. El lenguaje que reconoce un autmata con pila pertenece al grupo de los lenguajes libres de contexto en la clasificacin de la Jerarqua de Chomsky.
MQUINA DE TURING
Es un modelo matemtico que consiste en un autmata capaz de implementar cualquier problema matemtico expresado por medio de un algoritmo. Es un autmata que se mueve sobre una secuencia lineal de datos. En cada instante la mquina puede leer un solo dato de la secuencia (generalmente un carcter) y realiza ciertas acciones en base a una tabla que tiene en cuenta su "estado" actual (interno) y el ltimo dato ledo. Entre las acciones est la posibilidad de escribir nuevos datos en la secuencia; recorrer la secuencia en ambos sentidos y cambiar de "estado" dentro de un conjunto finito de estados posibles.
Fases de la compilacin
Consisten en la traduccin de un programa fuente escrito en un lenguaje de alto nivel a un programa objeto y luego se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje mquina directamente ejecutable.
Fase de anlisis
El anlisis lxico constituye la primera fase, aqu se lee el programa fuente de izquierda a derecha y se agrupa en componentes lxicos (tokens), que son secuencias de caracteres que tienen un significado.
Por ejemplo, identificadores, palabras reservadas, signos de final de instruccin. Cada componente es asociada a la categora que pertenece.
Realiza un anlisis jerrquico agrupado de los componentes lxicos en frases gramaticales que el compilador utiliza. El anlisis semntico verifica que el rbol sintctico tenga un significado vlido dentro de las reglas semnticas del lenguaje. Analizador semntico En una asignacin, el tipo de la variable concuerde con el tipo de la expresin asignada. Que los subndices se apliquen a variables tipo arreglo y no a otras. Que las variables estn declaradas antes de ser usadas. Fcil de producir Fcil de traducir al programa objeto
Fase sntesis
Despus de los anlisis sintctico y semntico, algunos compiladores generan una representacin intermedia explcita del programa fuente. Se puede considerar esta representacin intermedia como un programa para una mquina abstracta
Optimizaci n de cdigo
Lenguaje formal
Alfabeto Gramti ca
Esta fase trata de mejorar el cdigo intermedio, o las estructuras que generaran el cdigo definitivo de modo de que resulte un cdigo de maquina ms rpido de ejecutar para guardarlos valores calculados por cada instruccin. Tipo 0: Gramticas libres que El alfabeto es un conjunto finito no vaco de generan lenguajes sin ningn smbolos tipo de restriccin La gramtica es un conjunto finito de reglas para formar cadenas finitas juntando smbolos del alfabeto Chomsky clasific jerrquicamente las gramticas formales que generan lenguajes formales, en estos tipos: Tipo 1: Gramticas contextuales que generan lenguajes contextuales
Tipo 2: Gramticas incontextuales que generan lenguajes incontextuales Tipo 3: Gramticas regulares que generan lenguajes regulares incontextuales
Se han desarrollado como un medio para formalizar matemticamente una teora; Su sintaxis es capaz de definir oraciones rigurosamente definidas; Constituyen un poderoso instrumento para la investigacin y el procesamiento del Lenguaje Natural por computadora.
Autmatas Finitos En el campo de los Traductores, Procesadores y Compiladores, lo fundamental es la simulacin de procesos para tratar informacin. La informacin se codifica en cadenas de smbolos. Un autmata es un dispositivo que manipula cadena de smbolos que se presentan a su entrada, produciendo otras tiras o cadenas de smbolos a su salida
Autmatas
Un autmata finito es un conjunto de nodos y aristas que representan trayectorias para generar una expresin bajo un alfabeto. Un diagrama de transicin es un autmata finito.
Un NFA es un modelo matemtico que consiste de: 1.- Un conjunto de estados. 2.- Un conjunto de smbolos de entrada. 3.- Una funcin de transicin que corresponde pares estado-smbolo a conjuntos de estados. 4.- Un estado So que denota como el estado inicial. 5.- Un conjunto de estados F que denotan los estados de aceptacin o finales.
Mquina de Turing
Es un modelo matemtico que consiste en un autmata capaz de implementar cualquier problema matemtico expresado por medio de un algoritmo. Autmatas finitos determinsticos. DFA
Un DFA es un caso especial de NFA en el que ningn estado tiene transiciones para diversos estados bajo el mismo smbolo no se permiten transiciones psilon.
Autmatas a Pila
Un autmata con pila, autmata a pila o autmata de pila es un modelo matemtico de un sistema que recibe una cadena constituida por smbolos de un alfabeto y determina si esa cadena pertenece al lenguaje que el autmata reconoce.
Un autmata linealmente acotado es una mquina de Turing cuya cinta est formada solamente por celdas de kn de largo, donde la longitud n es la secuencia de la entrada y k es una constante asociada al autmata linealmente-acotado particular, es decir la cantidad de cinta que el autmata permite usar se limita por un factor lineal k para que cuando entre una palabra de tamao n (los smbolos de n) , la mquina determine si la palabra es aceptable, o si la palabra est en el lenguaje del autmata.
REFERENCIAS BIBLIOGRFICAS
[1] J. Glenn Brookshear. Theory of Computation. Formal Languages, Automata, and Complexity, The Benjamin/Cummings Publishing Company, Inc. 1989 [2] J. E. Hopcroft, R. Motwani, J. D. Ullman. Introduccin a la Teora de Autmatas, Lenguajes y Computacin. Addison Wesley Longman, Pearson Education Company, Segunda Edicin 2001. [3] John C. Martin. Introduction to Languages and the theory of Computation. WCB/McGraw-Hill, Second Edition. 1996. [4] Michael Sipser. Introduction to the theory of Computation. PWS Publishing Company, 1997. [5] Dean Kelly. Teora de Autmatas y Lenguajes Formales. Prentice-Hall, 1998. [6] Pedro Garca, Toms Prez, etc. Teora de Autmatas y Lenguajes Formales. Alfa omega Grupo Editor. 2001. Matemticas [7] H. Contreras: Los fundamentos de la gramtica transformacional, Mxico, siglo XXI, 1971. [8] J. Nivette: Principios de gramtica generativa. Madrid, Fragua, 1973. [9] Vidal Lamiquiz, Lingstica Espaola. Publicaciones de la Universidad de Sevilla, 1973.