Algoritmia y programación


Historia

 

Para iniciar el estudio de la lógica de programación es conveniente descubrir el origen de la programación, empezando por los primeros algoritmos o procesos utilizados en distintas máquinas con el fin de procesar datos y obtener resultados.

 

Euclides en el año 300 a.C, estructuró el algoritmo que lleva su nombre y que es usado en el mundo de las matemáticas y la computación para obtener el Máximo Común Divisor (MCD). Al-Khwarizmi o Al-Juarismi (750 - 850 d.C.), matemático y astrónomo persa, considerado el padre del álgebra, escribió las reglas para realizar las operaciones básicas de la aritmética llamadas la Reglas de al-Khwarizmi; de este personaje se deriva el término algoritmo. Leonardo de Pisa, también conocido como Leonardo Fibonacci, hacia el año 1202 escribe el algoritmo para obtener la sucesión de los números de Fibonacci.

 

Blaise Pascal en 1642 inventa la pascalina, máquina que servía para sumar y restar. La pascalina tenía el tamaño de una caja de zapatos y era baja y un tanto alargada. Su mecanismo estaba constituido por una serie de ruedas dentadas que estaban conectadas entre sí, formando de esta forma una cadena de transmisión, de modo tal que, cuando una rueda giraba completamente sobre su eje, hacía avanzar un grado a la siguiente. Estas diferentes ruedas que se encontraban dentro de la pascalina tenían como función representar el sistema decimal de numeración. Cada rueda constaba de diez pasos, por lo que se encontraba también marcada con números que iban del 9 al 0. En total constaba de ocho ruedas, seis de ellas se utilizaban para representar los números enteros y dos ruedas más, en el extremo izquierdo, para representar los números decimales. Con esta disposición se podían manejar números enteros entre 0,01 y 999 999,99. Por medio de una manivela, las ruedas dentadas podían girar para lograr de esta manera sumar o hacer restas. Si se necesitaba restar un número, lo que se debía de hacer era poner a funcionar la manivela en el sentido opuesto.

Gottfried Wilheml von Leibniz (1646-1716, construyó una máquina similar a la de Pascal, aunque algo más compleja, podía dividir, multiplicar y calcular raíces cuadradas.

 

Esas primeras máquinas marcan un inicio, sin embargo, las mismas eran máquinas de cálculo, quien realmente influyó en el diseño de los primeros computadores fue Charles Babbage (1793-1871).  Con la colaboración de la hija de Lord Byron, Lady Ada Countess of Lovelace (1815-1852), a la que debe su nombre el lenguaje ADA creado por el Departamento de defensa de Estados Unidos, en los años 70. Babbage diseña y construye la "máquina diferencial" para el cálculo de polinomios. Más tarde diseñó la "máquina analítica" de propósito general, capaz de resolver cualquier operación matemática. Murió sin poder terminarla, debido al escepticismo de sus patrocinadores y a que la tecnología de la época no era lo suficientemente avanzada. Un equipo del Museo de las Ciencias de Londres, en 1991, consiguió construir la máquina analítica de Babbage, totalmente funcional, siguiendo sus dibujos y especificaciones.

La insigne matemática Ada Lovelace propuso la utilización de las tarjetas perforadas en la máquina de Babbage, siendo considerada como la primera programadora de la historia del conocimiento humano. En 1880 el censo en Estados Unidos tardó más de 7 años en realizarse. Un asistente de la oficina del censo llamado Herman Hollerit (1860-1929) desarrolló un sistema para automatizar la pesada tarea del censo. Mediante tarjetas perforadas y un sistema de circuitos, capaz de leer unas 60 tarjetas por minuto realizó el censo de 1890 en 3 años. Más tarde funda la Tabulating Machine Company y en 1924 tras una fusión nace la Internacional Bussines Machines, IBM.

 

Las computadoras como tales se basan en la lógica matemática en sistema binario. Dicho sistema se implementa sobre dispositivos electrónicos que permiten, o no, pasar la corriente, con lo que se consiguen los 2 estados binarios: 0 y 1. Las primeras computadoras digitales, utilizaban tubos de vacío para implementar los 2 estados binarios, pero es importante recalcar que fue Alan Mathison Turing (1912-1954) quien diseñó una calculadora universal para resolver cualquier problema, la "máquina de Turing". Tuvo mucha influencia en el desarrollo de la lógica matemática. En 1937 hizo una de sus primeras contribuciones a la lógica matemática y en 1943 plasmó sus ideas en una computadora que utilizaba tubos de vacío. George Boole (1815-1864) también contribuyó al algebra binaria y a los sistemas de circuitos de computadora, de hecho, en su honor fue bautizada el álgebra booleana.

 

Las primeras computadoras se programaban en lenguaje máquina, surgen a partir de la segunda guerra mundial como fue el caso de ENIAC. Siendo el primer computador de propósito general basado en circuitos electrónicos que podía programarse para la ejecución de diferentes operaciones. La programación de esas máquinas consistía entonces 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.

 

El código máquina es una secuencia de unos y ceros que se introduce o carga directamente en la memoria del computador para su posterior ejecución. En 1950 Mauricio Wilkes de la Universidad de Cambridge inventó el lenguaje ensamblador para simplificar la programación haciéndola más comprensible mediante el uso palabras en vez de unos y ceros, a cada una de esas palabras se les llamaba 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.

 

En cuanto a la aparición de los lenguajes de programación, el conocido lenguaje COBOL, fue el primer lenguaje en el que no había que programar directamente en código binario, y se debe a la destacada científica computacional y militar nacida en Nueva York, Grace Murray Hoper quien en 1951, implementó el primer compilador para un lenguaje de programación, el compilador es un programa que puede traducir los enunciados del lenguaje de programación en un código binario comprensible para la máquina.

 

A partir de ahí, los avances han sido vertiginosos. La utilización del transistor en las computadoras en 1958, sustituyendo los tubos de vacío. La aparición del circuito integrado de mano de Jack Kilby, también en 1958. La miniaturización de un circuito electrónico en un chip de silicio en 1961, el primer microprocesador, el 4004 de Intel, en 1971 y Gary Kildall crea el sistema operativo CP/M en 1973.

La comercialización de software para los usuarios se inicia en 1978. ADA fue dado a conocer en 1980, creado por encargo del Departamento de Defensa de los Estados Unidos, es un lenguaje multipropósito y con aplicación en el desarrollo de sistemas de seguridad y aeronáutica.

 

Hacia 1981 IBM hace historia con el lanzamiento de un nuevo PC basado en el procesador Intel 8088, su memoria RAM era de 64 KB con posibilidad de expansión a 256 KB. Tenía una unidad de diskette de 5 1/4 pulgadas y sin disco duro. Su sistema operativo era el MS-DOS, MicroSoft Disk Operating System, que se inicializaba desde un disco flexible. Un año después se popularizan los computadores clones de IBM.

En el año 1983 sale el Lenguaje C++, una evolución del Lenguaje C orientado a objetos.

En 1984, Apple lanza el Macintosh. Su software, basado en íconos y con una interfaz gráfica tuvo bastante éxito y forzó a microsoft hacia la búsqueda y desarrollo del sistema operativo Windows que empieza a comercializarse en 1985.

En el año 1990 Windows evoluciona a la versión 3.0. En Finlandia, en el año 1991, nace para el mundo de la computación el sistema operativo Linux, su creador fue Linus Torvalds. También nacen en este año los lenguajes Python y Visual Basic. Python tiene una curva de aprendizaje rápida y permite el desarrollo de diferentes tipos de aplicaciones. Visual Basic es una evolución del Basic, siendo considerados lenguajes de propósito general.

Para el año 1993, surge la WWW (World Wide Web). Con ello y a través de múltiples hipertextos y links o enlaces se evoluciona a la era de la información y comunicación digital.

 

El concepto de WEB 2.0 y sus nuevos servicios es conocido aproximadamente en el mundo en el año 2004. La Web 2.0 es la transformación que se experimenta por medio de Internet al pasar de páginas web estáticas a páginas interactivas, donde los usuarios no solo obtienen información, sino que pueden interactuar con otros usuarios de la red y producir sus propios contenidos. 

Producto de esta revolución digital nacen sitios como Wikipedia, YouTube, Flickr, My Space, Blogger, WordPress, Facebook, LinkedIn, Twitter, Tuenti, servicios de Google y muchos más.