Compiladores

Solo disponible en BuenasTareas
  • Páginas : 5 (1229 palabras )
  • Descarga(s) : 0
  • Publicado : 13 de diciembre de 2010
Leer documento completo
Vista previa del texto
2010
UNIDAD III: “COMPILADORES”

MARCO ANTONIO MANDUJANO DIAZ INSTITUTO TECNOLOGICO DE ZITACUARO 06/12/2010

DEFINICION: Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de máquina, perotambién puede ser simplemente texto. Este proceso de traducción se conoce como compilación. Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a cómo piensa un ser humano, para luegocompilarlo a un programa más manejable por una computadora.

FACES DE UN COMPILADOR: FACE DE ANALISIS:

Análisis léxico.El análisis léxico constituye la primera fase, aquí se lee el programa fuente de izquierda a derecha y se agrupa en componentes léxicos (tokens), que son secuencias de caracteres que tienen un significado. Además, todos los espacios en blanco, líneas en blanco, comentarios ydemás información innecesaria se elimina del programa fuente. También se comprueba que los símbolos del lenguaje (palabras clave, operadores,...) se han escrito correctamente. Como la tarea que realiza el analizador léxico es un caso especial de coincidencia de patrones, se necesitan los métodos de especificación y reconocimiento de patrones, y estos métodos son principalmente las expresionesregulares y los autómatas finitos. Sin embargo, un analizador léxico también es la parte del traductor que maneja la entrada del código

fuente, y puesto que esta entrada a menudo involucra un importante gasto de tiempo, el analizador léxico debe funcionar de manera tan eficiente como sea posible.

Análisis sintáctico.En esta fase los caracteres o componentes léxicos se agrupan jerárquicamente enfrases gramaticales que el compilador utiliza para sintetizar la salida. Se comprueba si lo obtenido de la fase anterior es sintácticamente correcto (obedece a la gramática del lenguaje). Por lo general, las frases gramaticales del programa fuente se representan mediante un árbol de análisis sintáctico. La estructura jerárquica de un programa normalmente se expresa utilizando reglas recursivas.Por ejemplo, se pueden dar las siguientes reglas como parte de la definición de expresiones: 1. Cualquier identificador es una expresión. 2. Cualquier número es una expresión. 3. Si expresión1 y expresión2 son expresiones, entonces también lo son:
o o o

expresión1 + expresión2 expresión1 * expresión2 ( expresión1 )

Las reglas 1 y 2 son reglas básicas (no recursivas), en tanto que la regla 3define expresiones en función de operadores aplicados a otras expresiones. La división entre análisis léxico y análisis sintáctico es algo arbitraria. Un factor para determinar la división es si una construcción del lenguaje fuente es inherentemente recursiva o no. Las construcciones léxicas no requieren recursión, mientras que las construcciones sintácticas suelen requerirla. No se requiererecursión para reconocer los identificadores, que suelen ser cadenas de letras y dígitos que comienzan con una letra. Normalmente, se reconocen los identificadores por el simple examen del flujo de entrada, esperando hasta encontrar un carácter que no sea ni letra ni dígito, y agrupando después todas

las letras y dígitos encontrados hasta ese punto en un componente léxico llamado identificador. Porotra parte, esta clase de análisis no es suficientemente poderoso para analizar expresiones o proposiciones. Por ejemplo, no podemos emparejar de manera apropiada los paréntesis de las expresiones, o las palabras begin y end en proposiciones sin imponer alguna clase de estructura jerárquica o de anidamiento a la entrada.

Análisis semántico.La fase de análisis semántico revisa el programa...
tracking img