En la programación es muy importante saber que esta pasando un nivel por debajo del que solemos encontrarnos. Por esta razón he creado este artículo para aclarar rápidamente unos conceptos que considero de vital importancia para todo programador.

 

La escritura de software consiste en escribir programas, para ello se utilizan una serie de lenguajes de programación que nos ayudan crear / diseñar este software. Como se puede clasificar este código que escribimos, en que nivel se encuentra hasta llegar al hardware.

 

Primero tenemos que tener claro que cada equipo, cada máquina de hardware entiende el código binario (0 y 1). La diferencia es que entre las máquinas pueden interpretar de forma distinta toda esta información.

 

Existen 3 tipos de código:

 

Código ejecutable (binario ó máquina): código que entiende la máquina donde se va a ejecutar. El problema es que es demasiado complicado como para poder escribir programas con este código tan complejo. Utilizamos el código fuente.

 

Código fuente: es un lenguaje de alto nivel que nos permite escribir programas que posteriormente el compilador se encargara de traducir al código ejecutable.

 

Código objeto: código ejecutable al que le falta el proceso de enlazado (último proceso de compilación).

 

 

 

Para que el programa que hemos realizado en código fuente pueda ser entendido por cada máquina en particular tenemos que compilar susodicho software.

 

Compiladores: programa que se encarga de traducir código fuente programado en alto nivel en código ejecutable para una plataforma determinada. Para la máquina destino.

Permite al programador escribir código fácil de entender y repasar, abstraerse de características propias del hardware y por último hacer un código portable (fuente).

Con esto quiero decir que gracias al compilador que dispondrá cada maquina (instalación del programa) el código fuente puede ser el mismo para todos.

 

Dispone de 4 fases:

 

Preprocesador: donde incluye las librerias necesarias y traduce las variables definidas. Devuelve el código preprocesado.

 

Compilación: hace un análisis tanto sintáctico como semántico del programa y realiza optimizaciones. Devuelve el código ensamblador (bajo nivel del código fuente).

 

Ensamblador: dependiendo del hardware traduce el código ensamblador de una forma o otra. Devuelve el código objeto.

 

Enlazador: creación a partir del código objeto el código binario final para la máquina donde se quiere ejecutar.

 

 

Decir que he cogido como base el compilador GCC, de donde he sacado un resumen para aclarar conceptos.

Todo este proceso va mucho más allá de lo que he podido explicar, este artículo solo sirve para una breve introducción para saber que lenguaje tocas de toda la escala disponible.

 

Don't be shellfish...Share on Facebook0Tweet about this on Twitter0Share on Google+0Share on LinkedIn0Pin on Pinterest0Share on TumblrEmail this to someone