dev-resources.site
for different kinds of informations.
Entiende de una vez los lenguajes de alto y bajo nivel
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 en el cual subo contenido relacionado a la programaci贸n 馃悽
Featured ones: