Las diferencias entre los lenguajes de programación de alto y de bajo nivel

Por theon weber
Las diferencias entre los lenguajes de programación de alto y de bajo nivel
Comstock/Comstock/Getty Images

Los lenguajes de programación de computadoras de alto y de bajo nivel están diseñados para permitir la comunicación entre un humano y una computadora a distintos niveles de abstracción. Un lenguaje de muy bajo nivel requiere que un humano proporcione instrucciones directamente al hardware de la computadora, usando el lenguaje y la estructura de dicho hardware; en el caso de los lenguajes de alto nivel, los humanos trabajan con herramientas lógicas complejas y abstractas para escribir instrucciones que un programa determinado debe traducir para que la computadora comprenda. Generalmente es más fácil para los humanos usar estas herramientas.

Los lenguajes de programación

Un lenguaje de programación es cualquier lenguaje con el que los humanos pueden dar instrucciones a las computadoras. Un programa es una lista de instrucciones preparadas para ser entregadas a una computadora y ser ejecutadas. Esencialmente, las instrucciones almacenan, mueven y cambian valores en la memoria de la computadora. Estos valores pueden ser interpretados por varios dispositivos, como monitores, altavoces, teclados, almohadillas táctiles o ratones, que proporcionan formas de comunicación con el usuario.

El código máquina

Un lenguaje de bajo nivel es aquel que se encuentra cerca de los conceptos básicos del hardware de la computadora. El lenguaje de más bajo nivel es el código máquina, que el hardware entiende directamente y que no requiere interpretación o traducción. El código máquina está compuesto completamente por cadenas de números binarios: los famosos ceros y unos. Si bien puede hacer todo lo que cualquier otro lenguaje puede lograr (de hecho el resto de los lenguajes deben ser traducidos a código máquina por el intérprete), no está diseñado para cumplir con las necesidades del programador y requiere un conocimiento profundo del procesador y de los dispositivos de la computadora, además de que es casi imposible que un humano pueda leerlo.

El lenguaje ensamblador

El siguiente lenguaje de programación de "más alto" nivel es el lenguaje ensamblador, que se trata de código máquina cuyos códigos de instrucciones han sido reemplazados por comandos más intuitivos. Por ejemplo, el comando para colocar el valor 97 en un registro de la memoria es llamado AL (en código máquina sería "10110000 01100001"), y en lenguaje ensamblador sería "MOV AL, 97", que sigue siendo un comando críptico pero es mucho más sencillo de leer. Aunque sigue siendo ineficiente escribirlo y requiere que el programador trate directamente con el hardware de la computadora, es un lenguaje de nivel más alto que el de código máquina porque es más abstracto, es decir, está más cerca del programador.

Los lenguajes de alto nivel

Los programadores modernos muy rara vez escriben en lenguaje ensamblador. En su lugar, usan uno de los muchos lenguajes de alto nivel como C, Java o Python, cuyos programas llamados compiladores o intérpretes pueden traducir al código máquina. Estos lenguajes evitan que el programador tenga que involucrarse con el mundo físico del hardware y lo llevan a la abstracción lógica: en lugar de mover valores hexadecimales por los registros de la memoria, el programador trabaja con variables cuyos contenidos pueden ser modificados, con bucles que pueden repetirse hasta que se cumpla una condición, con sentencias lógicas como IF, AND, THEN, OR y ELSE, entre otras herramientas. Estos lenguajes están diseñados para el programador, atendiendo a las formas en las que se puede lograr la máxima potencia con la menor dificultad.

Comparaciones

Los lenguajes de alto nivel no reciben ese nombre por ser "mejores" que los lenguajes de bajo nivel. A veces la capacidad de comunicarse directamente con el procesador de la computadora en lenguaje ensamblador o incluso en código máquina puede resolver los problemas que las capas de abstracción de un lenguaje de alto nivel pueden dificultar. Un lenguaje de muy alto nivel puede tratar sólo con un sistema operativo determinado, como Microsoft Visual Basic, o con un programa determinado, como las "macros" de un procesador de textos. Estos programas son muy útiles para cualquiera que quiera manipular Windows o Word sin tener que saber cómo funciona, pero un lenguaje así no sería útil para alguien que intente escribir un programa propio y que necesita un lenguaje de nivel más bajo. Por lo tanto, un programador elige un lenguaje dependiendo del trabajo que necesite llevar a cabo.