HISTORIA DE LOS COMPILADORES (DOCUMENTAL Y COMERCIAL)

Timeline created by Christian Ramos Sandoval
  • Inicio

    Inicio
    El compilador es un programa que surge a partir de la necesidad de traducir un programa escrito en un lenguaje de programación (fácil de interpretar para las personas) a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar.
  • Se desarrolla el primer ordenador digital

    Se desarrolla el primer ordenador digital
    Las instrucciones que se ejecutaban eran códigos numéricos, lenguaje de máquina., esto es engorroso, entonces surgen los ensamblador. Al inicio el programa se escribía mediante claves y luego se traducía manualmente al lenguaje de máquina. Cuando esto lo hizo la misma máquina, a este trabajo se le llamó ensamblar el programa.
  • Short code

    Short code
    Aparece SHORT CODE, que viene a ser el primer lenguaje que fue usado en un dispositivo de cómputo electrónico, aunque se debe decir que se trata de un lenguaje traducido a mano.
  • John Backus

    John Backus
    Dirige una investigación en IBM en un lenguaje algebraico
  • Lenguaje ensamblador

    Lenguaje ensamblador
    El lenguaje ensamblador es el lenguaje de programación utilizado para escribir programas informáticos de bajo nivel, y constituye la representación más directa del Código máquina específico para cada arquitectura de computadoras legible por un programador. Aun hoy se utiliza en la programación de handler o manipuladores de dispositivos de hardware.
  • Grace Hopper

    Grace Hopper
    El primero compilador de la historia es el A-0 (Math Matic), desarrollado por Grace Hopper, viendo ella lo tedioso que era programar en la famosa computadora Mark 1, apostó por poder ingresar código que pudiera ser interpretado en cualquier máquina y llego a la conclusión que en vez de programar a tan bajo nivel, era necesario un intermediario, por ende su propio compilador.
  • Autocode

    Autocode
    Alick Edwards Glennie (1925–2003) fue un científico informático británico , más famoso por haber desarrollado Autocode, que viene a ser un compilador muy rudimentario, muchas personas lo consideran como el primer compilador de computadoras.
  • FORTRAN

    FORTRAN
    Después de los logros de Hopper, se ve la necesidad de utilizar lenguajes de alto nivel, hombres que investigaron como Jhon Backups acerca de intérpretes, pudo surgir el lenguaje de programación: FORTRAN (FORMULAE TRANSLATOR), el cual consiste en recibir códigos sobre ecuaciones matemáticas en tarjeta perforadas y lograr ejecutarlas a velocidad de lenguaje de máquina.
  • IBM modelo 704

    IBM modelo 704
    FORTRAN se utiliza en la IBM modelo 704.
    • Surge el concepto traductor.
    • El primer compilador de FORTRAN tardó 18 años en desarrollarse.
    • FORTRAN era dependiente de la máquina.
  • Código estructurado

    Código estructurado
    Aparece Chomsky. F. Bauer de la Universidad de Munich, que trabaja con algoritmos sencillos. Logra trabajar junto con Backups y con ello produce ALGOL 58, el cual podrá trabajar en forma estructurada o en bloques.
  • Strong

    Strong y otros proponen una solución al problema de que un compilador fuera portable, y esta era dividir al compilador en dos fases: • Front end: Analiza el programa fuente.
    • Back end: Genera código objeto para la máquina objeto.
  • Lenguaje LISP

    Lenguaje LISP
    Es una familia de lenguajes de programación de computadora de tipo multiparadigma con larga historia y una inconfundible y útil sintaxis basada en la notación polaca. Desarrollado originalmente en 1958 por John McCarthy y sus colaboradores en el Instituto Tecnológico de Massachusetts, Lisp es el segundo lenguaje de programación de alto nivel de mayor antigüedad entre los que continúan teniendo un uso extendido en la actualidad, únicamente FORTRAN es anterior.
  • Autómatas

    Autómatas
    Con el logro de strong, ya estaban las bases de cómo debe ser un compilador y así en el año 1959 Michael Oser Rabin y Dana Scott proponen el empleo de autómatas finitos, lo cual permitió el gran desarrollo del análisis léxico e identificó las expresiones regulares.
  • Sheridan

    Sheridan describe un método de parsing de FORTRAN para introducir paréntesis en una expresión
  • COBOL

    COBOL
    Conference on Data Systems and Languages (CODASYL) crea COBOL, un lenguaje para negocios, que fuera fácil de aprender para gente que no tuviera formación en ciencias de la computación. Sus únicos tipos de datos fueron cadenas y números.
  • Métodos de parsers

    Métodos de parsers
    En los 60’s se desarrollan diversos métodos de parsers ascendentes y descendentes
  • Parámetros por nombre, valor y referencia

    Parámetros por nombre, valor y referencia
    • En los 60’s se estudia el paso de parámetros por nombre, valor y referencia y se incluyen los procedimientos recursivos para Algol 60. • Se desarrolla la localización dinámica de datos.
  • ALGOL 6.0

    ALGOL 6.0
    Aparece el lenguaje ALGOL 6.0 el primer lenguaje estructurado en bloques. Este lenguaje fue muy popular en el segundo lustro de los 60's. Su principal contribución es ser la raíz del árbol que ha producido lenguajes tales como pascal, C, C++, y Java.
  • Lenguajes de programación

    Lenguajes de programación
    A partir de los años sesenta, empiezan a surgir diferentes lenguajes de programación, atendiendo a diversos enfoques, características y propósitos.
  • Parsing recursivo

    Parsing recursivo
    Se usa por primera vez un parsing descendente recursivo
  • LISP

    LISP
    El primer compilador auto-alojado (excluyendo ensambladores) fue escrito para LISP por Tim Hart y Mike Levin en el MIT en 1962.
  • SNOBOL

    SNOBOL
    SNOBOL (StriNg Oriented symBOlic Language) es un lenguaje de programación de computadoras de muy alto nivel que surgió en la década de los 60 en los Laboratorios Bell merced al equipo formado por David J. Farber, Ralph E. Griswold e Ivan P. Polonsky.
  • BASIC

    BASIC
    Inventado por John George Kemeny y Thomas Eugene Kurtz en el Colegio Dartmounth. Es un lenguaje muy limitado que fue diseñado para personas que no fueran del área de ciencias de la computación. El nombre de BASIC, significa
    Beginners All-purpose Symbolic Instruction Code. Compiladores: • QuickBasic
    • Small basic
    • Quick basic entre otros
  • XPL

    XPL
    Es un dialecto del lenguaje de programación PL/1, desarrollado en 1967, usado para el desarrollo de compiladores de lenguajes de computación. Fue diseñado e implementado por un equipo formado por William McKeeman, James J. Horning y David B. Wortman en la Universidad Stanford y la Universidad de California, Santa Cruz. Se anunció por primera vez en la Conferencia de Ordenadores de Otoño de 1968 en San Francisco, California.
  • Las GLC

    Las GLC
    Se estudia y definen las GLC, los parsers predictivos y la eliminación de recursividad izquierda
  • Lenguaje B

    Lenguaje B
    B es el nombre de un lenguaje de programación desarrollado en los Bell Labs, predecesor del lenguaje de programación C. Fue mayoritariamente un trabajo de Kenneth L. Thompson con contribuciones de Dennis M. Ritchie publicado por primera vez en el año 1969.
  • YACC

    YACC
    Johnson crea YACC para UNIX (generador de analizadores sintácticos)
  • PROLOG

    PROLOG
    Diseñado en 1970 en la universidad de Aix-Marseille por los profesores Alain Colmerauer y Phillipe Roussel, su nombre proviene del francés, Pro-gramationet, Lo-gique, es popular en los círculos de interés en Inteligencia Artificial. Su sintaxis y semántica son considerados simples y claros. Compiladores: • GNU prolog
    • ADA PD prolog
  • Pascal

    Pascal
    Creado por el profesor suizo Niklaus Wirth entre los años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el aprendizaje de programación a sus alumnos, utilizando la programación estructurada y estructuración de datos. Compiladores: • Free Pascal
    • Turbo Pascal
  • Lenguaje C

    Lenguaje C
    C es un lenguaje de programación originalmente desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell, como evolución del anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un lenguaje orientado a la implementación de Sistemas operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.
  • LEX

    LEX
    Aparece LEX generador automático de analizadores léxicos a partir de expresiones regulares bajo UNIX.
  • Lenguaje C++

    Lenguaje C++
    C++ es un lenguaje de programación diseñado en 1979 por Bjarne Stroustrup. La intención de su creación fue extender al lenguaje de programación C mecanismos que permiten la manipulación de objetos. La idea básica es que los objetos son piezas de código auto contenidas y reusables. Inicialmente se llamó C con clases, para posteriormente tomar su nombre definitivo C++ cuando fue publicado en 1983. Compiladores: • MinGW
    • G++
  • Turbo BASIC

    Turbo BASIC
    Turbo Basic es un compilador de BASIC desarrollado por Borland en 1987. Se caracteriza por tener funciones gráficas. Fue uno de los últimos BASIC antes de la aparición de Visual Basic. Tiene la característica de ser compatible con el QuickBASIC de Microsoft, hasta el punto de que un libro de referencia del Turbo Basic se puede usar perfectamente para programar en QuickBasic.
  • GNU Compiler Collection

    GNU Compiler Collection
    Es un conjunto de compiladores creados por el proyecto GNU. GCC es software libre. Estos compiladores se consideran estándar para los sistemas operativos derivados de UNIX, de código abierto y también de propietarios, como Mac OS X. GCC requiere el conjunto de aplicaciones conocido como binutils para realizar tareas como identificar archivos objeto u obtener su tamaño para copiarlos, traducirlos o crear listas, enlazarlos, o quitarles símbolos innecesarios.
  • Lenguaje Perl

    Lenguaje Perl
    Perl es un lenguaje de programación diseñado por Larry Wall en 1987. Perl toma características del lenguaje C, del lenguaje interpretado bourne shell (sh), AWK, sed, Lisp y, en un grado inferior, de muchos otros lenguajes de programación. Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK, y fue ampliamente adoptado por su destreza en el procesado de texto y no tener ninguna de las limitaciones de los otros lenguajes de script.
  • Glasgow Haskell Compiler

    Glasgow Haskell Compiler
    El Glasgow Haskell Compiler (o GHC) es un compilador nativo de código libre para el lenguaje de programación funcional Haskell, que fue originalmente desarrollado en la Universidad de Glasgow, en un principio por Simon Peyton Jones y Simon Marlow. El desarrollo continúa bajo el auspício del Departamento de Investigación de Microsoft (Microsoft Research), en el Reino Unido, donde están empleados Peyton Jones y Marlow. GHC ha tomado humorísticamente el apodo "Glorious Haskell Compiler".
  • Visual Basic

    Visual Basic
    Visual Basic (VB) es un lenguaje de programación dirigido por eventos, desarrollado por Alan Cooper para Microsoft. Este lenguaje de programación es un dialecto de BASIC, con importantes agregados. Su primera versión fue presentada en 1991, con la intención de simplificar la programación utilizando un ambiente de desarrollo.
  • Python

    Python
    Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en una sintaxis que favorezca un código legible. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional. Es un lenguaje interpretado, usa tipado dinámico y es multiplataforma.
  • Java

    Java
    Java es una plataforma de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales. El lenguaje de programación fue desarrollado por James Gosling, y sus equipo en Sun Microsystems,entre 1990 y 1994, pensado originalmente como un reemplazo de C++
  • Java Script

    Java Script
    JavaScript (abreviado comúnmente JS) es un lenguaje de programación interpretado, dialecto del estándar ECMAScript. JavaScript fue desarrollado originalmente por Brendan Eich de Netscape con el nombre de Mocha, el cual fue renombrado posteriormente a LiveScript, para finalmente quedar como JavaScript. El cambio de nombre coincidió aproximadamente con el momento en que Netscape agregó compatibilidad con la tecnología Java en su navegador web Netscape Navigator en diciembre de 1995.
  • Ruby

    Ruby
    Es un lenguaje de programación interpretado, orientado a objetos, con una sintaxis inspirada por Perl y Ada, que también tomo ideas de Lisp, Python,Dylan y CLU. Fue creado por Yukihiro Matsumoto, quien comenzó su desarrollo en 1993, y lo publicó en 1995. El nombre Ruby fue elegido para reflejar su herencia de Perl. Entre sus características tenemos: • Lenguaje de guiones interpretado.
    • Rápido y sencillo
    • Programación orientada a objetos
  • PHP

    PHP
    Es un lenguaje de programación de propósito general de código del lado del servidor originalmente diseñado para el desarrollo web de contenido dinámico. Fue uno de los primeros lenguajes de programación del lado del servidor que se podían incorporar directamente en un documento HTML en lugar de llamar a un archivo externo que procese los datos. El código es interpretado por un servidor web con un módulo de procesador de PHP que genera el HTML resultante.
  • GNU Compiler para Java

    GNU Compiler para Java
    Es un compilador para el lenguaje de programación Java que forma parte del proyecto GCC.
    El 30 de junio de 1998, se publica el documento original de diseño con el cual empezó GCJ. La idea inicial fue crear un compilador clásico que compilase java a binarios normales del sistema, que no requiriesen un intérprete JIT para funcionar, ahorrando así recursos en el software compilado con GCJ.
  • MinGW

    MinGW
    MinGW (Minimalist GNU for Windows), anteriormente conocido como MinGW32, es una implementación de los compiladores GCC para la plataforma Win32, que permite migrar la capacidad de este compilador en entornos Windows.
  • C#

    C#
    es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET, que después fue aprobado como un estándar por la ECMA (ECMA-334) e ISO (ISO/IEC 23270). C# es uno de los lenguajes de programación diseñados para la infraestructura de lenguaje común. Su sintaxis básica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes.
  • GNAT

    GNAT
    GNAT es un conocido compilador del lenguaje de programación Ada, basado en la infraestructura de compilación de GCC. Ha sido escrito casi por completo en el mismo Ada, e implementa todos los anexos del estándar, habiendo sido certificado de ello.
  • Scala

    Scala
    Scala es un lenguaje de programación multi-paradigma diseñado para expresar patrones comunes de programación en forma concisa, elegante y con tipos seguros. Integra sutilmente características de lenguajes funcionales y orientados a objetos. La implementación actual corre en la máquina virtual de Java y es compatible con las aplicaciones Java existentes.
  • Go

    Go
    Go es un lenguaje de programación concurrente y compilado inspirado en la sintaxis de C. Ha sido desarrollado por Google, y sus diseñadores iniciales son Robert Griesemer, Rob Pike y Ken Thompson. Go es un lenguaje de programación compilado, concurrente, imperativo, estructurado, orientado a objetos de una manera bastante especial y con recolector de basura que de momento está soportado en diferentes tipos de sistemas UNIX, incluidos Linux, FreeBSD y Mac OS X.
  • TypeScript

    TypeScript
    es un lenguaje de programación libre y de código abierto desarrollado y mantenido por Microsoft. Es un superconjunto de JavaScript, que esencialmente añade tipado estático y objetos basados en clases. Anders Hejlsberg, diseñador de C# y creador de Delphi y Turbo Pascal, ha trabajado en el desarrollo de TypeScript. TypeScript puede ser usado para desarrollar aplicaciones JavaScript que se ejecutarán en el lado del cliente o del servidor (Node.js).
  • Kotlin

    Kotlin
    Kotlin es un lenguaje de programación de tipado estático que corre sobre la máquina virtual de Java y que también puede ser compilado a código fuente de JavaScript. Es desarrollado principalmente por JetBrains en sus oficinas de San Petersburgo (Rusia). El nombre proviene de la isla de Kotlin, situada cerca de San Petersburgo.
  • Swift

    Swift
    Swift es un lenguaje de programación multiparadigma creado por Apple enfocado en el desarrollo de aplicaciones para iOS y macOS. Fue presentado en WWDC 2014​ y está diseñado para integrarse con los Frameworks Cocoa y Cocoa Touch, puede usar cualquier biblioteca programada en Objective-C y llamar a funciones de C.