¿Qué diferencias hay entre los conceptos de intérprete, compilador y ensamblador?

Que diferencia (si las hay) o cuales son las definiciones de:
* interprete.
* compilador
* ensamblador
Javier
1

1 Respuesta

750 pts. Sólo sé que nada sé
Este no es el mejor sitio para buscar definiciones... pero te puedo adelantar lo siguiente:
Existen Lenguajes de Programación que se compilan y que por lo general crean un archivo ejecutable, como C, Visual Basic, Cobol, etc... Por o general estos L.P. son procedurales (o top/down o por procedimientos -son todos sonónimos-) o L.P.O.O. (Orientado Objetos)como C++, java, etc...
Otros L.P. son interpretados, es decir, tú vas escribiendo y el intérprete va traducinedo y ejecutando tus sentencias, estos L.P. por lo general son Funcionales como Lisp, Hashkel, etc.. o L.P. basados en reglas como CLIPS, Prolog y similares.
Existen 3 niveles de L.P. de alto nivel (como Visual Basic) de nivel medio como Cobol, C, C++ y de nivel bajo (o código de máquina), este último es más complejo de programar y se escribe en lenguaje assembler, luego este código para que funcione debes ensamblarlo.
Bueno, espero que te ayude esta breve diferenciación... ahora busca en otro lugar el significado exacto, preciso y completo.
Suerte!
En tu mensaje me surgió una duda:
¿Qué sgnifica ensamblar?
Saludos Javier
Gracias! J.
Un ensamblador es un programa que convierte nuestro programa escrito en lenguaje ensamblador (instrucciones) en los opcodes que el microprocesador debe ejecutar directamente. Es decir, se sigue el siguiente proceso:
1.- Escribimos un programa en ensamblador en nuestro editor de textos favorito en un fichero .asm (como por ejemplo, programa.asm). Un programa en ensamblador de z80 (por ejemplo) tiene un aspecto similar al siguiente:
ORG 40000
LD HL, 16384
LD A, 162
LD (HL), A
LD DE, 16385
LD BC, 6911
LDIR
RET
2.- Una vez escrito el programa, lo ENSAMBLAMOS con el ensamblador que usemos. Esto generará código binario (.bin) listo para usar en el ordenador en que lo vayamos a usar. Por ejemplo, al usar el z80-asm se pondría algo así:
z80-asm programa.asm 40000:programa.bin
Cabe destacar en el ejemplo anterior que programa.asm es el programa escrito en instrucciones de ensamblador, que programa.bin es el código binario resultante que el micro de z80 es capaz de ejecutar, y que el 40000 es la dirección donde queremos colocar ese código (40.000 es una zona libre de los 48K del Spectrum, y podemos poner ahí nuestro programa).
Si tenemos errores (hemos tecleado algo mal, la sintaxis de alguna instrucción es incorrecta, etc.) editamos de nuevo el .asm, corregimos los fallos y lo volvemos a ensamblar.
Otra cosa a destacar es que hay 2 tipos de ensambladores, los nativos y los cruzados. Los nativos los ejecutamos en el mismo ordenador en que editamos el código y ejecutamos el programa. Por ejemplo, si programamos para Spectrum, editaríamos el fichero con un editor de Spectrum, lo ensamblaríamos (a cinta o disco) con un ensamblador de Spectrum, y lo ejecutaríamos en el mismo Spectrum.
Un ensamblador cruzado, por contra, es un programa que corre en un ordenador distinto al que estamos programando. Por ejemplo, yo edito un fichero en mi PC, lo compilo en mi PC, y me genera un fichero que me llevo al Spectrum para ejecutarlo.
3.- Ahora ya tenemos un .bin que es código que directamente entiende el microprocesador destino que estamos programando. Ese .bin lo podríamos llevar (vía cinta o vía emulador) a un Spectrum y meterlo en memoria (con POKES) y saltar a ejecutarlo (con RANDOMIZE USR) o bien simplemente usar el bin2tap que nos generará una cinta (. Tap) con nuestro código de forma que al cargarla se ejecuta él sólito:
bin2tap programa.bin programa. Tap
Ahora si cargamos el tap en el emulador o en el Spectrum real, nuestro programa se ejecutará. Y ese programa puede ser una utilidad, un juego, etc.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas