Lenguajes de programacion de bajo nivel VS alto nivel
11
diciembre
2020

El código máquina

Los primeros ordenadores electrónicos programables surgieron a partir de la segunda guerra mundial como fue el caso de ENIAC. Aquel fue el primer ordenador de propósito general basado en circuitos electrónicos que podía reprogramarse para la ejecución de diferentes operaciones.

La programación de aquellas máquinas consistía entonces (1945-1955) en la configuración manual de interruptores y la interconexión de diferentes componentes electrónicos mediante cables. Las operaciones fueron realizadas y perfeccionadas por un grupo de mujeres que se convirtieron en las primeras programadoras de la historia.

Lenguajes de programacion de bajo nivel VS alto nivel mujeres programadoras

En años sucesivos se desarrollaron ordenadores más potentes (Mark I, Mark II, Colossus )  en los que los programas continuaban siendo ceros y unos que se configuraban mediante interruptores 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.

Consola de control basada en interruptores luces
Consola de control basada en interruptores luces
Tarjeta perforada con programa inscrito
Tarjeta perforada con programa inscrito

El código máquina es una secuencia de unos y ceros que se introduce o carga directamente en la memoria del ordenador para su posterior ejecución.

Si estás interesado en ampliar tus conocimientos sobre Lenguajes de Programación, visita nuestros Cursos de Programación. Comprueba con nuestra ayuda cuáles se podrían adaptan mejor a tus aspiraciones laborales.

El lenguaje ensamblador


En 1950 Mauricio V. 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 nemónicos. El lenguaje ensamblador se basa en el uso de nemónicos acompañados de argumentos y etiquetas que son convertidos mediante un programa ensamblador a código máquina:

lenguaje ensamblador

Cada nemó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.

Los lenguajes de bajo nivel


Los como el código máquina y el ensamblador son denominados lenguajes de bajo nivel.

Estos lenguajes se caracterizan por ofrecer al programador control total sobre el hardware en el que se ejecuta permitiendo conseguir el máximo de la velocidad y capacidades del ordenador.

Sin embargo, tienen como desventaja que son exclusivos del ordenador o plataforma en la que se ejecutan y requieren un alto grado de especialización por parte del programador.

Si estás interesado en ampliar tus conocimientos sobre Lenguajes de Programación, visita nuestros Cursos de Programación. Comprueba con nuestra ayuda cuáles se podrían adaptan mejor a tus aspiraciones laborales.

Los lenguajes de alto nivel


A partir de 1950 comienzan a aparecer toda una sucesión de lenguajes para diferentes propósitos. Son los lenguajes de alto nivel.

lenguajes de alto nivel

La sintaxis de estos lenguajes se aproxima cada vez más al lenguaje natural y su estructura evoluciona para permitir nuevos paradigmas como la programación estructurada, orientada a objetos, funcional. De igual modo, el tratamiento de los datos en los programas evoluciona hacia el uso estructuras más complejas y de carácter dinámico como listas, pilas, colas, mapas, etc.

Los lenguajes de alto nivel buscan ser independientes del hardware en el que se ejecutan, ocultando sus complejidades al programador para que pueda centrarse en el problema a resolver. De este modo se consigue también que sean multiplataforma de modo que pueden ejecutarse en diferentes máquinas a pesar de sus diferencias internas.

 
Lenguajes compilados, interpretados y administrados.  


Los ordenadores sólo son capaces de ejecutar internamente código máquina, por lo que el código de alto nivel (código fuente) 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 entre otros:

Ejecucion de lenguajes compilados e interpretados
Ejecución de lenguajes compilados e interpretados

Si estás interesado en ampliar tus conocimientos sobre Lenguajes de Programación, visita nuestros Cursos de Programación. Comprueba con nuestra ayuda cuáles se podrían adaptan mejor a tus aspiraciones laborales.

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 ( JVM ) que lo interpreta y ejecuta de manera administrada.

lenguajes interpretados

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

Los lenguajes de medio nivel


SI bien ésta es una denominación no plenamente aceptada; se denominan lenguajes de medio nivel a aquellos que a pesar de poseer una sintaxis de alto nivel y permitir el manejo de datos mediante estructuras dinámicas, permiten igualmente manejar directamente aspectos del hardware tales como acceder directamente a los registros del procesador o la memoria del sistema. Tal es el caso de lenguajes como C.

Si estás interesado en ampliar tus conocimientos sobre Lenguajes de Programación, visita nuestros Cursos de Programación. Comprueba con nuestra ayuda cuáles se podrían adaptan mejor a tus aspiraciones laborales.

Author

Ángel Aguinaga

Profesor de Programación y Bases de Datos de la Sede Bilbao. Formador experimentado en áreas como .Net, Java, BB.DD., Python, Desarrollo y programación Web.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Recibe de primero nuestras ofertas de empleo y noticias