• No se han encontrado resultados

Introducción. El proceso de traducción

N/A
N/A
Protected

Academic year: 2021

Share "Introducción. El proceso de traducción"

Copied!
6
0
0

Texto completo

(1)

Introducción. El proceso de traducción

Traductores y compiladores

11100110 0001 0110 10101001 1100 0011 11000011 1101 1100 1945 MOVE AX #2 MOVE BX #3 MUL CX AX BX 1950 Fact = 1; For i:=0 to 10 fact := fact * i; 1968 Wait (q); i := fact (x); Signal (q); 1970

fun mul (x, y) = x*y fun fact (n, m) = 0 -> 1 | m (n, fact (n-1, m)) 1990 bajo nivel alto nivel + niv e l de abs tra c c ión – Class Punto { int x, y; int modulo () {...} } 1995

¿Qué es un compilador?

Para dar soporte a este proceso de abstracción es necesario idear programas capaces de traducir las expresiones abstractas en secuencias de instrucciones máquina interpretables por un ordenados

Definición

Un compilador es un programa que lee un programa escrito en lenguaje fuente, y lo traduce a un lenguaje objeto de bajo nivel. Además generará una lista de los posibles errores que tenga el programa fuente

Compilador

Lenguaje fuente Lenguaje objeto Compi la d or

(2)

Introducción. El proceso de traducción

Traductores y compiladores

11100110 0001 0110 10101001 1100 0011 11000011 1101 1100 1945 MOVE AX #2 MOVE BX #3 MUL CX AX BX 1950 Fact = 1; For i:=0 to 10 fact := fact * i; 1968 Wait (q); i := fact (x); Signal (q); 1970

fun mul (x, y) = x*y fun fact (n, m) = 0 -> 1 | m (n, fact (n-1, m)) 1990 bajo nivel alto + niv e l de abs tra c c ión – Class Punto { int x, y; 1995

¿Qué es un traductor?

Cuando lo que se pretende es cambiar la expresión sintáctica de un programa de un lenguaje de alto nivel a otro no hablamos de compilador sino de traductor

Definición

Un traductores un programa que lee un programa escrito en lenguaje fuente de alto nivel, y lo traduce a un lenguaje objeto también de alto nivel.

Traductor

Lenguaje fuente Lenguaje objeto fact = 1;

for (int i = 0; i <= 10; i++) fact *= i;

(3)

Introducción. El proceso de traducción

Compiladores e interpretes

Compiladores e interpretes

I. Compilador

Un compilador es un artefacto software capaz de generar un programa ejecutable a partir de un programa escrito en un lenguaje de alto nivel

II. Interprete

Un interprete es un artefacto software capaz de ir interpretando secuencialmente la colección de instrucciones de un programa escrito en un lenguaje de alto nivel para ejecutarlas

› Se obtiene un fichero ejecutable

› El proceso de compilación se realiza sólo una vez › El proceso de compilación es más lento

› Mayor consumo de memoria

› Mayor cantidad de detalles de errores de compilación › Mayor velocidad de ejecución del programa ejecutable › Los errores en ejecución se minimizan

› No se obtiene un fichero ejecutable

› El proceso de interpretación se realiza cada vez › El proceso de interpretación es más rápido › Menor consumo de memoria

› Menor cantidad de detalles de errores de compilación › Menor velocidad de ejecución del programa ejecutable › Los errores en ejecución son mayores

(4)

Introducción. El proceso de traducción

Contexto de compilación

I. Precompilador

Algunos compiladores incluyen precompiladores capaces de hacer un tratamiento preliminar del fichero fuente para prepararlo para el proceso de la compilación. Esta herramienta suele eliminar comentarios, sustituir constantes simbólicas por sus valores literales, o extender en el código fuente las macros definidas

II. Compilador

El compilador es el programa encargado de realizar el proceso de traducción del programa fuente para expresarlo en términos de una secuencia de instrucciones de código máquina interpretables por un ordenador

Foco de atención principal de la asignatura

III. Enlazador o montador

El producto resultante del compilador no es un fichero directamente ejecutable en la arquitectura. Muchas funciones, invocadas desde el programa fuente, y cuyo código se encuentra programado y compilado en otro fichero deben ser incorporadas al fichero resultante de la compilación para que sea autónomo. De esto se encarga el montador

(5)

Introducción. El proceso de traducción

Contexto de compilación

Elementos del contexto de la compilación

IV. Enlazador dinámico

Con el ánimo de que los programas finales no sean muy pesados, muchas funciones externas no se incluyen en el ejecutable final sino que son enlazadas dinámica y automáticamente por el sistema operativo, que se encarga de gestionarlas. Como consecuencia los ejecutables son más pequeños pero establecen dependencias con recursos que han de estar presentes en el sistema operativo

V. Depurador

Los errores producidos en tiempo de compilación son reportados por el compilador para su corrección. Sin embargo los ocurridos en tiempo de ejecución pueden ser más difíciles de detectar. Es necesario hacer ejecuciones paso a paso para comprobar el estado que va tomando cada variable del programa. El depurador ayuda a realizar este tipo de trazas

VI. Ensamblador

A veces los compiladores no generan programas directamente ejecutables en código máquina sino ficheros que corresponden a la expresión en ensamblador del código fuente. Esto puede ser tremendamente útil - aunque en la actualidad no frecuente – para permitir al programador optimizar los resultados generados por el compilador

(6)

Introducción. El proceso de traducción

Contexto de compilación

Ejecutable DOS

Ejecutable Windows

.C

.H

Precompilador

.I

.ASM

Compilador

Ensamblador

.OBJ

.OBJ

.OBJ

Enlazador

. LIB

Enlazador dinámico

. DLL

Proceso

Recurso

Compilador de C

Referencias

Documento similar

2.- Aunque, para elaborar un comentario completo, debemos formular varias preguntas, en los ejercicios pedagógicos es preferible que reduzcamos, sobre todo al principio,

Cedulario se inicia a mediados del siglo XVIL, por sus propias cédulas puede advertirse que no estaba totalmente conquistada la Nueva Gali- cia, ya que a fines del siglo xvn y en

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

[r]

SVP, EXECUTIVE CREATIVE DIRECTOR JACK MORTON

Social Media, Email Marketing, Workflows, Smart CTA’s, Video Marketing. Blog, Social Media, SEO, SEM, Mobile Marketing,

Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas