Los tipos de lenguajes de programación: bajo y alto nivel

En este artículo te mostramos los diferentes tipos de lenguajes de programación (de bajo y alto nivel), sus características y algunos ejemplos.

Anteriormente, cuando solo existían los lenguajes de bajo nivel (código máquina y ensamblador), darle instrucciones al computador era una tarea bastante compleja y que requería mucho tiempo.

No sería hasta la llegada de Fortran (el primer lenguaje de alto nivel), en que ya no era necesario escribir en binario para darle instrucciones al ordenador.

Aquí te contamos todo lo que tienes que saber sobre estos lenguajes de alto nivel (compilados e interpretados) y bajo nivel (máquina y ensamblador).

¿Qué es un lenguaje de programación?

Un lenguaje de programación es, básicamente, el medio para darle instrucciones al computador.

Lenguajes de programación

Lenguajes de Programación – Imagen: Hr.hanafi, lenguaje de programación, CC BY-SA 3.0.

Los ordenadores tienen millones de interruptores que están encendidos (1) o bien apagados (0). Así, puedes darle instrucciones al ordenador por medio de bits (cadenas de 0s y 1s). Sin embargo, esto resulta demasiado complejo.

Es por ello que se crearon los lenguajes de programación de alto nivel, para escribir código legible que será traducido al lenguaje máquina (binario). Es decir, para que sean intermediarios entre los desarrolladores y el hardware.

Tipos de lenguajes de programación

Existen diferentes lenguajes de programación, los cuales están clasificados según su proximidad al hardware o al usuario.

Tipos de lenguajes de programación

Tipos de lenguajes de programación

En ese sentido, y aunque no hay una clasificación exacta, existen dos tipos de lenguajes de programación: de bajo nivel y alto nivel.

No te puedes perder:  6 nuevos lenguajes de programación creados para la nube, IA y Bitcoin
Lenguajes de bajo nivelLenguajes de alto nivel
Gestión de memoria directa.Necesitan ser interpretados o compilados.
Dependen del hardware.Son independientes del hardware.
Ejecución más rápida.Menor rendimiento.
Difícil de leer y escribir.Sintaxis flexible y fácil de leer.
Poco apoyo y difíciles de aprender.Gran comunidad detrás.

Aunque, para algunos, existen también los lenguajes de medio nivel.

Lenguajes de programación de bajo nivel

Los lenguajes de bajo nivel son aquellos que están más próximos al lenguaje de máquina (de ceros y unos). Es decir, tienen un control directo sobre el hardware.

A diferencia de los lenguajes de alto nivel, no necesitan compiladores. En cambio, se ejecutan directamente en el procesador y dependen de la arquitectura del hardware.

Los programas que se crean con estos lenguajes de bajo nivel dependen totalmente del hardware. Por esta razón, no se pueden migrar o utilizar en otras máquinas.

Además, pese a que aprovechan mejor las características del hardware, son los tipos de lenguajes más difíciles de entender y aprender.

Existen dos tipos de lenguajes de bajo nivel: máquina y ensamblador.

a. Lenguaje de máquina

El lenguaje de máquina es aquel que es interpretado directamente por el procesador, por lo que su ejecución es mucho más rápida.

Así mismo, consta de cadenas de números binarios (0s y 1s). Por esta razón, programar en este lenguaje es una tarea difícil que requiere una gran inversión de tiempo.

Lenguaje de máquina

Lenguaje de máquina

Cabe destacar que los programas escritos en este lenguaje no necesitan ser traducidos, pues es el único lenguaje que el procesador entiende directamente.

Además, pese a que hace un uso eficiente de la memoria, encontrar un fallo en el lenguaje de máquina es una tarea casi imposible.

No te puedes perder:  Los 7 mejores IDE para programar en Java

b. Lenguaje ensamblador

El lenguaje ensamblador (assembler o asm) no es más que códigos mnemotécnicos (abreviaturas de letras y números) de las instrucciones máquina (binario).

En consecuencia, los programas escritos en ensamblador se traducen a código máquina de forma inmediata.

Lenguaje ensamblador

Lenguaje ensamblador – Imagen: Android Authority

Por otro lado, este lenguaje de bajo nivel depende estrictamente del tipo de procesador utilizado. Es por ello que programar en ensamblador requiere conocer, en forma detallada, las especificaciones del hardware.

De igual manera, el software escrito en este lenguaje resulta ser poco o nada portable. Aunque, como ventaja, ocupa menos memoria, es más fácil de depurar y su código fuente resulta más corto.

Lenguajes de programación de alto nivel

Los lenguajes de alto nivel están más próximos al lenguaje humano y más alejados de la máquina. Por lo tanto, resultan más fáciles de entender y son más flexibles a la hora de programar.

Además, este tipo de lenguaje de programación es traducido al lenguaje máquina mediante un intérprete o compilador.

Así mismo, al ser independientes del hardware, los programas escritos en estos lenguajes de alto nivel pueden ejecutarse en diferentes plataformas (Windows, Linux, etc.)

Lenguajes de alto nivel

Lenguajes de alto nivel – Imagen: makeitreal.camp

Por otro lado, al existir una gran cantidad de lenguajes de alto nivel, su clasificación es muy diversa.

Sin embargo, aquí vamos a señalar dos tipos de lenguajes de alto nivel: lenguajes compilados e interpretados.

a. Lenguajes compilados

Los lenguajes compilados son aquellos que son traducidos al lenguaje de máquina (cadenas de bits) de una sola vez.

En consecuencia, cada modificación que realices en el código fuente requiere volver a compilar (traducir a código máquina) todo.

Lenguajes compilados

Lenguajes compilados – Imagen: overiq.com

Sin embargo, hay algunos lenguajes como Java que primero compilan a bytecode (un código intermedio) y luego es interpretado a máquina.

No te puedes perder:  15 ejemplos de lenguajes de programación y su código "Hola Mundo"

Por otro lado, a diferencia de los lenguajes interpretados, los programas escritos en un lenguaje compilado tienen un rendimiento ligeramente superior y están optimizados para su ejecución.

Ejemplos: C, C++, Ada, ALGOL, Delphi, Fortran, Java, Lisp, Pascal, Perl, Go, Scala, Swift, Rust, entre otros.

b. Lenguajes interpretados

Los lenguajes interpretados son traducidos, instrucción por instrucción, al lenguaje máquina. Es decir, empieza por la primera línea de código, pasa a la siguiente y así hasta traducir todo el código.

Este tipo de lenguaje de alto nivel facilita las cosas al programador, ya que el código es convertido a máquina a medida que es ejecutado. Sin embargo, son más lentos que los lenguaje compilados.

Lenguajes interpretados

Lenguajes interpretados – Imagen: overiq.com

De todas formas, tienen la ventaja de que no dependen de la máquina donde se ejecuta el intérprete.

Ejemplos: Ruby, Python, JavaScript, PHP, VBScript, etc.