miércoles, 17 de enero de 2018

¿EN QUÉ LENGUAJE HABLAS, MÁQUINA?

Para que haya una comunicación es necesario un emisor, un receptor, un mensaje y un código entre otros. En esta ocasión nos interesa investigar el código que podemos utilizar para comunicarnos con nuestro ordenador.

A lo largo del tiempo han ido apareciendo diversas variantes en función de las necesidades de los ordenadores empleados. Lo cierto es que, en los inicios de la computación, primero se creaban los ordenadores y después se generaban los lenguajes que los manejaban.

El primer programa de ordenador se atribuye a Ada Loveloce en 1843, gracias unas notas añadidas a la traducción de un trabajo de Luigi Menabrea sobre la máquina analítica de Charles Babbage. Estamos hablando de máquinas que empleaban dispositivos mecánicos, no electrónicos. Este primer programa era una nota en la traducción, donde se describía una forma mecánica de calcular los números de Bernouilli. Os recomiendo que visitéis la alternativa en forma de cómic a esta interesante historia.



La siguiente generación de lenguajes serán tarjetas perforadas en superordenadores, allá por 1943. Como podéis imaginar, su uso era principalmente militar. De esta época datan los Z3 alemanes de Konrad Zuse, el Colossus inglés o los Mark1 y Eniac estadounidenses. Todas eran máquinas electromecánicas que, en su mayoría, empleaban tarjetas perforadas como medio de programación. No existía un lenguaje como tal, sino que se empleaba la lógica de la electromecánica para generar un código comprensible para la máquina. Otro dato interesante es que la mayoría de los programadores de estas máquinas eran mujeres, muy al contrario de la tendencia actual.


En 1948 el ingeniero Nathaniel Rochester desarrolló el primer lenguaje de programación de bajo nivel o sea, cercano a las operaciones de la máquina, para el primer ordenador de propósito general producido en serie, el IBM 701. El nombre de su lenguaje era ensamblador y consistía en dar nombre a los distintos pasos que las máquinas desarrollaban en su tarea. Estos pasos son lo que, comúnmente, se denomina código máquina.

A continuación aparecerían lenguajes de alto nivel, más cercanos al lenguaje del ser humano. De este tipo serán el LISP, un lenguaje de listas; el COBOL, el lenguaje del mundo financiero; el FORTRAN, el primer compilador; y el ALGOL, el primer lenguaje estructurado.

A partir de esta época surgieron multitud de lenguajes y el estudio  de la programación provocó un rico ecosistema, donde los paradigmas de programación luchaban por sobrevivir en una evolución darwiniana.

El lenguaje C empezó a establecerse como un importante ejemplo de las características de programación estructurada, obligando a seguir unos esquemas preestablecidos para los elementos, y en camino intermedio entre los lenguaje s de alto nivel y el bajo nivel.

Tan importante fue la influencia de este lenguaje, que su heredero no cambió de nombre y se llamó C++, recordando el inmenso poder que su figura paterna mantuvo. Con este lenguaje, y otros, se introdujo el paradigma actual de programación orientada a objetos (POO), donde los objetos reales tienen su equivalente en el programa y poseen características, realizan acciones y responden al entorno mediante eventos.

Al mismo tiempo se establece la idea de realizar varias operaciones simultáneamente, lo que se conoce como multitarea. La aparición de máquinas multinúcleo reforzará esta idea que surge en primer lugar en el software como partición de tiempos de uso del procesador.

En la herencia de C figuran lenguajes como JAVA, Javascript y Android. En este punto aparece Internet y revoluciona el mundo de la programación con el paradigma de la multiplataforma, es decir, desarrollar programas que corren en varios sistemas operativos. Ahora no vale con programar para una computadora, sino que se hacen programas para todos los ordenadores. En este punto aparecen conceptos como la máquina virtual.

Pero esto será en otra ocasión. Os invito a enviar los comentarios y a que sigáis investigando sobre este apasionante mundo.

J. Carlos Avendaño
Club Tecnológico

No hay comentarios:

Publicar un comentario