Lenguaje de bajo nivel

Lenguaje de bajo nivel

Lenguaje de bajo nivel

Un lenguaje de programación de características de bajo nivel o de primera generación, es aquel en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados por la estructura física de las computadoras que lo soportan. El uso de la palabra bajo en su denominación no implica que el lenguaje sea menos potente que un lenguaje de alto nivel, sino que se refiere a la reducida abstracción entre el lenguaje y el hardware.

Los lenguajes de bajo nivel tales como el lenguaje ensamblador pueden ser más difíciles de programar que los lenguajes de alto nivel debido a que están más íntimamente relacionados con las características técnicas del hardware. Además estos suelen carecer de abstracciones de mayor nivel. No es posible una abstracción fuera de lo estipulado para el conjunto del microcódigos del microprocesador de un ordenador. Por otro lado, es más fácilmente traducible a lenguaje de máquina, tarea que realiza esencialmente un compilador.

De menor a mayor nivel de abstracción respecto del hardware es posible clasificar los lenguajes de programación de la siguiente manera:

  1. Lenguaje de máquina: Está formado por los unos (1) y ceros (0) que ejecutará directamente la unidad central de procesamiento (CPU). Al visualizar este lenguaje en un editor de texto plano parecerá sin sentido (caracteres basura). Muchos de ellos serán caracteres no imprimibles. Estos ceros y unos representan literalmente instrucciones y datos a ser procesados.
  2. Lenguajes ensambladores (en inglés assembler): También denominados nemotécnicos o nemónicos, son un primer nivel de abstracción. No son ya programas ejecutables directamente por el ordenador, sino textos de código fuente inteligibles por humanos que necesitan de alguna herramienta (esencialmente un compilador) para su traducción a lenguaje de máquina que el CPU pueda ejecutar. Sus instrucciones suelen ser una denominación abreviada de la instrucción máquina que simbolizan, y tienen una correspondencia casi directa (uno a uno) a las instrucciones de máquina que representan. El código resultante de la compilación del lenguaje ensamblador genera un código de máquina binario ejecutable.
    Son instrucciones que ensamblan los grupos de conmutadores necesarios para expresar una mínima lógica aritmética. Están íntimamente vinculados al hardware. Algunas de estas instrucciones pueden ser por ejemplo MOV para mover un dato de un lugar a otro, o ADD para sumar dos valores. Por norma general están disponibles a nivel firmware, cmos o chip set. Estos lenguajes están orientados a procesos. Los procesos se componen de tareas. Contienen tantas instrucciones como la arquitectura del hardware así haya sido diseñada. La arquitectura CISC contiene muchas más instrucciones a este nivel, que la RISC.

    • Por ejemplo: Assembler x86, JMP y MULT.
    Los otros lenguajes que completan la clasificación no serían ya lenguajes de bajo nivel.
  3. Lenguajes de medio nivel: Son aquellos que, basándose en los juegos de instrucciones disponibles (chip set), permiten el uso de funciones a nivel aritmético, pero a nivel lógico dependen de literales en ensamblador. Estos lenguajes están orientados a procedimientos. Los procedimientos se componen de procesos.
  • Ejemplos: C, Basic. De mayor nivel pero aun así considerables de nivel medio: C++RustFortranCobol, Lisp.