-
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.
-
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.
-
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.
-
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
-
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.
-
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.
-
(“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..
-
Rabin y Scott proponen el empleo de AFD y AFN para el reconocimiento lexicográfico de los lenguajes.
-
La transición desde un estado puede tener múltiples destinos. Por eso se le llama no determinista.
-
La transición desde un estado puede tener como destino un único estado. Por eso se llama determinista.
-
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.
-
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.
-
Aparece BNF (Backus-1960, Naur-1963, Knuth-1964) como una guía para el desarrollo del análisis sintáctico.
-
Se usa por primera vez un parsing descendente recursivo
-
(“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.
-
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 -
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. -
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 .
-
(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.
-
(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.
-
Aparece LEX generador automático de analizadores léxicos a partir de expresiones regulares bajo UNIX
-
A mitad de los 70’s Johnson crea YACC para UNIX (generador de analizadores sintácticos).
-
Creado para el procesamiento de informes en sistemas Unix. Hoy en día es conocido por su gran potencia y versatilidad.
-
Creado para apoyar una variedad de estilos de programación y hacerlo divertido de usar.
-
Una lenguaje influenciado por Perl, Ada, Lisp, Smalltalk, etc. Diseñado para la programación productiva y agradable.
-
Hecho para un proyecto de televisión interactiva. Funciona multiplataforma. Es el segundo lenguaje más popular (detrás de lenguaje C).