-
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
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
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
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
(“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
(“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
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
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
(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
(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
A mitad de los 70’s Johnson crea YACC para UNIX (generador de analizadores sintácticos). -
Perl
Creado para el procesamiento de informes en sistemas Unix. Hoy en día es conocido por su gran potencia y versatilidad. -
Python
Creado para apoyar una variedad de estilos de programación y hacerlo divertido de usar. -
Ruby
Una lenguaje influenciado por Perl, Ada, Lisp, Smalltalk, etc. Diseñado para la programación productiva y agradable. -
Java
Hecho para un proyecto de televisión interactiva. Funciona multiplataforma. Es el segundo lenguaje más popular (detrás de lenguaje C).