This page last changed on Oct 10, 2007 by carlos.gonzalez.

Objetivos del curso

Al terminar este curso los alumnos deberán haber obtenido los conocimientos teóricos y prácticos que les permitan:

  • Comprender el funcionamiento interno de los compiladores, traductores, intérpretes para distintos tipos de lenguajes, así como de ensambladores, enlazadores (linkers), y cargadores (loaders) que consigan en su vida académica y profesional.
  • Estar en capacidad de construir traductores e intérpretes para lenguajes de complejidad media.
  • Conocer la utilidad de las herramientas llamadas generadores de compiladores (o compiladores de compiladores) en la fabricación de traductores e intérpretes.

Al final el curso, los alumnos deberán estar en capacidad de aplicar los conocimientos teóricos y prácticos adquiridos de forma inmediata a otras materias. Por ejemplo, los alumnos deberán poder aplicar sus conocimientos de autómatas finitos y gramáticas a los algoritmos de comprensión, y a la modificación, y creación de protocolos de comunicaciones para las materias sobre redes de computadores.

Motivación

La teoría de lenguajes, traducción e interpretación, aplica a más que los lenguajes de programación, por lo que es altamente probable que los estudiantes encuentren problemas que requieran de la aplicación de los conocimientos impartidos en este curso en su vida académica y profesional.

Desde el punto de vista de un informático, prácticamente todas las acciones a desarrollar en el transcurso de su carrera profesional, tendrá que ver con traductores: la programación, la creación de ficheros batch, la utilización de un intérprete de comando, el aprendizaje de un nuevo lenguaje de programación, etc.

Aprendizaje de nuevos lenguajes

Conocer los conceptos de la traducción automática, en particular aquellos de componentes léxicos, expresiones regulares, gramáticas, y tiempo de vida y alcance de los identificadores, facilita enormemente el aprendizaje de nuevos lenguajes de programación, lo cual es algo que el profesional en informática debe hacer repetidamente a lo largo de su carrera.

Áreas de Aplicación

Algunos ejemplos de áreas donde aplican los conocimientos sobre traductores e intérpretes son:

  • Cualquier formato de archivo. El programa lector de dicho formato es un Traductor o un Interprete.
  • Protocolos de comunicación en redes (uno nuevo todos los días, HTTP/HTML en 1991 http://www.w3.org/MarkUp/).
  • Comunicación entre aplicaciones relacionadas.
  • Comunicación entre aplicaciones poco relacionadas (e-commerce, B2B).
  • Procesamiento de texto, impresión, lino-impresión.
  • Procesamiento de imágenes.
  • Juegos de computadoras.
  • XML (Extensible Markup Language). La mayoría de las aplicaciones de XML para transferencia de datos requieren de una definición sintáctica parecida a una gramática.

La construcción de un Traductor se presenta en diversas situaciones de la vida profesional y conocer las técnicas básicas de la construcción de traductores y de las herramientas generadoras de compiladores, puede ayudarnos a resolver este tipo de situaciones de manera rápida y eficiente, ya que no tendremos que reinventar la rueda sino solo reutilizar conocimientos y aplicaciones ampliamente probadas.

Historia

Estos son algunos de los pioneros en el área de la traducción e interpretación de lenguajes:

  • Alonzo Church
    • Propuso que las funciones computables son el mismo conjunto que las funciones recursivas.
    • Extendió el teorema de Gödel de la aritmética al cálculo de predicados.
  • John von Neuman
    • ENIAC@wikipedia (1944), uno de los primeros computadores digitales.
    • Invención del Software (1957): no es necesario grabar en el hardware los programas a ejecutar por el mismo.
  • John McCarthy
    • Inventó el Cálculo Lambda, una formalización de los lenguajes funcionales.
    • Inventor de LISP, el más popular y conocido lenguaje de programación funcional.

Document generated by Confluence on Oct 04, 2010 11:25