Beruflich Dokumente
Kultur Dokumente
smbolo
Entidad abstracta Algunos ejemplos de smbolos pueden ser letras y los dgitos
Vemos y veremos que las gramticas sirven para generar palabras (y con eso lenguajes) y que los autmatas sirven para aceptar palabras (y con eso lenguajes).
alfabeto
Un alfabeto es un conjunto de smbolos nito y no vaco. Convencionalmente, utilizamos el smbolo para designar un alfabeto
5 = {|}
6 = {a,ab,aab}
cadenas
Una cadena de caracteres (que tambin se denomina en ocasiones palabra) es una secuencia nita de smbolos seleccionados de algn alfabeto. Por ejemplo, 01101 es una cadena del alfabeto binario ={0,1}. La cadena 111 es otra cadena de dicho alfabeto
Una secuencia nita de smbolos de un alfabeto es una palabra sobre dicho alfabeto.
1 : 0,1,00,01,11,000,1001101 2 : a,aa,abb,ababa 3 : napa,palabra 6 : a,ab,aab,aaab,aba
Estructura de un traductor
Fases de un compilador
Anlisis Lxico. En esta fase se lee los caracteres del programa fuente y se agrupan en cadenas que representan los componentes lxicos. A la secuencia de caracteres que representa un componente lxico se le llama lexema (o con su nombre en ingls token). Anlisis Sintctico. Los componentes lxicos se agrupan en frases gramaticales que el compilador utiliza para sintetizar la salida. Anlisis Semntico. Intenta detectar instrucciones que tengan la estructura sintctica correcta, pero que no tengan significado para la operacin implicada. Generacin de cdigo Intermedio. Se puede considerar esta operacin intermedia como un subprograma para una mquina abstracta, a esta representacin debe tener dos propiedades importantes: debe ser fcil de producir y fcil de traducir al programa objeto. Optimizacin de Cdigo. Se trata de mejorar el cdigo intermedio, de modo que resulte un cdigo de mquina ms rpido de ejecutar. Generacin de Cdigo. Esta constituye la fase final de un compilador. Administrador de la tabla de smbolos. Se encarga de manejar los accesos a la tabla de smbolos, en cada una de las etapas de compilacin de un programa. Manejador de errores. Es posible encontrar errores. De esta forma podrn controlarse ms eficientemente los errores encontrados en cada una de las fases de la compilacin de un programa