ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

El compilador


Enviado por   •  22 de Agosto de 2013  •  Ensayo  •  2.002 Palabras (9 Páginas)  •  300 Visitas

Página 1 de 9

Compiladores

Es el tipo de traductor más conocido. Se trata de un programa que traduce código fuente escrito en un lenguaje de alto nivel (Pascal) en código máquina (no siempre). Son más rápidos que los intérpretes pero presentan mayor dificultad a la hora de detectar errores.

Un compilador es un programa que lee el código escrito en un lenguaje (lenguaje origen), y lo traduce o traduce en un programa equivalente escrito en otro lenguaje (lenguaje objetivo). Como una parte fundamental de este proceso de traducción, el compilador le hace notar al usuario la presencia de errores en el código fuente del programa.

El compilador deriva su nombre de la manera en que trabaja, buscando en todo el código fuente, recolectando y reorganizando las instrucciones. Un compilador difiere de un intérprete en que el intérprete toma cada línea de código y la analiza y ejecuta mientras que el compilador mira el código por completo.

Los compiladores requieren de un tiempo antes de poder generar un ejecutable, sin embargo los programas creados con compiladores se ejecutan mucho más rápido que un mismo programa ejecutado con un intérprete.

Cada lenguaje de programación de alto nivel (excepto los estrictamente imperativos) viene con un compilador.

Dado que los compiladores traducen código fuente a código objeto, el cual es único para cada tipo de máquina, existen múltiples compiladores para un mismo lenguaje. Por ejemplo lenguaje C tiene un compilador para PC, otro para Apple

Macintosh, además existen muchas casas que desarrollan compiladores para una misma plataforma y un mismo lenguaje, por ejemplo Microsoft y Borland tienen sus compiladores propios para lenguaje C.

Etapas del proceso de compilación:

1. Edición. Esta fase consiste en escribir el programa empleando algún lenguaje y un editor. Como resultado nos dará el código fuente de nuestro programa.

2. Compilación. En esta fase se traduce el código fuente obtenido en la fase anterior a código máquina. Si no se produce ningún error se obtiene el código objeto.

En caso de errores el compilador los mostraría para ayudarnos a corregirlos y se procedería a su compilación de nuevo, una vez corregido.

3. Linkado. Esta fase consiste en unir el archivo generado en la fase dos con determinadas rutinas internas del lenguaje, obteniendo el programa ejecutable.

Existen dos tipos de linkados:

Linkado estático: Los binarios de las librerías se añaden a nuestros binarios compilados generando el archivo ejecutable.

Linkado dinámico: no se añaden las librerías a nuestro binario sino que hará que se carguen en memoria las librerías que en ese momento se necesiten.

Una vez traducido, compilado y linkado el archivo esta listo para su ejecución donde también podrán surgir problemas y fallos, para los cuales tendríamos que volver a realizar todo el proceso anteriormente citado, de modo que puedan ser corregidos.

Por este motivo es importante realizar numerosas pruebas en tiempo de ejecución antes de presentar el programa al cliente.

Partes de un compilador

Normalmente los compiladores están divididos en dos partes:

Front End: es la parte que analiza el código fuente, comprueba su validez, genera 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.

Back End: es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por el Front End.

Esta división permite que el mismo Back End se utilice para generar el código máquina de varios lenguajes de programación distintos y que el mismo Front End que sirve para analizar el código fuente de un lenguaje de programaciónconcreto sirva para la generación de código máquina en varias plataformas distintas.

El código que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker).

Tipos de compiladores

Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categorías:

• 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 unintérprete y compilan partes del código según se necesitan.

Interpretes

Traduce a lenguaje máquina, cada línea del programa fuente y la ejecuta de inmediato.

Traducen en Lenguaje de Alto Nivel a Lenguaje Maquina, se encargan de traducir cada instrucción, una por una (o cada línea de instrucciones) contenida en un programa escrito en cualquier lenguaje de alto nivel a instrucciones en código binario, comprensible por las computadoras.

Los intérpretes no producen código objeto, por ello la ejecución de un programa requiere forzosamente del código fuente. Además, los programas en lenguaje interpretado se ejecutan con más lentitud que aquellos en lenguaje compilado.

Los intérpretes realizan la traducción y ejecución de forma simultanea, es decir, un intérprete lee el código fuente y lo va ejecutando al mismo tiempo.

Se pueden utilizar como alternativa a los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.

La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez y traducir a lenguaje

...

Descargar como (para miembros actualizados) txt (13 Kb)
Leer 8 páginas más »
Disponible sólo en Clubensayos.com