jueves, 16 de junio de 2016

Compilador e Intérprete


Compilador e Intérprete

¿Qué es un compilador?


Un compilador es un programas 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 maquina sera capaz de interpretar. Usualmente el segundo lenguaje es lenguaje de maquina, pero también puede ser un código intermedio, o simplemente texto. Este proceso de traducción se conoce como compilación. 





1.- Partes del compilador:


  • Análisis: Se trata de la comprobación de la corrección del programas fuente, e incluye las fases correspondientes al Análisis Léxico (que consiste en la descomposición del programa fuente en componentes léxicos), Análisis Sintáctico (agrupación de los componentes léxicos en frases gramaticales) y Análisis Semántico (comprobacion de la validez semántica de las sentencias aceptadas en la fase de Análisis Sintáctico
  • Síntesis: Su objetivo es la generación de la salida expresada en el lenguaje objeto y suele estar formado por una o varias combinaciones de fases de generación de código (normalmente se trata de código intermedio o de código objeto) y de Optimización de Código (en las que se busca obtener un código lo mas eficiente posible).
  • Front - end: Es la parte que analiza el código fuente, comprueba su validez, general el árbol de derivación y rellena los valores de la tabla de símbolos, Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar, y esta compuesta por las fases comprendidas entre el Análisis Léxico y la Generación de Código Intermedio.



2.- Tipos de compiladores:


  • Compiladores cruzados: Generan código para un sistema distinto del que están funcionando.
  • Compiladores optimizadores: Realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original.
  • Compiladores de una sola pasada: Generan el código máquina a partir de una única lectura del código fuente.
  • Compiladores de varias pasadas: Necesitan leer el código fuente varias veces antes de poder producir el código máquina.
  • Compiladores JIT (Just In Time): Forman parte de una intérprete y compilan partes del código según se necesitan




¿Qué es un intérprete?



En ciencias de la computación, Intérprete o Interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los intérpretes se diferencian de los compiladores en que mientras estos traducen un programa desde su descripción en un lenguaje de programación al código de máquina del sistema, los intérpretes sólo realizan la traducción a medida que sea necesaria, tipicamente, instrucción por instrucción, y normalmente no guardan el resultado de dicha traducción.

Los programas interpretados suelen ser más lentos que los compilados debido a la necesidad de traducir el programa mientras se ejecuta, pero a cambio son mas flexibles como entornos de programación y de puración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno no dependiente de la maquina donde se ejecuta el intérprete, sino del propio intérprete (lo que se conoce comúnmente como máquina virtual). 




No hay comentarios:

Publicar un comentario