Programación Avanzada



Nombre: Programación Avanzada
Semestre: 5A
Código: PAV
Créditos: 3 Teoría + 3 Práctica
Profesores: Germán Vidal.
Prerrequisitos recomendados: PRD



Objetivos

La asignatura se centra en el estudio de diferentes temas relacionados con el diseño e implementación de los lenguajes de programación.

En primer lugar, y como alternativa a los esquemas de compilación ya estudiados durante las asignaturas previas, se estudia el diseño de la máquina virtual del lenguaje Prolog. Una máquina virtual es un programa software que se comporta como un procesador hardware y que posee su propio lenguaje máquina. Se le llama "virtual" porque no existe realmente un chip hardware para la ejecución del lenguaje de la máquina virtual, sino que ésta se simula mediante software. La compilación de un lenguaje de programación se suele realizar generalmente al lenguaje intermedio de una máquina virtual, facilitando así el desarrollo de compiladores para distintas plataformas hardware. Conocer la máquina virtual de un lenguaje de programación resulta útil no sólo para estudiar cuestiones de diseño y compilación del lenguaje, sino también para poder desarrollar aplicaciones eficientes.

En segundo lugar, se estudia el desarrollo de aplicaciones para Internet. Para este propósito, han surgido diferentes lenguajes de programación con características muy particulares que los hacen especialmente adecuados para la programación de aplicaciones WWW. Se trata, en general, de lenguajes interpretados, con un sistema de tipos muy dinámico, orientados a objetos, y con distintas facilidades para manipular el DOM (Document Object Model) subyancente en las páginas HTML. Concretamente, se verán en clase los fundamentos del lenguaje de script más popular: JavaScript. Veremos algunos ejemplos típicos de programación en dicho lenguaje y se abordará el desarrollo de interfaces WWW empleando JavaScript.

Temario

  1. La máquina virtual de Prolog.

    1.1. Introducción a los lenguajes de programación lógica
    1.2. Unificación
    1.3. Resolución plana
    1.4. Prolog puro
    1.5. Optimizaciones del compilador

  2. Lenguajes de "script"

    2.1. Características de los lenguajes de script
    2.2. Lenguajes de script y HTML: DHTML
    2.3. Fundamentos del lenguaje
    2.4. JavaScript y el DOM
    2.5. Ejemplos prácticos

Prácticas

Material



Bibliografía Evaluación

La evaluación se realizará principalmente a partir de las prácticas desarrolladas en el laboratorio (un 60% de la nota final). Además, habrá un examen teórico sobre los contenidos de la asignatura (un 40% de la nota final) que podrá sustituirse por la realización de trabajos prácticos (previa aprobación de los mismos por el profesor). También existe la posibilidad de realizar la exposición de trabajos voluntarios en clase para subir nota.


Email: gvidal (at) dsic.upv.es