Está en la página 1de 14

GRANTES: HERNANDEZ CASTILLEJOS DIEGO ALONSO

GONZALEZ BAUTISTA CHRISTIAN


GARCIA JIMENEZ JONATHAN YAIR

RIA: PROGRAMACION

A: 12/9/2022
DESARROLLO HISTÓRICO DE LA
PROGRAMACIÓN
Sobre los últimos 50 años, los idiomas que programan han evolucionado del código binario de máquina a herramientas
poderosas que crean las abstracciones complejas. Es importante entender por qué los idiomas han evolucionado, y qué
capacidades que los idiomas más nuevos nos dan.
Tan largo como no había máquinas, programar era ningún problema; cuando tuvimos unos pocas computadoras débiles,
programar llegó a ser un problema templado y ahora que tenemos las computadoras gigantescas, programar ha llegado a ser un
problema igualmente gigantesco. En este sentido que la industria electrónica no ha resuelto un solo problema, tiene sólo los
creó - ha creado el problema de usar su producto.

E. W. Dijkstra habló estas palabras proféticas casi hace 28 años en su es la conferencia del Premio de Turing. En aquel
momento, el 'las computadoras gigantescas él radio de probablemente tenido entre 64 y 128 kilobytes de la memoria verdadera,
y a lo más unos pocos megaoctetos de artefactos de almacenamiento de acceso directo. Si él pensó que el problema era
gigantesco entonces...
Uno de las llaves a programar exitoso son el concepto de la abstracción. La abstracción es la llave a la construcción sistemas
complejos de software. Como el tamaño de nuestros problemas crece, la necesidad para la abstracción dramáticamente
aumentos. En sistemas sencillos, característica de idiomas usados en el 1950s y '60s, un solo programistas podría entender el
problema entero, y por lo tanto manipula todas estructuras del programa y datos. Los programación son hoy incapaces de
entender todos los programas y los datos - es apenas demasiado grande. La abstracción se requiere a permitir que el
programistas para agarrar los conceptos necesarios.
La mayoría de los libros y el reglamento en la historia de programar los idiomas tienden a discutir los idiomas en términos de
generaciones. Esto es un arreglo útil para clasificar los idiomas por la edad.
PRIMERA
GENERACIÓN
Al desarrollarse las primeras computadoras electrónicas, se vio la
necesidad de programarlas, es decir, de almacenar en memoria la
información sobre la tarea que iban a ejecutar. Las primeras se usaban
como calculadoras simples; se les indicaban los pasos de cálculo, uno
por uno.
John Von Neumann desarrolló el modelo que lleva su nombre, para
describir este concepto de “programa almacenado”. En este modelo, se
tiene una abstracción de la memoria como un conjunto de celdas, que
almacenan simplemente números. Estos números pueden representar
dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el
programa en sí.
¿Cómo es que describimos un programa como números? Se tenía el
problema de representar las acciones que iba a realizar la
computadora, y que la memoria, al estar compuesta por switches
correspondientes al concepto de bit, solamente nos permitía
almacenar números binarios.
La solución que se tomó fue la siguiente: a cada acción que sea capaz
de realizar nuestra computadora, asociarle un número, que será su Podemos ver que con esta representación, es simple expresar las
código de operación (opcode). Por ejemplo, una calculadora operaciones de las que es capaz el hardware (en este caso, nuestra
programable simple podría asignar los opcodes: calculadora imaginaria), en la memoria.
1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE. La descripción y uso de los opcodes es lo que llamamos lenguaje de
Supongamos que queremos realizar la operación 5 * 3 + 2, en la máquina. Es decir, la lista de códigos que la máquina va a interpretar
calculadora descrita arriba. En memoria, podríamos “escribir” el como instrucciones, describe las capacidades de programación que
programa de la siguiente forma: tenemos de ella; es el lenguaje más primitivo, depende directamente
del hardware, y requiere del programador que conozca el
funcionamiento de la máquina al más bajo nivel.
Los lenguajes más primitivos fueron los lenguajes de máquina. Esto, ya
que el hardware se desarrolló antes del software, y además cualquier
software finalmente tiene que expresarse en el lenguaje que maneja el
hardware.
La programación en esos momentos era sumamente tediosa, pues el
programador tenía que “bajarse” al nivel de la máquina y decirle, paso
a pasito, cada punto de la tarea que tenía que realizar. Además, debía
expresarlo en forma numérica; y por supuesto, este proceso era
propenso a errores, con lo que la productividad del programador era
muy limitada. Sin embargo, hay que recordar que en estos momentos,
simplemente aún no existía alternativa.
SEGUNDA
GENERACIÓN
El primer gran avance que se dio, como ya se comentó, fue la abstracción dada por el Lenguaje Ensamblador, y con él, el nacimiento de las
primeras herramientas automáticas para generar el código máquina. Esto redujo los errores triviales, como podía ser el número que correspondía
a una operación, que son sumamente engorrosos y difíciles de detectar, pero fáciles de cometer. Sin embargo, aún aquí es fácil para el
programador perderse y cometer errores de lógica, pues debe bajar al nivel de la forma en que trabaja el CPU, y entender bien todo lo que sucede
dentro de él.
TERCERA
GENERACIÓN
Con el desarrollo en los 50s y 60s de algoritmos de más elevado
nivel, y el aumento de poder del hardware, empezaron a entrar al
uso de computadoras científicos de otras ramas; ellos conocían
mucho de Física, Química y otras ramas similares, pero no de
Computación, y por supuesto, les era sumamente complicado
trabajar con lenguaje Ensamblador en vez de fórmulas. Así, nació
el concepto de Lenguaje de Alto Nivel, con el primer compilador
de FORTRAN (FORmula TRANslation), que, como su nombre
indica, inició como un “simple” esfuerzo de traducir un lenguaje
de fórmulas, al lenguaje ensamblador y por consiguiente al
lenguaje de máquina. A partir de FORTRAN, se han desarrollado
innumerables lenguajes, que siguen el mismo concepto: buscar la
mayor abstracción posible, y facilitar la vida al programador,
aumentando la productividad, encargándose los compiladores o
intérpretes de traducir el lenguaje de alto nivel, al lenguaje de
computadora.

Hay que notar la existencia de lenguajes que combinan


características de los de alto nivel y los de bajo nivel (es decir,
Ensamblador). Mi ejemplo favorito es C: contiene estructuras de
programación de alto nivel, y la facilidad de usar librerías que
también son características de alto nivel; sin embargo, fue
diseñado con muy pocas instrucciones, las cuales son
sumamente sencillas, fáciles de traducir al lenguaje de la
máquina; y requiere de un entendimiento apropiado de cómo
funciona la máquina, el uso de la memoria, etcétera. Por ello,
muchas personas consideramos a lenguajes como C (que fue
diseñado para hacer sistemas operativos), lenguajes de nivel
medio.
CUARTA GENERACIÓN
Los idiomas de la cuarta generación parecen según las instrucciones a las de la tercera generación. Lo nuevo de
estas lenguajes son conceptos como clases, objetos y eventos que permiten soluciones más fáciles y lógicos.
Lenguajes como C++, java y C# se llaman lenguajes orientadas al objeto.

Los idiomas modernos, tal como C++ y Java, no sólo permite las abstracciones, pero permite la implementación
impuesta de restricciones en abstracciones. La mayoría de los idiomas modernos son objetivas orientado, que
permite que mí modele el mundo verdadero que usa mi idioma. Además, puedo limitar el acceso para modelar las
restricciones de mundo verdadero en datos. La llave es que usé el término “mundo verdadero”. Por la primera vez,
yo modelo mi solución en términos del problema. Quiero que mi solución sea orientado de problema, para que la
solución refleje el mundo verdadero en términos de estructuras de datos y acceso a los datos. Yo también puedo
aplicar directamente y para poder modelar objetos de mundo verdadero usando las clases (en C + + o Java).
QUINTA
GENERACIÓN
Como la quinta generación están conocidos los Lenguajes de
inteligencia artificial. Han sido muy valorados al principio de
las noventa - mientras ahora el desarrollo de software toma
otras caminos.

Lo que veremos en el futuro es menos dependencia en el


idioma, y más en el modelando herramientas, tal como el
Unificado Modelando el Idioma (UML). La salida del modelando
herramienta producirá mucho de nuestro código para nosotros;
en el muy menos, producirá arquitectónico y los modelos del
diseño y la estructura de nuestro código. Esto producirá un
diseño (y posiblemente código) eso puede ser validado por el
cliente antes de completar la implementación y probar. Cuando
los problemas diarios que resolvemos llegan a ser más grande,
nosotros tenemos cada vez menos tiempo “volver a hacer” el
código. Los días de decir, “acabamos de escribir una versión
de Beta y el cliente entonces pueden decir nosotros lo que
ellos quieren realmente, son pasados”. Las organizaciones que
fallan de obtener completa y corrige los requisitos de cliente
antes de escribir el código saldrá del negocio. ¿Por qué?
Porque toma demasiado largo, y cuesta también mucho, para
escribir código dos o más vez. Las organizaciones que tienen
un compromiso a la comprobación y la validación antes de
producir código prosperarán - los otros fallarán.
PERSONAJES HISTORICOS
Ada Lovelace

Augusta Ada King, más comúnmente conocida como Ada


Lovelace (la cual podemos ver en la imagen que
encabeza el artículo), fue una matemática inglesa y la
primera programadora de computadoras del mundo.
Sobre todo fue conocida por su trabajo sobre la máquina
calculadora mecánica de uso general de Charles
Babbage, la máquina analítica. Las notas que creó para
el desarrollo de dicha máquina analítica incluyen lo que
se podría reconocer hoy en día como el primer algoritmo
creado con el único propósito de ser procesado por una
máquina, o en otras palabras, el primer programa
informático.
Ada era una chica talentosa desde su infancia, con una
mentalidad poco común, que predijo que las
computadoras un día irían más allá de los calculos
numéricos, totalmente en contra de la opinión popular de
la época. La principal inspiración de Ada vino de su
padre y sin ella, quién sabe cuánto tiempo le tomaría a
una persona diseñar una aplicación informática. El
lenguaje informático Ada tiene ese nombre en su honor.
JAMES
GOSLING
James Arthur Gosling es un informático canadiense y un
oficial de la orden de Canadá. Él ha codificado un buen
número de aplicaciones informáticas, pero es ampliamente
conocido por la creación del lenguaje de programación más
popular de hoy en día, Java. Fue en 1994 cuando James
desarrolló el lenguaje Java, así como su maquina virtual
original  y su compilador. Él atribuye la creación del
lenguaje a su época de estudiante de posgrado, en la que
creó una máquina virtual p-code para el ordenador DEC VAX
del laboratorio, para que su profesor pudiera ejecutar
programas UCSD Pascal. Más tarde se dio cuenta que la
ejecución de la arquitectura-neutral para programas de
amplia distribución, podría lograrse mediante una técnica
similar.

James también ha hecho importantes contribuciones a


varios otros sistemas de software, tales como neWS y
Gosling Emacs. Debido a sus logros extraordinarios,
Gosling fue elegido miembro asociado de la Academia
Nacional de los Estados Unidos de Ingeniería. En 2015
recibió la medalla Von Newman de la IEEE por sus
contribuciones al desarrollo informático.
BILL GATES
Posiblemente el programador más famoso de todos los
tiempos. Bill Gates es un magnate de los negocios
estadounidenses, programador informático, pionero del
desarrollo del PC, inversionista y filántropo. Él es el co-
fundador, ex oficial ejecutivo y actual presidente de
Microsoft, que es la mayor compañía de software para
ordenadores personales del mundo. Bastante conocido por
llevar a cabo la revolución de los ordenadores personales y
por ( ayudar a desarrollar windows), el sistema operativo
más utilizado en el mundo.
Durante los primeros 5 años en Microsoft, además de
gestionar la parte comercial de la empresa, Gates también
supervisó personalmente cada código que se creó para su
sistema operativo. Se dice de él que es un maníaco
perfeccionista enemigo implacable de los bugs y errores.
Aparte de sus habilidades para la programación, es muy
reconocido por donar parte de su fortuna a acciones
benéficas como investigaciones sanitarias, acciones en
África... pero es muy criticado también debido a sus
tácticas comerciales anticompetitivas. Le pudimos ver
hace poco presentando el nuevo sistema operativo de
Microsoft, Windows 10.
GUIDO VAN
ROSSUM
Guido van Rossum es un programador holandés que desarrolló
el popular lenguaje de programación Python, que es
ampliamente utilizado en la actualidad. El hecho de crear
python  lo llevó a ser declarado BDFL (Benevolent Dictator for
Life), titulo otorgado por la comunidad de Python que significa
que continuará supervisando el proceso y desarrollo de Python
junto a la toma de decisiones importantes cuando sea
necesario, para siempre.

Rossum había desarrollado Python mientras trabajaba en


Google, donde también creó Mondrian (un sistema de revisión
de código utilizado internamente por Google) y Rietveld.
Después de trabajar para Google durante 7 años, ahora está
trabajando en Dropbox, el sistema de almacenamiento en la
nube. Rossum ha sido reconocido como un distinguido
ingeniero por la Association for Computing Machinery y
también recibió el Premio NLUUG en mayo de 2003.
KEN THOMPSON
Kenneth Lane Thompson, o simplemente Ken, como es
llamado por la comunidad hacker, es un pionero
americano de la informática. Thompson diseñó e
implementó originalmente el sistema operativo Unix y
también inventó el lenguaje de programación B (el
antecesor directo del archifamoso lenguaje de
programación C), y fue uno de los primeros
desarrolladores de los sistemas operativos Plan 9.

Desde 2006, Thompson también ha co-desarrollado el


lenguaje de programación Go mientras trabajaba en
Google. Otras contribuciones de Ken al mundo de la
programación han sido sus trabajos sobre las
expresiones regulares, la creación de algunos editores
de texto para el desarrollo de aplicaciones, la
definición de la codificación UTF-8 y la creación de
varios sistemas informáticos programados para jugar
al ajedrez, como Belle.
NIKLAUS
WIRTH
Niklaus Wirth Emil es un informático suizo que es
considerado como el padre de la programación moderna
tal y como la conocemos hoy en día, entre otros campos
de la ingeniería de software. Él es bastante conocido por
la creación de varios lenguajes de programación,
incluyendo el popular pascal, Euler, Algol W, Modula,
Modula-2, Oberon, Oberon-2 y Oberon-07. También diseñó
el lenguaje de programación PL / 0 para ilustrar el diseño
del compilador que sirvió de base para muchas otras
clases de compiladores.
Niklaus había trabajado previamente como parte del
equipo de diseño e implementación de los sistemas
operativos de Lilith y Oberon. El trabajo y el desarrollo de
estos lenguajes de programación como pionero de la
técnica le sirvieron a Wirth para ganar el prestigioso
Premio Turing en 1984. Se retiró del mundo de la
informática en 1999 y disfruta de su jubilación en Suiza.
BLAISE
PASCAL
Fue un matemático francés del siglo XVII,
fue el creador de una de las calculadoras
mecánicas más antiguas, la Pascalina. La
maquina servía al inicio para sumar, pero
más tarde Pascal agrego aditamentos
para que permitiera restar.

Lo interesante de la Pascalina, es que es


una maquina mecánica de engranes y
ruedas, que permitían sumar o restar. La
maquina tenía 8 ruedas (6 para los
enteros y 2 para los decimales) cada una
con el número del 0 al 9; la Pascalina al
momento de sumar el 1 al 9, la rueda que
contenía el 9 se convertía en un 0, y la
rueda vecina a la izquierda se movía de la
posición inicial 0 al 1, dando 10 nuestra
suma.

También podría gustarte