You are on page 1of 3

Intrpretes y compiladores

Fuente :extracto de

http://es.wikipedia.org/wiki/Int%C3%A9rprete_(inform%C3%A1tica)

Fuente: Damin Quijano


Versin 1.
24 de septiembre de 2014.
La computadora es una mquina electrnica que funciona con electricidad y sus
caractersticas , como el voltaje.
La memoria de la computadora permite almacenar valores en voltajes alto y bajo,
que es similar a 1 y 0. Muchas celdas (por decirlo de alguna manera) en la
memoria son componentes electrnicos que mantienen valores altos o bajos, lo
que permite que la combinacin de por ejemplo ocho celdas que contienen
diferentes valores de voltaje representen por ejemplo la letra A. Por supuesto hay
miles de estas celdas, y las combinaciones de alto y bajo, permiten contener
muchas instrucciones y valores en la memoria.
A su vez, el procesador de la computadora tambin procesa la informacin del
mismo modo, mediante valores altos y bajos, o sea, un sistema binario, dado que
solo consta de dos valores posibles, alto y bajo.
Un programador no puede programar inyectando voltajes a la computadora
directamente desde sus dedos, por eso programa en un lenguaje similar que
llamamos el binario, o sea, 1 y 0. Por tanto una secuencia similar a
100011110001110001111 es convertida mediante la electrnica interna de la
computadora a su equivalente en voltajes, siendo el valor de 1 el voltaje alto, y 0 el
voltaje bajo. El lenguaje binario es el que entiende directamente la computadora,
es el lenguaje mquina.
Por supuesto, lo anterior es sumamente tedioso para cualquier persona, por eso se
opt por crear nuevos lenguajes de programacin ms legibles para el humano, los
llamados lenguajes de alto nivel, pero implica que la computadora debe primero

convertir las instrucciones de alto nivel a las instrucciones del lenguaje mquina
(binario) para despus ser convertido a voltajes.
Por tanto tenemos dos tipos de lenguajes de programacin (en trminos generales,
pues hay lenguajes intermedios): de alto nivel y de bajo nivel. El alto nivel significa
que est muy alejado de la forma de operar y trabajar de la mquina, en cambio
bajo nivel se refiere a que est cercano a la forma de pensar y hacer de la
computadora (pensamiento binario, todo es 1 o 0), no significa que sea mejor o
peor.
En nuestro caso, cuando escribimos en lenguaje python, existe un programa que
hace el papel de traductor al lenguaje mquina. Estos programas traductores se
les llama intrpretes o compiladores.
Cuando pulsamos la opcin Run, provoca que el intrprete inicie la traduccin y
vemos entonces los efectos de dicha traduccin en la pantalla. Es como si fueran
dos personas que hablan en diferentes idiomas, y justo en el medio tenemos un
traductor.
Ahora bien, hay dos tipos de traductores: intrpretes y compiladores.
Antes debemos aclarar dos etapas: traduccin y ejecucin.
La traduccin de una instruccin es precisamente eso, se traduce una instruccin
de lenguaje de alto nivel como python a su equivalente al lenguaje de bajo nivel de
la mquina, por ejemplo: print (Hola) su equivalente es algo parecido a
10001001100011110001111001010101010100100000100100101 por supuesto
es un ejemplo solamente y no es real, pero sera algo parecido, una gran cantidad
de valores 1 y 0.
La ejecucin ocurre terminada la traduccin, entonces el lenguaje mquina crea
los voltajes necesarios que entiende el procesador y la memoria de la
computadora, y permite ver los resultados en la pantalla.
Por tanto, un intrprete y un compilador, sabemos que ambos son traductores.
El compilador al momento de recibir la orden de Run, toma todas (no una
solamente) las instrucciones del programa, y las traduce antes del proceso de
ejecucin. En cambio, el intrprete al momento de pulsar Run, empieza a traducir
una instruccin y se ejecuta, luego la siguiente instruccin, y la ejecuta, y as
sucesivamente, a medida que el programa progresa en su ejecucin, traduce las

instrucciones una a una, no espera a traducir todo primero para posteriormente


iniciar la ejecucin.
Por tanto la diferencia es que el compilador traduce todo primero y luego ejecuta,
el intrprete a medida que traduce una instruccin, ejecuta dicha instruccin sin
esperar la traduccin de la siguiente.
Comparando su actuacin con la de un ser humano, un compilador equivale a un
traductor profesional que, a partir de un texto, prepara otro independiente traducido
a otra lengua y luego entrega el producto despus de haber traducido todo
previamente, mientras que un intrprete corresponde al intrprete humano, que
traduce de viva voz las palabras que oye a medida que hablan los participantes, no
espera a que terminen para iniciar la traduccin.
Los programas que usan intrpretes, se llaman programas o lenguajes
interpretados, los programas que usan compilador, son programas o lenguajes
compilados.
Los programas interpretados suelen ser ms lentos que los compilados debido a la
necesidad de traducir el programa mientras se ejecuta, pero a cambio son ms
flexibles como entornos de programacin y depuracin (lo que se traduce, por
ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o
aadir mdulos completamente nuevos), y permiten ofrecer al programa
interpretado un entorno no dependiente de la mquina donde se ejecuta el
intrprete, sino del propio intrprete (lo que se conoce comnmente como mquina
virtual).
Por general un lenguaje de programacin consta de dos componentes importantes:
las instrucciones (para nuestro curso se llama lenguaje python), y el traductor
(para nuestro curso se llama intrprete python). Tambin incorpora una
herramienta de desarrollo, como es el caso de un editor en el que se escriben las
instrucciones (cdigo del programa), y una consola desde la cual se puede ordenar
ejecutar dichas instrucciones, en nuestro curso Python versin 3.4 dicha
herramienta se llama IDLE.

You might also like