Historia de los Lenguajes de Programación

By ValDur
  • ALGOL (Algorithmic Language)

    ALGOL (Algorithmic Language)
    • Friedrich L. Bauer
    • Familia de los lenguajes imperativos
    • Utilizado en el ámbito academico y científico
    • EE.UU y Europa
    • Impacto en lenguajes posteriores
    • ALGOL 58
      • Lenguaje universal, no para algo especifico.
    • ALGOL 60
      • Independiente hardware
      • Parametros por nombre
      • Gramáticas generativas de Chomsky
      • Recursión
      • Memoria Dinámica
      • Tipos definidos por usuario
      • if--then--else, for, while
    • ALGOL W
      • Da origen a Pascal
    • ALGOL 68
      • Incluye estructura case
  • Fortran (Formula Translation)

    Fortran (Formula Translation)
    • John Backus, IBM.
    • Primer lenguaje imperativo de alto nivel
    • Calculos numericos y computación científica
    • Desarrollado para la IBM 704
    • Uso de las expresiones aritméticas
    • Se sigue utilizando en la actualidad
    • Pograma fortran:
      • Rutina principal
      • Subrutinas
    • Ambientes global y local
    • No hay memoria dinamica
    • Control --> GOTO
    • Luego se agregó if-then-else
    • Parametros por referencia
    • Tipos numéricos, booleano, arreglos, string, archivos
  • COBOL (Common Business Oriented Language)

    COBOL (Common Business Oriented Language)
    • Grace Hopper, US Department of Defense
    • Imperativo
    • Lenguaje más utilizado en el mundo durante los 70s
    • Lo más cercano posible al idioma inglés
    • Programas muy largos
    • Memoria estática
  • Lisp (List Processor)

    Lisp (List Processor)
    • John McCarthy, MIT
    • Familia: Declarativos, funcionales
    • Aplicaciones no numéricas
    • Calculo Lambda
    • Dialectos: Common Lisp, Scheme
    • El código se representa internamente como listas enlazadas
    • Secuencia de expresiones a evaluar
    • Interpretado
    • Aportes:
      • Garbage collection
      • Programación de orden superior
      • Administración dinámica de memoria
      • Tipado dinámico
      • Condicionales
      • Recursión
  • Simula

    Simula
    • Kristen Nygaard, Ole-Johan Dahl, Instituto de Cómputo Noruego
    • Imperativo, Orientado a Objetos
    • Extensión de ALGOL 60
    • Simulaciones de eventos discretos
    • Colas, carga, tiempo de espera, etc
    • Versiones
      • Simula I
      • Simula 67
        • Primer lenguaje orientado a objetos
        • Influyó en Samlltalk y C++
  • BASIC

  • PL/I

  • Pascal

    Pascal
    • Niklaus Wirth
    • Imperativo
    • Simplificación de ALGOL W
    • Enseñanza de programación estructurada y estructura de datos
    • Utilizado en educación hasta finales de los 80s.
    • Código intermedio --> P-code
    • Máquina intermedia con arquitectura de pila
    • Portabilidad
    • Compilación directa
    • Bloques de código
    • Funciones anidadas
    • Memoria dinámica
    • Definición de tipos abstractos
    • Manipulación de punteros
  • Prolog

    Prolog
    • Alain Colmerauer
    • Declarativo, lógico
    • Basado en la teoría de deducción automatica
    • Resolución
    • SLD resolution
    • Utilizado para prueba de teoremas, sistemas expertos, procesamiento de lenguaje natural.
  • SQL

  • Smalltalk

    Smalltalk
    • Alan Kay, Xerox PARC
    • Orientado a Objetos
    • Conceptos de clase y objeto de Simula
    • Encapsulamiento y ocultación de información
    • Reglas de visibilidad
    • Tipo primitivo
    • Más que un lenguaje era un ambiente
  • C

    C
    • Denis Ritchie y Ken Thompson, AT&T Bell Laboratories
    • Imperativo
    • Lenguaje más importante de los 70s
    • Hereda mucho de la familia de ALGOL
    • Facilidad para programaas interactivos
    • Creado en inicio para programar UNIX
    • Influencio muchos lenguajes posteriores
    • Sintaxis compacta
    • Funcionalidad de bajo nivel
    • Código de maquina eficiente
    • Sinfunciones anidadas
    • Tipado estatico
    • Recursión
  • ML (Metalanguage)

    ML (Metalanguage)
    • Robin Milner, Universidad de Edinburgo
    • Declarativo, funcional
    • Usado para diseño y manipulaciín de lenguajes
    • Bioinformatica, sistemas finacieros, etc
    • Caml, standard ML
  • Modula

  • Ada

    Ada
    • Jean Ichbiah, US Department of Defense
    • Requerimientos de seguridad
    • Basado en Pascal
    • Programación en tiempo real y sistemas empotrados
    • Mecanismos de sincronización y comunicación
  • PHP

  • C++

    C++
    • Bjarne Stroustrup, AT&T Bell Laboratories
    • Orientado a objetos, genérico
    • Agrega clases y herencia a C sin afectar eficiencia y compatibilidad
    • No hay garbage collector
    • Herencia múltiple
  • Erlang

  • Eiffel

  • Oberon

  • Perl

  • Java

    Java
    • James Gosling, Sun Microsystems
    • Orientado a Objetos, genérico
    • Basado en C++
    • Inicialmente para computadoras limitadas en red y TV
    • Navegador de red
    • Potencial para internet : Mosaic
    • Applet --> programa en cliente que le quita carga al servidor
    • Portabilidad
    • Seguridad
    • Carga dinamica de clases
    • Hilos
    • Poco eficiente
    • Garbage collector
  • Haskell

  • Python

    Python
    • Guido van rossum, Centrum Wiskunde & Informatica
    • Multiparadigma
    • Facilidad de lectura, sintaxis compacta
    • Interpretado
    • Tipado dinamico
    • Manejo de memoria automatico
    • Entre los lenguajes más populares del mundo
    • Bibliotecas extensas
  • Ruby

  • OCaml

  • C#

  • C#

  • Scala

  • Clojure

  • F#