Compilador2

Historia de los Compiladores

By Doonsz
  • Primera computadora digital

    Primera computadora digital
    Al inicio el programa se escribía mediante claves y luego se traducía manualmente al lenguaje de máquina
  • Algol

    Algol
    Lenguaje de programación cuyo nombre es un acrónimo formado a partir de las siglas en inglés de ALGorithmic Oriented Language. Aunque no tuvo mucho éxito comercial es muy importante en la historia de la informática ya que tuvo una gran influencia en la mayoría de los lenguajes de programación posteriores como Pascal, C y ADA .
  • Math Matic

    Math Matic
    El primer compilador de la historia es el A-0 (Math Matic), desarrollado por Grace Hopperviendo, viendo 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 creo su propio compilador.
  • FORTRAN

    FORTRAN
    (“The IBM Mathematical Formula Translating System”): Un lenguaje de programación de alto nivel de propósito general. Para cálculo numérico y científico (como alternativa al lenguaje ensamblador). Es el lenguaje de programación más antiguo que se utiliza hoy en día.
  • Lisp

    Lisp
    (“List Processor”) Utilizado para la notación matemática y temas de ciencias de la computación.
  • 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
  • División del compilador

    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) y “back end” (genera código objeto para la máquina objeto).
  • 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
  • Código Estructurado

    Con el logro de Strong, se sentaban las bases de cómo deben ser la bases del compilador, 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.
  • 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
  • Recursivos

    Se estudia el paso de parámetros por nombre, valor y referencia y se incluyen los procedimientos recursivos para Algol 60
  • 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
  • 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.
  • 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.
  • 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

    Johnson crea YACC (Yet Another Compiler-Compiler) es un generador de analizadores sintácticos que al igual que LEX funciona en el sistema UNIX.
  • Ada

    Ada
    (En honor a Ada Lovelace): Es derivado del Pascal. Contratado por el Departamento de Defensa de los EE.UU. en 1977 para el desarrollo de sistemas de software grandes.
  • C++

    C++
    (“C con clases”; ++ es el operador de incremento en “C”) Es una extensión de lenguaje C, con mejoras tales como clases, funciones virtuales y plantillas.
  • 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).