
1. El inicio de la programación en maquinas y computadores abstractos
1.1. Charles Babbage y Ada Lovelace
1.1.1. En los año 19840 Charles bobbage diseño un motor analitico que funcionaba como maquina de calcular programable, destacaba que podia realizar saltos condicionales y bucles.
1.1.1.1. A pesar del trabajo de charles era algo complejo y tardado, murio 30 años depues, dejando solo una pieza termindada. Con esto esta la colaboracion con Ada lovelace, una fisica-matematica y escritora, se dedico a estudiar el diseño y funcion del motor anallitico.
1.1.1.1.1. En 1843 descubrio en este motor añadia reflexiones propias, con base de tablas y diagramas podia tener una secuencia de los numeros de Bernoulli, gracias a esto se considero como el primer programa de computador.
1.2. Maquina de Turing
1.2.1. En 1936, Alan Turing formalizo una idea abstracta de un computador, un tipo escaner que lee 1 y 0 y que los interpreta en una cinta infinita.
1.2.1.1. En base a este trabajo de Turing, se exploro la idea de las cosas computables y no computables, practicamente resolver problemas con algoritmos.
1.2.1.1.1. Tambien se definio el concepto de maquina universal, lo que significaba leer datos en un lado y en otro poder interpretarlos de la manera que se especificara un algoritmo.
2. Primer computador real y los lenguajes de programación
2.1. Primer computador
2.1.1. En en año 1948, la universidad de Manchester construyo su primer computador electrónico digital, diseñado por Max Newmann con ayuda de los ingenieros F.C Williams y Tom Kilburn.
2.1.1.1. Esta maquina trabajaba con un conjunto de instrucciones completas capaces de realizar saltos, condicionales y direccionamiento indirecto.
2.1.1.1.1. Turing formo parte del uso de este equipo y se pudo realizar los primeros programas de IA, interpretados como un jugador de damas y más tarde un jugador de ajedrez.
2.2. Primeros lenguajes de programacion de bajo nivel
2.2.1. Los computadores usaban un lenguaje de de nivel elevado que era el lenguaje ensamblador, en codigo hexadeciamal trabajaba.
2.2.1.1. En 1951, con la venta de estos computadores se vio en la necesidad de poder ser usables teniendo detras un lenguaje que pudiera ayudar en distintos problemas como matematicos, combinatorios o de ordenación.
2.3. Lenguajes de alto nivel
2.3.1. Despues del lenguaje ensablador, llegaron dos lenguajes de alto nivel que tendrian distinto enfoque de resolver problemas.
2.3.1.1. FORTRAN llego en 1956, creado por IBM y dirigido por Jhon W. Barkus, era un lenguaje imperativo, con estructurad de control, contador de programas. Su principal uso era traducir de forma clara y sencilla problemas matematicos en forma de codigo que este entendiese.
2.3.1.1.1. Lisp llego en 1958, creado por MIT y dirigido por Jhon McCarthy, era un lenguaje funcional con funciones, recursion, listas y simbolos, su principal uso era el procesamiento de listas de datos, en oraciones estructuradas que representaran información sobre el mundo, de aqui nacio una estructura que hoy se conoce como if-else