Entiende de una vez los lenguajes de alto y bajo nivel
Tags: cobol, dotnet, javascript, java
Published: 2023-08-16 02:09:46

Las primeras computadoras electrónicas programables nacieron a partir de la segunda guerra mundial, como fue el caso de ENIAC. Aquel fue la primera computadora de propósito general basada en circuitos electrónicos que podía reprogramarse para la ejecución de diferentes operaciones.

En los siguientes años se desarrollaron computadoras más potentes (Mark I, Mark II, Colossus) en los que los programas seguían siendo 0 y 1 que se configuraban mediante botones y relés. Esta forma de programación se denominaba binaria y el código introducido era lo que se denomina código máquina.

# El lenguaje ensamblador

En 1950 Maurice Vincent Wilkes de la Universidad de Cambridge inventó el lenguaje ensamblador en un intento de simplificar la programación, haciéndola más comprensible mediante el uso palabras en vez de unos y ceros denominados mnemónicos. El lenguaje ensamblador se basa en el empleo de mnemónicos acompañados de argumentos y etiquetas que son convertidos mediante un programa ensamblador a código máquina.

Cada mnemónico representa una operación ligada al hardware que lo ejecuta. Estas pueden ser operaciones aritméticas, de salto en la secuencia de ejecución, de lectura y escritura en registros del procesador, memoria interna, puertos de entrada/salida.

## Lenguajes de bajo nivel.

Son lenguajes totalmente dependientes de la máquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras máquinas.

Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las características del mismo.

Estos lenguajes son extremadamente rápidos y eficientes, pero su problema está en que tienen una complejidad gigante, y además de esto también son muy verbosos a la hora de desarrollar con ellos, por consecuencia se generan archivos con muchas líneas de código.

Los desarrolladores, al encontrarse con la poca practicidad de estos lenguajes tanto para aprenderlos como para usarlos, decidieron "crear" una solución a este problema...

## Lenguajes de alto nivel

Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina.

Están dirigidos a solucionar problemas mediante el uso de EDD's.

---

> Nota:
> EDD's son las abreviaturas de Estructuras Dinámicas de Datos, algo muy empleado en todos los lenguajes de programación. Son estructuras que pueden cambiar de tamaño durante la ejecución del programa. Nos permiten generar estructuras de datos que se adapten a las necesidades reales de un programa.

---

Estos lenguajes se encuentran relativamente bastante lejos del núcleo de la PC. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo de problema.

## Lenguajes de Medio nivel

Se trata de un término no aceptado por todos, pero que seguramente habrás oído. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría situarse, ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel.

# Lenguajes compilados, interpretados y administrados

Las PC's solo son capaces de ejecutar internamente código máquina, por lo que el código de alto nivel debe convertirse en código de bajo nivel para su ejecución.

Existen diferentes estrategias para ello:

Los lenguajes compilados son aquellos que emplean compiladores para traducir el código fuente en código máquina para ser ejecutado directamente por el ordenador. Este es el caso de lenguajes como C, C++ o Pascal.

Los lenguajes interpretados son ejecutados por un intérprete que va convirtiendo poco a poco el programa fuente en código máquina a la vez que lo ejecutan. Este es el caso de lenguajes como PHP, Python o JavaScript.

La ventaja de los lenguajes interpretados, es que al ser ejecutados por el intérprete, su ejecución está supervisada y es más confiable. Sin embargo, su velocidad de ejecución es inferior a los lenguajes compilados y requieren además de la instalación del intérprete. No obstante, en ambos casos es necesaria la creación de compiladores o intérpretes para cada plataforma.

Por último, están los lenguajes administrados. Este es el caso de lenguajes como Java, o C# y Visual Basic .NET. Estos lenguajes son compilados a un lenguaje intermedio o bytecode que es más próximo a un código de bajo nivel, pero independiente de la plataforma. Este código es ejecutado por una máquina virtual que lo interpreta y ejecuta de manera administrada.

En este caso el código puede compilarse en cualquier plataforma, pero para la ejecución en una determinada plataforma debe tenerse instalada la máquina virtual correspondiente.

# Conclusión

Los lenguajes de programación están diseñados para ayudarnos a resolver problemas que nos encontramos al crear software, estos pueden ser de bajo nivel o alto nivel, también pueden ser compilados, interpretados o administrados y dependiendo de estas características y también del propósito del lenguaje, cada uno funcionara para realizar distintas cosas:

- Crear sistemas operativos.

- Crear sitios web.

- Implementar IoT

- Etc.

😁 Si este post te ha gustado, puedes seguirme en mi canal de [YouTube](https://www.youtube.com/c/wiar8) en el cual subo contenido relacionado a la programación 🐢