Compiladores y Lenguajes de Programación

  • Konrad Zuse

    Desarrolló el lenguaje plankalkul, el cual, fue aplicado entre otras cosaspara jugar al ajedrez. Zuse quería desarrollar un método sofisticado para el desarrollo de las tareas que el equipo debe hacer.
  • Short code

    Primer lenguaje que fue usado en un dispositivo de cómputo electrónico, aunque se debe decir que se trata de un lenguaje traducido a mano.
  • John Backus

    Dirige una investigación en IBM en un lenguaje algebraico, posteriormente sera llamado FORTRAN.
  • A-0 (Grace Hopper)

    Diseñador por Grace Hopper del primer compilador conocido ampliamente, el a-0, el cual, al ser liberado por la compañía en 1957, lo hizo con el nombre de math-matic. El A-0 funcionaba más como un cargador o enlazador que como la noción moderna de compilador. Un programa era especificado como una secuencia de subrutinas y argumentos. Las subrutinas eran identificadas por un código numérico y los argumentos de las subrutinas eran escritas directamente después de cada código de subrutinas.
  • Alick E. Glennie

    Durante su tiempo libre en la universidad de Manchester, concibe un sistema de programación llamado autocode, que viene a ser un compilador muy rudimentario.
  • FORTRAN inicio

    Se comienza a desarrollar FORTRAN
  • GLC de Chomsky

    Surge en Europa una corriente que pretende que los lenguajes fuesen independientes de la maquina, esta corriente estaba influida por los trabajos de GLC (Gramatica de Libre Contexto) de Chomsky
  • FORTRAN

    Sistema traductor de fórmulas matemáticas. fue desarrollado por un equipo, al frente del cual se encontraba john backus quien después vendría a contribuir en el desarrollo del compilador para el lenguaje algol y de la notación usada para la especificación sintáctica de los lenguajes, conocida como bnf (backus naur form), es utilizada en la IBM 704 y era dependiente de la maquina. FORTRAN, su primer compilador tardo 18 años -persona en realizarse.
  • Front end y Black end

    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).
  • LISP (John McCarthy)

    Comenzó a desarrollar la teoría de un lenguaje de procesamiento de listas. En 1959 aparece públicamente la primer implementación llamada LISP 1.5.En 1960 McCarthy publica un histórico articulo[5] acerca de los fundamentos de LISP que hizo por la programación lo mismo que hizo Euclídes por la geometría, demostrar como con unos cuantos operadores y una notación para funciones es posible construir un lenguaje de programación completo.
  • ALGOL

    un comite crea la especificación del lenguaje ALGOL, la tenía la particularidad de no definir la manera de manejar entrada y salida, dejando esta parte libre a cada implementación. Es en 1960 cuando aparece el lenguaje ALGOL 6.0 el primer lenguaje estructurado en bloques. Este lenguaje fue muy popular en el segundo lustro de los 60's.Su principal contribución es ser la raiz del arbol que ha producido lenguajes tales como pascal, C, C++, y Java.
  • AFD y AFN

    Rabin y Scott proponen el empleo de AFD (Automata Finito Determinista) y AFN(Automata Finito no Determinista) para el reconocimiento lexicográfico de los lenguajes.
  • Método Parsing

    Sheridan describe un método de parsing de FORTRAN para introducir paréntesis en una expresión. En los 60’s se desarrollan diversos métodos de parsers ascendentes y descendentes.
  • COBOL

    Conference on Data Systems and Languages (CODASYL) crea COBOL, un lenguaje para negocios; que fuera fácil de aprender para gente que no tuviera formación en ciencias de la computación. Sus únicos tipos de datos fueron cadenas y números. Lo que le dio la característica de poder agruparlos en arreglos sencillos, de modo que los datos podían ser organizados y seguidos de una mejor manera.
  • Algol 60

    Aparece Agol 60 y junto con los lenguajes de programación también la técnica de los compiladores avanza
  • DESARROLLO DE LOS LENGUAJES DE PROGRAMACIÓN MAS CONOCIDOS

    Basados en los primeros lenguajes de programación han surgido muchos otros lenguajes que siempre tienen la intención de tomar lo mejor, desechar lo malo, y agregar alguna “novedad”, respecto a los existentes.
  • Parsing

    Se usa por primera vez un Parsing desendente recursivo, ademas se estudia el paso de parámetros por nombre, valor y referencia, también se desarrolla la localización dinámica de datos.
  • BASIC

    Inventado por John George Kemeny y Thomas Eugene Kurtz. Es un lenguaje muy limitado que fue diseñado para personas que no fueran del área de ciencias de la computación. El nombre de BASIC, significa Beginners All-purpose Symbolic Instruction Code.
  • BASIC

    Los ocho principios de diseño de BASIC fueron: -Ser fácil de usar para los principiantes. - Ser un lenguaje de
    propósito general.

    -Permitir que los expertos añadieran características avanzadas,
    mientras que el lenguaje permanecía simple para los
    principiantes.

    -Ser interactivo.
    -Proveer mensajes de error claros y amigables.
    -Responder Rápido a los programas pequeños.

    -No requerir un conocimiento del hardware de la computadora.

    -El lenguaje se baso en Fortran y Algol 6.0
  • GLC

    Se estudia y definen las GLC (Gramática Libre de Contexto), los parsers predictivos y la eliminación de recursividad izquierda
  • PASCAL

    También implemento el tipo apuntador y agrego el CASE, e hizo uso de variables dinámicas. Sin embargo no implemento arreglos dinámicos ni agrupamiento de variables lo cual contribuyo a su perdida de popularidad frente a nuevos lenguajes. Delphi es una versión moderna y orientada a objetos de Pascal.
  • PASCAL

    Diseñado por Niklaus Wirth, como una herramienta de enseñanza de la programación. Sus desarrolladores se concentraron en desarrollar buenas herramientas que contribuyeran a la enseñanza, tal como un buen debugger, y un buen editor. Fue diseñado de una manera muy ordenada, reflejando la experiencia de su diseñador, tomo las mejores características de los lenguajes de su tiempo, COBOL, ALGOL, y FORTRAN, al mismo tiempo que busco evitar sus deficiencias, y hacerlo lo mas claro posible.
  • PROLOG

    Diseñado por los profesores Alain Colmerauer y Phillipe Roussel, su nombre proviene del francés Programationet Logique, es popular en los círculos de interés en Inteligencia Artificial. Su sintaxis y semántica son considerados simples y claros, su paradigma de programación es el declarativo y un programa en Prolog se compone de cláusulas que constituyen reglas del tipo modus ponens, es decir, "Si es verdad el antecedente, entonces es verdad el consecuente ".
  • C

    Debido a esto C es comunmente usado para programación de nivel de sistema en UNIX, Linux y Mac. Se trata de un lenguaje no fuertemente tipeado demedio nivel pero con muchas características debajo nivel. Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone deconstrucciones del lenguaje que permiten un control a muy bajo nivel. Destaca su gran riqueza de operadores y expresiones.
  • C

    Fue diseñado por Dennis Ritchie y Ken Thompson y se baso en los lenguajes de programación B y BCPL. Se basa en el paradigma imperativo y desde su creación estuvo pensado para programación de sistemas operativos, se creo para usarse en UNIX, y crecio de la mano del desarrollo de UNIX, lo que propicio la creación de características avanzadas tales como variables dinámicas, multitarea, manejo de interrupciones, forking y un poderoso manejo entrada/salida de bajo nivel.
  • LEX y YACC

    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), ahora un compilador de divide en varias fases.
  • C++

    Las principales características del C++ son abstracción, el soporte para programación orientada a objetos y el soporte de plantillas o programación genérica. Por lo cual, se puede decir que C++ es un lenguaje multi paradigma que abarca tres paradigmas de la programación: La programación estructurada, la programación genérica y la programación orientada a objetos.
  • C++

    Un nuevo modelo de de programación fue desarrollado, la programación orientada a objetos, la idea básica es que los objetos son piezas de código auto contenidas y reusables. Inicialmente se llamo C con clases, para posteriormente tomar su nombre definitivo C++ cuando fue publicado en 1983.
  • PERL

    (Practical Extraction and Report Language), fue desarrollado por Larry Wall, inicialmente motivado para cubrir las carencias de sed y awk y las limitaciones del shell, su primer versión publica fue anunciada en el News groupcomp.sources.misc. Actualmente Perl es un lenguaje de propósito general, usado para amplia gama de tareas que incluyen administración de sistemas, desarrollo web, programación en red, desarrollo GUI, si lo deseas, puedes programar orientado a objetos y mucho mas.
  • PERL

    Es uno de los lenguajes mas flexibles y poderosos, junto con Lisp, permite desarrollar prácticamente cualquier cosa con el, es poderoso, flexible yexpresivo. Perl es libre y es divertido, permite ser creativo y no te ata a las restricciones impuestas por el diseñador del lenguaje, en Perl siempre hay mas de una manera de hacer las cosas.
  • PYTHON

    Es un lenguaje interpretado e interactivo, creado por Guido Van Rossum en 1991. Es completamente tipeado dinamicamente, usa manejo automático de memoria, por lo cual es similar a Lisp, Perl, Ruby, Scheme y Tcl. Algunos lo consideran la "oposición leal" a Perl, lenguaje con el cual mantiene una rivalidad amistosa. Los usuarios de Python consideran a éste mucho más limpio y elegante para programar. Sin embargo esto es mas un punto de vista de sus usuarios que una realidad.
  • JAVA

    Es una plataforma de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales. El lenguaje de programación fue desarrollado por James Gosling entre 1990 y 1994, pensado como un reemplazo de C++, orientado a dispositivos embebidos, y a la televisión interactiva, posteriormente que para rescatarlo del fracaso y fue reorientado hacia su aplicación en la Web
  • RUBY

    Es un lenguaje de programación interpretado, orientado a objetos, con una sintaxis inspirada por Perl y Ada, que también tomo ideas de Lisp, Python, Dylan y CLU. Fue creado por Yukihiro Matsumoto, quien comenzó su desarrollo en 1993, y lo publico en 1995. El nombre Ruby fue elegido para reflejar su herencia de Perl.
  • JAVA

    La plataforma Java consta de las siguientes partes:
    -El lenguaje de programación, mismo.
    -La máquina virtual de Javao JRE, que permite la portabilidad en ejecución.
    -El API Java, una biblioteca estándar para el lenguaje
  • PHP

    Creado por Rasmus Lerdorf, en 1994, inicialmente eran una serie de scriptsen Perl y posteriormente estos scripts fueron reescritos en C, que el usaba para algunas tareas Web, fue publicado por primera vez el 8 de junio de 1995, actualmente su nombre oficial es: “PHP Hypertext Preprocessor”. Las caracteristicas mas destacadas son su facilidad de aprendizaje y que es software libre. Comparte características con otros lenguajes de programación como C y perl y recientemente con Java
  • JAVA SCRIPT

    Es un lenguaje de script basado en objetos, que se apoya en el modelo de prototipos. Es muy popular por su uso en sitios Web. Fue desarrollado por Brendan Eich, quien lo publicó en 1995. Desafortunadamente los diferentes navegadores exponen diferentes objetos y métodos por lo cual es necesario escribir versiones especificas de un programa en Javascript para los diferentes tipos de navegadores. Entre las principales tecnologías para interactuar con DOM que usan JavaScript esta AJAX y DHTML.
  • C#

    Es un lenguaje orientado a objetos desarrollado por Microsoft, tomando ideas de C++ y Java, como parte de su estrategia comercial .Net.
  • GRACE

    Grace es un nuevo lenguaje de programación en desarrollo, creado principalmente con fines educativos. El diseño del lenguaje se inició en 2010 y la actual versión de la especificación es 0.353.