Image

Linea de tiempo del compilador

  • Lenguaje maquina

    Lenguaje maquina
    En 1946 se desarrolló la primera computadora digital. En un principio, estas máquinas ejecutaban instrucciones consistentes en códigos numéricos que señalaban a los circuitos de la máquina los estados correspondientes a cada operación, lo que se denominó lenguaje máquina. Era exageradamente tediosa, puesto que existían muchos códigos numéricos que eran difíciles de aprender y fáciles de confundir.
  • Primer compilador

    Primer compilador
    El primer 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 I, 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.
  • Creacion del Fortran

    Creacion del 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 interpretes en el año 1954, pudo surgir el lenguaje de programación: FORTRAN (FORMULAE TRANSLATOR), el cual consistía en recibir códigos sobre ecuaciones matemáticas en tarjetas perforadas y lograr ejecutarlas a velocidad de lenguaje de máquina.
  • Lenguaje Algebraico Internacional

    Surge un grupo Europeo encabezado por F.L. Bauer, en la que participó ACM y John Backus. De este grupo surge un informe que define un Lenguaje Algebraico Internacional, publicado en Zurich
  • Front End y Back End

    Front End y Back End
    En el año 1959 Strong dio una propuesta para dar solución al problema de no poder ejecutar código en cualquier maquina. Entonces propuso una solución de dividir en dos partes todo el proceso de compilación. Front End: Esta parte es la que analiza el programa fuente, se ejecuta primero Back End: Esta parte se encarga de escribir el código objeto para la máquina, se ejecuta de último.
  • CÓDIGO ESTRUCTURADO

    Con el logro de Strong, se sentaban las bases de cómo deben ser la bases del compilador, y así en el año 1959, Michael Oser Rabin y Dana Scot introdujeron lo que era Autómatas Finitos, lo cual permitió el gran desarrollo del análisis léxico e identifico las expresiones regulares.
  • Cobol

    Cobol
    (“Common Business-Oriented Language) Usado principalmente para la informática empresarial. Es el primer lenguaje de programación que se demandan por el Departamento de Defensa de EE.UU..
  • Reconocimiento Léxico

    Rabin y Scott proponen el empleo de AFD y AFN para el reconocimiento lexicográfico de los lenguajes.
  • Automata Finito No Determinista (AFND)

    La transición desde un estado puede tener múltiples destinos. Por eso se le llama no determinista.
  • Automata Finito Determinista (AFD)

    La transición desde un estado puede tener como destino un único estado. Por eso se llama determinista.
  • Localización Dinámica De Datos

    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.
  • Parsers

    Se desarrollan diversos métodos de parsers ascendentes y descendentes. Floyd más adelante introduce la técnica de precedencia de operadores y uso de funciones de precedencia.
  • Period: to

    Análisis Sintáctico

    Aparece BNF (Backus-1960, Naur-1963, Knuth-1964) como una guía para el desarrollo del análisis sintáctico.
  • PARSING DESCENDENTE RECURSIVO

    Se usa por primera vez un parsing descendente recursivo
  • BASIC

    BASIC
    (“Beginner’s All-purpose Symbolic Instruction Code”) Diseñado para la simplicidad. Su popularidad explotó a mediados de los años 70 con los computadores personales.
  • Lisp

    Lisp
    El primer compilador auto-alojado (excluyendo ensambladores) fue escrito para Lisp por Tim Hart y Mike Levin en el MIT en 1962. Ellos escribieron un compilador de Lisp en Lisp, probándolo en un intérprete de Lisp existente. Mejoraron tanto el compilador hasta el punto de que se pudiera compilar en su propio código fuente, esto fue llamado auto-alojado.
    LISP
  • GLC

    Se estudia y definen las GLC (Gramaticas de Libre Contexto)
    El primer compilador auto-alojado (excluyendo ensambladores) fue escrito para Lisp por Tim Hart y Mike Levin en el MIT en 1962. Ellos escribieron un compilador de Lisp en Lisp, probándolo en un intérprete de Lisp existente. Mejoraron tanto el compilador hasta el punto de que se pudiera compilar en su propio código fuente, esto fue llamado auto-alojado.
  • ALGOL 60

    ALGOL 60
    fue el primer lenguaje que implementó definiciones de funciones anidadas con alcance léxico . Que dio lugar a muchos otros lenguajes de programación, incluyendo CPL , Simula , BCPL , B , Pascal y C .
  • Pacal

    Pacal
    (En honor al matemático/físico francés Blaise Pascal) Utilizado para la enseñanza de la programación estructurada y estructuración de datos.
  • Lenguaje C

    Lenguaje C
    (Basado en un lenguaje anterior llamado “B”) Creado para sistemas Unix. Muchos de lenguajes de programación más populares del mundo son derivados de el, entre ellos tenemos C#, Java, JavaScript, Perl, PHP y Python.
  • LEX

    Aparece LEX generador automático de analizadores léxicos a partir de expresiones regulares bajo UNIX
  • YACC

    YACC
    A mitad de los 70’s Johnson crea YACC para UNIX (generador de analizadores sintácticos).
  • Perl

    Perl
    Creado para el procesamiento de informes en sistemas Unix. Hoy en día es conocido por su gran potencia y versatilidad.
  • Python

    Python
    Creado para apoyar una variedad de estilos de programación y hacerlo divertido de usar.
  • Ruby

    Ruby
    Una lenguaje influenciado por Perl, Ada, Lisp, Smalltalk, etc. Diseñado para la programación productiva y agradable.
  • Java

    Java
    Hecho para un proyecto de televisión interactiva. Funciona multiplataforma. Es el segundo lenguaje más popular (detrás de lenguaje C).