# data[].attributes.body
PRIMER ORDENADOR DIGITAL.
Era capaz de ejecutar códigos numéricos de lenguaje maquina, de aqui surgen los ensambladores. Al inicio el programa se escribía mediante claves y luego se traducía manualmente al lenguaje máquina. Cuando esto lo hizo la misma máquina, a este trabajo se le llamó ensamblar el programa

# data[].attributes.body
INVESTIGACIÓN EN IBM.
John Backus dirige una investigación en IBM en un lenguaje algebraico.

# data[].attributes.body
DESARROLLO DE FORTRAN.
Se comienza a desarrollar FORTRAN.

# data[].attributes.body
FORTRAN.
FORTRAN se utiliza en el IBM modelo 704.

# data[].attributes.body
INFORME.
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.

# data[].attributes.body
FROND END Y BACK END.
Strong y otros proponen una solución al problema de que un compilador fuera portable, y esta era dividir al compliador en dos fases "front end "( analiza el programa fuente) y "back end" (genera código objeto para la máquina objeto).

# data[].attributes.body
PUENTE UNIÓN.
El puente de unión era un lenguaje intermedio denominado UNCOL (Universal Computer Oriented Language ( no funcionó)).

# data[].attributes.body
AUTOMATA FINITO DETERMINISTA (AFD) Y AUTOMATA FINITO NO DETERMINISTA (AFND).
Rabin y Scott proponen el empleo de AFD y AFN para el reconocimiento lexicográfico de los lenguajes.

# data[].attributes.body
AUTOMATA FINITO DETERMINISTA (AFD).
La transición desde un estado puede tener como destino un único estado. Por eso se llama determinista

# data[].attributes.body
AUTOMATA FINITO NO DETERMINISTA (AFND).
La transición desde un estado puede tener múltiples destinos. Por eso se le llama no determinista.

# data[].attributes.body
BNF
Aparece BNF (Backus- 1960, Naur-1963, Knuth - 1964) como una guía para el desarrollo del análisis sintáctico.

# data[].attributes.body
MÉTODO DE PARSING.
Sheridan describe un método de parsing de FORTRAN para introducir paréntesis en una expresión.

# data[].attributes.body
DIVERSOS MÉTODOS DE PARSERS.
En los 60's se desarrollan diversos métodos de parsers ascendentes y descendentes.

# data[].attributes.body
TÉCNICAS
Floyd más adelante introduce la técnica de precedencia de operadores y uso de funciones de precedencia.

# data[].attributes.body
PARSING DESCENDIENTE RECURSIVO.
Se usa por primera vez un parsing descendente recursivo.

# data[].attributes.body
FORTRAN IV se convierte en el primer lenguaje de programación en ser estandarizado.

# data[].attributes.body
GRAMÁTICA LIBRE DE CONTEXTO (GLC)
Se estudia y definen las GLC, los parsers predictivos y la eliminación de recursividad izquierda. Las gramaticas libres del contexto se pueden usar para expresar la mayoría de estructuras sintacticas de un lenguaje de programación.

# data[].attributes.body
ALGOL 60.
Fue el primer lenguaje que implementó definiciones de funciones anidadas con alcance léxico. Qi dio lugar a muchos otros lenguajes de programación, incluyendo CPL, Simula, BCPL,B Pascal y C.

# data[].attributes.body
LEX generador automático de analizadores léxicos.
Aparece LEX generador automático de analizadores léxicos a partir de expresiones regulares bajo UNIX.

# data[].attributes.body
YACC.
A mitad de los 70's Johnson crea YACC para UNIX (generador de analizadores sintácticos).

# data[].attributes.body
Kernighan y Ritchie publican el libro "El lenguaje de programación C", que populariza aún mas el lenguaje y su compilador.

# data[].attributes.body
Richard Stallman funda el proyecto GNU y anuncia su intención de desarrollar un compilador llamado GCC(GNU Compiler Collection).

# data[].attributes.body
Microsoft lanza Visual C++ 1.0 como parte de su entorno de desarrollo integrado Visual Studio.

# data[].attributes.body
JAVA se introduce con su propio compilador, que compila código en bytecode para la máquina  virtual JAVA (JVM).

# data[].attributes.body
Microsoft lanza el compilador .NET y el lenguaje C# como parte de la plataforma .NET

# data[].attributes.body
Clang, un compilador de código abierto desarrollado por Apple, se convierte en una alternativa popular al compilador GCC.

# data[].attributes.body
LLVM (Low Level Virtual Machine) , la infrestructura subyacente de Clang, se convierte en un proyecto independiente y ganando popularidad en la comunidad de desarrollo.

# data[].attributes.body
GCC 5.1 introduce el soporte para el estándar C++11.

# data[].attributes.body
Microsoft lanza el compilador de código abierto Roslyn, que se utiliza en Visual Studio y es parte del proyecto .NET Core.

# data[].attributes.body
La última versión de GCC hasta la fecha , GCC 10 , se lanza con mejoras significativas en la optimización y el soporte de estándares.

# data[].attributes.body
La tecnología de compiladores continúa evolucionando con desarrollos en compiladores JIT ( Just-In-Time) y la optimización de código en tiempo real, impulsados por las demandas de la informática de alto rendimiento y la inteligencia artificial