Want to make creations as awesome as this one?

More creations to inspire you

SUNITA NARAN

Interactive Image

BOARDS BOOK SERIES

Interactive Image

TRAIN

Interactive Image

DESMOND TUTU

Interactive Image

CRAIG HODGES

Interactive Image

CLC MALL MAP

Interactive Image

Transcript

Historia de la programacion

Desde las primeras calculadoras mecánicas del siglo XVII hasta los años 40 del siglo XX, se inventaron muchas máquinas y computadoras mecánicas, analógicas y electrónicas para acelerar y mejorar la precisión de los cálculos. El punto culminante de estos inventos fue el Motor Analítico de Charles Babbage en 1840. A diferencia de los artefactos anteriores, era una máquina de calcular programable mediante tarjetas perforadas, inspirada en el telar de Jacquard. Diseñada para trabajar en base 10, podía realizar cálculos con saltos condicionales y bucles. Babbage trabajó en ella más de 30 años, pero debido a su complejidad y necesidad de financiación, solo logró construir una parte antes de su muerte en 1871.

Historias de los lenguajes de programacion

Ada Lovelace desempeñó un papel crucial en la divulgación y programación del Motor Analítico de Charles Babbage, comprendiendo sus posibilidades más allá del simple cálculo. Educada en ciencias y matemáticas, colaboró con Babbage y en 1843 publicó "Sketch of the analytical engine", describiendo el motor, añadiendo reflexiones y creando un ejemplo de programa, considerado el primer programa de computadora. En 1936, Alan Turing formalizó el concepto de computación con su Máquina de Turing, explorando la computabilidad y definiendo la máquina universal, capaz de simular cualquier programa, lo que influyó en el desarrollo de computadores y la idea de programas almacenados en memoria.

En los años 40, surgieron numerosas máquinas de computación electrónicas y electromecánicas. En 1945, John Von Neumann propuso la arquitectura de computadores con programa almacenado en memoria y procesamiento de instrucciones. En 1948, en la Universidad de Manchester, se construyó el primer computador digital de propósito general, "Baby", usando la tecnología de Max Newmann y la válvula de Williams, inventada por F.C. Williams.

La máquina de Manchester fue el primer computador con un conjunto completo de instrucciones, incluyendo saltos, condicionales y direccionamiento indirecto. Ejecutó su primer programa el 21 de junio de 1948. En 1951, una versión ampliada y comercial de la máquina, el Ferranti Mark I, se instaló en la Universidad de Manchester y se vendieron 10 unidades más a varios países.

En 1952, el primer programa complejo de Inteligencia Artificial, un jugador de damas creado por Christopher Strachey, se ejecutó en el Ferranti Mark I, con la guía y apoyo de Alan Turing. Turing también desarrolló otros programas de IA, como un jugador de ajedrez basado en heurísticas.

Desde entonces, la programación ha evolucionado rápidamente con la aparición de lenguajes de alto nivel, como Fortran, COBOL y C, y posteriormente lenguajes modernos como Python y Java, impulsando el desarrollo de software complejo y tecnologías avanzadas.

Antes de pasar a ver los principales lenguajes de programacion, debemos hacer un alto para comentar una caracterÌstica comun a todos ellos: las ordenes dadas en cualquier lenguaje siempre deben traducirse al codigo binario del ordenador, que es el unico que realmente comprende su unidad central. Esta labor de traduccion se lleva a cabo mediante un interprete o un compilador. ¿Y que diferencia hay entre estas dos cosas? Retomemos el sÌmil de los lenguajes humanos y todo quedara aclarado.

El conjunto de órdenes e instrucciones que se dan al ordenador para resolver un problema o ejecutar una misión se llama programa. Al principio, la programación se hacía en código binario o lenguaje máquina, lo que era lento y propenso a errores. Para facilitar la programación, en los años 50 se creó el código de ensamblaje (Assembly), usando abreviaturas mnemotécnicas para las operaciones. Inicialmente, la traducción del código de ensamblaje a código máquina se hacía manualmente, pero pronto se desarrollaron ensambladores para automatizar este proceso. Con la creciente adopción de ordenadores en empresas y academia, surgieron lenguajes de alto nivel, más fáciles de aprender y usar, como BASIC, PASCAL y C.

Historia y evolucion de los lenguajes de programacion

Lorem ipsum dolor sit amet, consectetur adipiscing elit

Interprete Traduce el lenguaje humano a informático traduciendo las ordenes una a una mientras que el copilador traduce todo de una ves volviendo mas rapido el ordenador.

A principios de la década de los 50, John Backus trabajaba con el SSEC, uno de los primeros ordenadores de IBM, y desarrolló el programa SPEEDCODING. En 1954, inició la creación de un lenguaje para mejorar el modelo IBM 704. Aunque este lenguaje ha sido superado por otros más estructurados y fáciles de seguir, todavía se usa en el ámbito universitario debido a su extensa biblioteca de subrutinas y funciones acumuladas durante más de treinta años.

FORTRAN

COBOL

A finales de los años 50, el Departamento de Defensa de EE.UU. estaba preocupado por la falta de portabilidad y la dificultad de uso de los lenguajes de programación. Para solucionar estos problemas, patrocinó la conferencia CODASYL en 1959, con participación de grandes empresas y Grace Hopper. De esta conferencia surgió COBOL, un lenguaje orientado a funciones administrativas, conocido por su portabilidad y legibilidad. BASIC ganó popularidad por su facilidad de aprendizaje y bajo consumo de memoria. Microsoft desarrolló una versión de BASIC para el primer ordenador personal, el Altair, y lo adaptó para Apple, microordenadores y el PC de IBM. Muchas personas aprendieron a programar en BASIC, lo que llevó a cierta resistencia al cambio. Versiones populares de BASIC en los 80 incluyeron GW-BASIC, Turbo BASIC y QuickBASIC. Kemeny y Kurtz intentaron comercializar True BASIC en 1983, pero no tuvo éxito.

Como su nombre indica, FORTRAN estaba (y esta) destinado a la resolución de problemas cientÌfico-tecnicos, resultando relativamente sencillo de aprender si se domina la notación matemática.

Basic

John G. Kemeny y Thomas E. Kurtz, profesores del Dartmouth College, diseñaron en 1964 un nuevo lenguaje para introducir a sus estudiantes en los sistemas de tiempo compartido. Este lenguaje, llamado BASIC por su sencillez, se ha difundido ampliamente y se utiliza tanto en gestión como en aplicaciones científicas. A lo largo de los años, BASIC se ha adaptado a las necesidades del mercado. Las primeras versiones eran interpretadas y poco legibles, mientras que las actuales son más estructuradas y compiladas. El máximo exponente de los modernos BASIC es Visual BASIC de Microsoft.

Logo

En 1964, Seymour Papert se unió al MIT después de colaborar con Jean Piaget en Suiza. En 1967, Papert diseñó el lenguaje LOGO para enseñar programación a niños, promoviendo la idea de que los niños deberían programar a los ordenadores, no al revés. Aunque LOGO tuvo un comienzo prometedor, ha desaparecido de muchas escuelas españolas. Las razones incluyen la complejidad del lenguaje, que utiliza listas y procedimientos recursivos difíciles de manejar, y el cambio en la informática educativa hacia el uso de aplicaciones ofimáticas en lugar de la programación creativa.

C

En 1969, Kenneth Thompson y Dennis Ritchie, en los Laboratorios Bell, crearon el sistema operativo UNIX. A finales de los 60, LOGO introdujo a los niños en la programación de manera gráfica usando la geometría de la tortuga, que controlaba un robot para trazar dibujos con comandos simples. En 1970, Thompson desarrolló el lenguaje experimental B, y dos años después, Ritchie creó C a partir de B. C se destacó por su portabilidad y amplias prestaciones. En los 80, Bjarne Stroustrup expandió C y desarrolló C++ en 1984, un lenguaje orientado a objetos.

Pascal

En 1969, Kenneth Thompson y Dennis Ritchie crearon UNIX en los Laboratorios Bell. A finales de los 60, LOGO se desarrolló como un lenguaje gráfico para enseñar programación a niños mediante comandos simples. En 1970, Thompson creó el lenguaje B, y Ritchie desarrolló C a partir de él, conocido por su portabilidad. En los años 80, Bjarne Stroustrup amplió C con C++, un lenguaje orientado a objetos. PASCAL, derivado de ALGOL y definido en 1974 por Kathleen Jensen y Niklaus Wirth, se estandarizó en 1983. Borland lanzó Turbo Pascal, un compilador exitoso que vendió medio millón de copias en 1985, pero dejó de recibir soporte en 2000. En 1995, DELPHI, una versión visual de PASCAL, fue lanzada para competir con Visual BASIC.

Prolog

En 1972, Robert Kowalski, Alain Colmerauer y Phillippe Roussell propusieron usar la lógica como lenguaje de programación. Al año siguiente, se diseñó PROLOG (PROgramation LOGique) en la universidad de Aix-Marseille. PROLOG es un lenguaje declarativo, a diferencia de los lenguajes algorítmicos, ya que no se basa en órdenes sino en descripciones. En PROLOG, se proporcionan conocimientos y reglas sobre un tema, y el sistema responde a preguntas cuya respuesta puede deducirse lógicamente de esos conocimientos. PROLOG se utiliza principalmente en inteligencia artificial para resolver problemas lógicos, desarrollar sistemas expertos y estudiar el lenguaje humano.

ADA

Quince años después de COBOL, el Departamento de Defensa de EE.UU. buscó un nuevo lenguaje de programación con requisitos específicos como modularidad, facilidad de lectura, gestión de periféricos y ejecución de procesos en paralelo. Al no encontrar un lenguaje existente que cumpliera con todos estos criterios, se decidió desarrollar uno nuevo basado en PASCAL, PL/I y ALGOL 68. Se lanzó un concurso para crear este lenguaje, y de las 17 propuestas iniciales se seleccionaron cuatro bajo nombres clave: Red, Green, Yellow y Blue. El lenguaje Green, desarrollado por Honeywell-Bull y dirigido por Jean Ichbiah, fue elegido y se nombró ADA en honor a Ada Lovelace. A pesar de sus mejoras, ADA no se popularizó debido a su complejidad y estricta estructura, limitándose a grandes proyectos de programación.

JAVA

En 1990, James Gosling desarrolló un lenguaje de programación en Sun Microsystems, inicialmente destinado a electrónica de consumo, como calculadoras y televisores interactivos. A pesar de su origen, el lenguaje fue adaptado para Internet por Bill Joy y, en agosto de 1995, se presentó bajo el nombre de **Java**. Aunque Java es relativamente lento en su ejecución, se ha vuelto muy popular por su simplicidad, potencia, portabilidad entre plataformas y alta seguridad.

Otros lenguajes

  • ALGON
  • PLANKALKUL
  • SHORT CODE
  • FLOWMATIC
  • LISP
  • JOVIAL
  • APL
  • PL/I
  • SIMULA
  • RPG
  • FORTH
  • COMAL
  • LSE
  • SMALLTALK

Antecedentes de JAVA

Java es un lenguaje de programación creado para abordar las limitaciones de lenguajes existentes como C, que, aunque versátil, se volvía difícil de manejar en aplicaciones grandes. La programación orientada a objetos (POO) mejoró esta situación al simplificar la programación al dividir los problemas en objetos autónomos. Antes de Java, C++ fue una de las primeras adaptaciones notables de C que introdujo la POO, facilitando la creación de programas más complejos con la ayuda de librerías de clases. C++ se convirtió en el lenguaje más popular a principios de los 90. También hubo adaptaciones significativas de otros lenguajes clásicos, como Pascal a Turbo Pascal y Delphi, y Basic a QuickBasic y Visual Basic.

La llegada de JAVA

En 1991, Sun Microsystems desarrolló el lenguaje Oak para un sistema de televisión interactiva, con el objetivo de crear un lenguaje independiente de la plataforma para dispositivos electrónicos. Aunque Oak solo se utilizó internamente, en 1995 se renombró a Java y se lanzó al público. Java se destacó por ser independiente de la plataforma, potente, y orientado a objetos. Su popularidad creció debido a su capacidad para crear aplicaciones para redes TCP/IP y su filosofía de independencia de la plataforma. Las ventajas de Java sobre C++ incluyen: - Sintaxis similar a C y C++ - Sin punteros (mayor seguridad) - Totalmente orientado a objetos - Bien adaptado para aplicaciones TCP/IP - Manejo de excepciones nativo - Interpretado (aunque más lento en local, facilita la ejecución remota) - Soporte para multihilos - Admite firmas digitales - Control de sintaxis más riguroso Java utiliza un código intermedio precompilado que requiere una máquina virtual para su ejecución, lo que contribuye a su independencia de la plataforma.

Características de Java

En Java, los programas no se compilan en código ejecutable directamente, sino que se precompilan a un formato intermedio conocido como bytecode o J-code, almacenado en archivos con extensión `.class`. Este bytecode es interpretado por la máquina virtual de Java (JVM), permitiendo la ejecución en cualquier plataforma con una JVM adecuada. Este enfoque evita la inclusión de librerías específicas del sistema en el código final y facilita la portabilidad del programa. La JVM usa un método llamado Just in Time (JIT) para ejecutar el bytecode en tiempo real, lo que permite la ejecución eficiente del código. Además, la unidad fundamental del código en Java es la clase, que se carga dinámicamente durante la ejecución. En cuanto a seguridad, Java implementa varias medidas para proteger el sistema: 1. Verificación de bytecode: Asegura que el código sigue las reglas de Java y no realiza operaciones peligrosas. 2. Verificación de clase: Comprueba que las clases cargadas son las originales del sistema Java y no versiones manipuladas. 3. Administrador de seguridad: Permite configurar niveles de seguridad para los programas de Java. 4. Firmas digitales: Verifican la autenticidad del código Java, asegurando que proviene de una fuente confiable. Estas medidas eliminan problemas como los punteros inseguros y el acceso directo a memoria, aumentando la seguridad del entorno Java.

Tipos de aplicaciones Java

Los applets son programas Java diseñados para ser insertados en páginas web y ejecutados por navegadores compatibles con Java. Aunque son independientes, están sujetos a las reglas del entorno web y generalmente solo pueden interactuar con el navegador. Se utilizan para integrar aplicaciones multimedia avanzadas en páginas web. Las aplicaciones de consola en Java son programas independientes que funcionan de manera similar a los creados con lenguajes tradicionales. Las aplicaciones gráficas utilizan clases con capacidades gráficas, como AWT, para crear interfaces visuales. Los servlets son aplicaciones que se ejecutan en servidores web y generan páginas web como resultado de su ejecución.

Historia de JAVA

Java es un lenguaje de programación creado por Sun Microsystems en 1991. Inicialmente llamado Oak y diseñado para sistemas de televisión interactiva y dispositivos electrónicos, fue rebautizado como Java en 1995 y adaptado para la web. Java se destaca por ser independiente de la plataforma, gracias a la generación de bytecodes que la Máquina Virtual de Java (JVM) puede interpretar en tiempo real. Java ganó popularidad rápidamente por su robustez, seguridad y capacidad para crear aplicaciones de red. Sus ventajas incluyen la eliminación de punteros, la implementación de la programación orientada a objetos, la gestión nativa de excepciones y la capacidad de manejar multihilos. Con el tiempo, Java se ha convertido en uno de los lenguajes más utilizados, especialmente en aplicaciones empresariales, móviles (a través de Android) y sistemas embebidos. Su independencia de plataforma y sólido ecosistema de bibliotecas y herramientas han asegurado su relevancia y amplia adopción en la industria tecnológica.

¿Que JAVA?

Java es un lenguaje de programación de alto nivel, orientado a objetos y diseñado para ser independiente de la plataforma. Fue desarrollado por Sun Microsystems y lanzado en 1995. Su principal característica es que permite a los desarrolladores escribir código una vez y ejecutarlo en cualquier dispositivo que tenga instalada la Máquina Virtual de Java (JVM), lo que significa que el mismo programa puede funcionar en diferentes sistemas operativos sin necesidad de modificación.

¿Para que sirve JAVA?

Java es un lenguaje de programación versátil y muy utilizado en diversas áreas del desarrollo de software. Sus principales aplicaciones incluyen: - Desarrollo Web: Utilizado con frameworks como Spring y JSF para crear aplicaciones web robustas. - Aplicaciones Empresariales: Ideal para aplicaciones que manejan grandes volúmenes de datos y transacciones distribuidas, con herramientas como Java EE. - Desarrollo Móvil: Principal lenguaje para el desarrollo de aplicaciones Android. - Aplicaciones de Escritorio: Permite crear aplicaciones de escritorio multiplataforma con Swing y JavaFX. - Sistemas Embebidos: Utilizado en dispositivos como televisores inteligentes y sistemas de automóviles. - Big Data y Ciencia de Datos: Empleado en herramientas como Hadoop y Spark para procesar grandes volúmenes de datos. - Aplicaciones Financieras: Popular en la industria financiera por su fiabilidad y seguridad. - Juegos: Usado en el desarrollo de juegos con bibliotecas como LWJGL. - Aplicaciones Científicas: Integrado en herramientas y sistemas de simulación para investigaciones científicas. - Servicios Web y Microservicios: Frameworks como Spring Boot facilitan la creación de servicios web y microservicios. - Automatización y Testing: Utilizado en herramientas de testing como Selenium y JUnit. - Seguridad y Criptografía: Ofrece APIs para implementar algoritmos de seguridad y cifrado. En resumen, Java es una opción popular para desarrolladores debido a su flexibilidad, robustez y amplia gama de aplicaciones.

Ventajas de Java:Portabilidad: Permite ejecutar código en cualquier plataforma con una JVM compatible.Robustez: Maneja excepciones y memoria eficientemente, lo que mejora la estabilidad del software.Seguridad: Ofrece protección contra vulnerabilidades a través de su máquina virtual y verificación de bytecode.Gran Ecosistema: Amplia gama de bibliotecas y frameworks facilita el desarrollo.Comunidad Activa: Amplio soporte, actualizaciones y recursos gracias a su gran comunidad.

Desventajas de Java:Rendimiento: Más lento que lenguajes compilados a código nativo como C o C++.Consumo de Memoria: Puede consumir más memoria debido a la JVM y el uso de objetos.Curva de Aprendizaje: Complejidad y extensa API pueden ser difíciles para los nuevos desarrolladores.Verbosidad: Código a menudo más extenso y menos conciso.Actualizaciones y Compatibilidad: Las actualizaciones frecuentes pueden causar problemas de compatibilidad y requerir ajustes continuos.

UNIVERSIDAD MODULAR ABIERTA

ALUMNA: TATIANA LISSETH RIVERA HERNANDEZDOCENTE: HERALDO YUVINI PABLOASIGNATURA: PROGRAMACION I