Los lenguajes de bajo nivel son mas fáciles de utilizar que los lenguajes máquina, pero, al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. Las instrucciones en lenguaje ensamblador son instrucciones conocidas como nemotécnicos. Por ejemplo, nemotécnicos típicos de operaciones aritméticas son: en inglés, ADD, SUB, DIV, etc.; en español, SUM,RES,DIV,etc. Una instrucción típica de suma sería:
ADD M, N, P
Esta instrucción podría significar “sumar el número contenido en la posición de memoria M al número almacenado en la posición de memoria N y situar el resultado en la posición de memoria P”. Evidentemente es mucho más sencillo recordar la instrucción anterior con un nemotécnico que su equivalente en código máquina”.
0110 1001 1010 1011
Un programa escrito en lenguaje ensamblador no puede ser ejecutado directamente por la computadora en esto se diferencia esencialmente del lenguaje máquina, sino que requiere una fase de traducción al lenguaje máquina.
El programa original escrito en lenguaje ensamblador se denomina programa fuente y el programa traducido en lenguaje máquina se conoce como programa objeto, ya directamente entendible por la computadora.
El traductor de programas fuente a objeto es un programa llamado ensamblador, existente en casi todos los computadores.
Programa fuente en ensamblador (assembly)
Programa Ensamblador (assembler)
Programa objeto en código máquina.
No se debe confundir el programa ensamblador, encargado de efectuar la traducción del programa fuente escrito a lenguaje máquina, con el lenguaje ensamblador, lenguaje de programación con una estructura y gramática definidas.
Ventajas del lenguaje ensamblador.
Los lenguajes ensambladores presentan la ventaja frente a los lenguajes máquina de su mayor facilidad de codificación y, en general, su velocidad de cálculo.
Desventajas del lenguaje ensamblador.
Los inconvenientes más notables de los lenguajes ensambladores son:
Dependencia total de la máquina lo que impide la transportabilidad de los programas. El lenguaje ensamblador del PC es distinto del lenguaje ensamblador del Apple Macintosh.
La formación de los programadores es más compleja que la correspondiente a los programadores de alto nivel, ya que no sólo las técnicas de programación, sino también el conocimiento del interior de la máquina.
Hoy día los lenguajes ensambladores tienen sus aplicaciones mas reducidas en la programación de aplicaciones y se centran en aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos, etc.
Intérpretes.
Un intérprete es un traductor que toma un programa fuente, lo traduce y a continuación lo ejecuta.
Programa Fuente
Intérprete
Traducción y ejecución línea a línea.
Un lenguaje que soporte un traductor de tipo intérprete se denomina lenguaje interpretado. BASIC es el modelo por excelencia de lenguaje interpretado.
Los programas fuente en BASIC se escriben con ayuda de un programa denominado editor que suele venir incorporado al programa intérprete.
Compiladores.
Un compilador es un programa que traduce los programas fuente escritos en lenguajes de alto nivel: Pascal, FORTRAN.... a lenguaje máquina.
Los programas escritos en lenguajes de alto nivel se llaman programa fuente y el programa traducido se le llama programa objeto ó código objeto. El compilador traduce sentencia a sentencia el programa fuente.
Lenguajes compiladores típicos son: Pascal, FORTRAN, COBOL..., hoy día es posible encontrar también versiones de compiladores BASIC y de C.
La compilación es el proceso de traducción de programas fuente a programas objeto.
Programa Fuente.
Compilador.
Programa Objeto.
El programa objeto obtenido de la compilación no ha sido traducido normalmente a código máquina sino a ensamblador. Para conseguir el programa máquina real se debe utilizar un programa llamado montador o enlazador (linker). El proceso de montaje conduce a un programa en lenguaje máquina directamente ejecutable.
Programa Fuente.
Compilador (traductor).
Programa Objeto.
Montador.
Programa ejecutable en lenguaje máquina.
El proceso de ejecución de un programa Pascal, por ejemplo, tiene los siguientes pasos:
Escritura del programa fuente con un editor y guardarlo en un dispositivo de almacenamiento.
Introducir el programa fuente en memoria.
Compilar el programa con el compilador Pascal.
Verificar y corregir errores de compilación.
Obtención del programa objeto.
El montador obtiene el programa ejecutable.
Se ejecuta el programa y si no existen errores, se tendrá la salida del programa.