Semana

Anuncio
Ingeniería de Sistemas y Computación
ISIS-4109 Diseño de Lenguajes
Programa del Curso (2009-2)
Profesor: Silvia Takahashi
([email protected])
Motivación: El problema de diseñar de lenguajes es un tema aplicable tanto en la creación de
nuevos lenguajes de programación como en otros dominios. Cuando se define un nuevo modelo o
representación, es necesario definir formas de referirse a estos nuevos conceptos y poder
razonar sobre ellos: es decir se debe definir un lenguaje. Algunos dominios en los que es aplicable
esta teoría son los siguientes: descripción de modelos, procesos, interfaces, protocolos, etc. Los
lenguajes de propósito específico pueden usarse como generadores de aplicaciones para poder
agilizar la puesta en marcha de sistemas acercando más al usuario final a este proceso.
Objetivo: El objetivo del curso es enseñar los conceptos básicos de diseño de lenguajes. Al final
del curso el estudiante debe entender el problema de la definición de un lenguaje: sintaxis y
semántica. Debe estar en capacidad de definir un lenguaje definiendo primero un modelo y una
sintaxis para su representación. Adicionalmente, debe estar familiarizado con ciertos problemas
que se presentan al implementar lenguajes de programación.
Los Grandes Temas que se tratarán son los siguientes:
1. Diseño e Implementación de Lenguajes de Programación (8 semanas)
a.
b.
c.
d.
e.
f.
Qué es un lenguaje de programación
Repaso de Sintaxis y Semántica
Máquinas Abstractas
Implementación de Lenguajes Procedimentales
Implementación de Lenguajes Funcionales
Implementación de Lenguajes Lógicos
2. Diseño e Implementación de Lenguajes de Propósito Específico (7 semanas)
a.
b.
c.
d.
Qué es un lenguaje de propósito específico
Patrones para lenguajes de propósito específico
Ejemplos de Lenguajes de propósito específico
Herramientas para definir Lenguajes de propósito específico
Bibliografía:
El curso no tiene un texto guía. Se asignarán lecturas durante el transcurso del curso para cada
tema. A continuación aparece una lista de referencias que pueden ser útiles para algunos de los
temas del curso. Se publicarán en Sicua la lista de los artículos.
Un buen texto que trata el tema de la primera parte del curso es: Fundamentals of Programming
Languages 2nd Edition – Ellis Horowitz, Computer Science Press 1984. Es el texto clásico. Sin
embargo, en la biblioteca se encuentran muchos libros que tratan el tema bastante bien.
Otro Texto Clásico: Programming Languages – Design and Implementation – T. W. Pratt, M.V
Zelkowitz 3rd Edition, Prentice Hall 1996.
Para los lenguajes de propósito específico se recomienda el libro que Martin Fowler
estáescribiendo y que se publica acá: http://martinfowler.com/dslwip/.
REGLAS DEL JUEGO
Evaluación:
Exámenes parciales 50%
 Parcial 1:
25% En la semana 8
 Parcial 2:
25% El día del examen final
Tareas y Quices:
10%
Talleres y Proyectos: 40%
Notas Definitivas: La asignación de la nota se determinará teniendo en cuenta el desempeño de
todo el curso. Se agruparán estudiantes según la nota final y a todos los estudiantes de un mismo
grupo se les asignará la misma nota.
Asistencia a clase: La asistencia a clase es obligatoria. Los estudiantes deben asistir a por lo
menos el 80% de las clases del semestre.
Colaboración y Trabajo en Grupo: Todos los trabajos y las pruebas serán individuales al no ser
que se indique lo contrario en el enunciado.
Descargar