Logo

dev-resources.site

for different kinds of informations.

Entiende de una vez los lenguajes de alto y bajo nivel

Published at
8/16/2023
Categories
cobol
dotnet
javascript
java
Author
wiar8
Categories
4 categories in total
cobol
open
dotnet
open
javascript
open
java
open
Author
5 person written this
wiar8
open
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 馃悽

cobol Article's
30 articles in total
Favicon
Modernizing COBOL Applications for Free: A Practical Guide with GnuCOBOL
Favicon
COBOL Interpreter
Favicon
COBOL Tutorial Series: DB2 vs SQL Server Architecture Comparison - Session 7
Favicon
COBOL Tutorial Series: Install the DB2 on Windows/Linux - Session 6
Favicon
COBOL Tutorial Series: Working with Database - Session 5
Favicon
COBOL Tutorial Series: Condition (IF, ELSE) statement - Session 3
Favicon
COBOL Tutorial Series: A calculation program - Session 2
Favicon
COBOL Tutorial Series: Loop statements - Session 4
Favicon
COBOL Tutorial Series: Developing Without a Mainframe - Session 1
Favicon
Warum?
Favicon
Awesome COBOL!
Favicon
#12in24: Learning COBOL in 1h.
Favicon
The World Depends on 60-Year-Old Code No One Knows Anymore 馃懘馃徎馃殌
Favicon
Tests Everywhere - COBOL
Favicon
COBOL: El Lenguaje de Programaci贸n que Desaf铆a el Paso del Tiempo
Favicon
Entiende de una vez los lenguajes de alto y bajo nivel
Favicon
How Did You Get Started with COBOL?
Favicon
How to make an XML element optional in a Cobol provider webservice (DFHLS2WS), based on a Cobol structure
Favicon
How to create a flexible number of xml-elements in a cobol provider webservice (DFHLS2WS), starting from a cobol-structure.
Favicon
Advent of Code, but differently
Favicon
Covid led me to my first open-source contribution
Favicon
Test Driven Design in COBOL
Favicon
OpenCobolIde "no compiler found or not working"
Favicon
Mainframe Interview Experience with XYZ Bank | Jan 2022
Favicon
100 Languages Speedrun: Episode 50: COBOL
Favicon
COBOL gets a hip replacement
Favicon
How to deal with COBOL REDEFINES?
Favicon
They're still talking COBOL
Favicon
Video and Q&A: Learn how COBOL and open source are used in modern mainframe ecosystem
Favicon
Programming language full forms and definition

Featured ones: