Вы находитесь на странице: 1из 3

COMPILADORES Y AUTOMATAS AO 2011 TRABAJO PRACTICO FINAL Objetivos: Adquirir habilidades en la especificacin formal de la sintaxis de un lenguaje.

uaje. Adquirir habilidades y conocimientos en la construccin de analizadores sintcticos. Conocer las herramientas disponibles para el desarrollo de compiladores. Aplicar criterios de seleccin de las distintas tcnicas y herramientas disponibles.

Enunciado: Utilizando tcnicas y herramientas para la construccin de compiladores, desarrollar un programa que permita analizar el registro de movimientos de una partida de ajedrez siguiendo la notacin algebraica. Las normas generales de dicha notacin son: a) Las filas del tablero se nombran con los nmeros del 1 al 8; las piezas blancas ocuparn las filas 1 y 2 y las piezas negras las filas 7 y 8. b) Las columnas del tablero se nombran con las letras minsculas de la "a" a la "h" comenzando por la izquierda del jugador con piezas blancas. c) Las casillas reciben el nombre de la columna y la fila correspondientes (e8, d5, c6, etc.) d) Las piezas son designadas por su inicial, excepto el pen: R (Rey), D (Dama), T (Torre), A (Alfil), C (Caballo). e) Una jugada se escribe con la inicial de la pieza y la casilla a la cual se mueve, excepto por el Pen, del que se menciona slo la casilla (Ce4, por ejemplo, significa que un caballo mueve a la casilla e4; d5 representa la jugada del pen de la columna d a la fila 5). f) Una captura se indica con una "x" entre la inicial de la pieza (o la columna del pen) y la casilla de la pieza capturada (Txb5 indica que una torre captura una pieza en b5; dxe6 indica que el pen de la columna d captura en e6). g) Si dos piezas iguales pueden ir a una misma casilla, se indica la columna de la pieza que mueve; si ambas piezas estn en la misma columna, se indica la fila (Ced5 significa que, de entre dos caballos del mismo bando, el ubicado en la columna "e" mueve a la casilla d5). h) El jaque se indica con un signo "+", y el jaque mate con "++" (o tambin "#"). i) El enroque corto se anota como 0-0, y el enroque largo se anota como 0-0-0.

j) Las promociones se indican incluyendo la letra (en maysculas) de la pieza promocionada despus
de la casilla destino. Ej.: Si un pen negro situado en la casilla g7 se mueve, alcanzando la fila octava y promocionando a una Dama, se escribira: g8=D

Algunos smbolos utilizados para comentar partidas son: !: Buena jugada !!: Jugada brillante (muy buena) ?: Mala jugada ??: Muy mala jugada !?: Jugada interesante ?!: Jugada dudosa : Ventaja blanca +/=: Ligera ventaja blanca +: Ventaja ganadora blanca /+: Ventaja negra =/+: Ligera ventaja negra +: Ventaja ganadora negra : Posicin incierta

Ejemplo de partida (jaque del pastor): 1. e4 e5, 2. Ac4 Cc6, 3. Dh5 Cf6, 4. Dxf7++ Funcionamiento bsico: El programa deber permitir leer un archivo de texto arbitrario que contenga una partida especificada por el usuario. De no contener errores el programa deber mostrar la situacin del tablero luego del ltimo movimiento de la partida. De encontrar un error se deber informar el tipo de error y el movimiento que lo ha provocado. Tipos de errores posibles: a) Lxicos: secuencias de smbolos que no concuerdan con ningn patrn b) Sintcticos: expresiones que no estn acordes a la sintaxis propia de la notacin c) Semnticos: Movimientos invlidos: el movimiento define un desplazamiento no permitido para la pieza o imposible de realizar en funcin de la situacin actual del tablero (desplazamiento a una casilla ya ocupada por otra pieza, indicacin de una captura cuando en el casillero destino no hay piezas contrarias, etc.) Consultas: adicionalmente se deber permitir realizar las siguientes consultas parametrizadas a) estado del tablero luego de un determinado movimiento b) movimientos realizados por una pieza determinada c) jugadas comentadas (buena jugada, jugada brillante, etc.): se deber mostrar el estado del tablero antes y despus de cada jugada con un comentario. d) Jugada con un comentario especfico: se deber mostrar el estado del tablero antes y despus de cada jugada que contenga el comentario especificado.

Gua de tareas a realizar: Especificar la sintaxis del registro de los movimientos a travs de una gramtica formal. Definir las acciones a realizar para cada produccin (depender del mtodo de anlisis (ascendente o descendente) que se desee utilizar) Desarrollar el programa: tanto el mtodo de anlisis como la eleccin de la herramienta (lex, yacc, javacc) si se desea utilizar alguna, como as tambin el lenguaje de programacin, quedan bajo criterio del alumno.

Modalidad de desarrollo: Individual o grupos de hasta 2 integrantes. Cronograma de presentaciones:

Entrega preliminar: 11/10/2011 informe conteniendo la definicin formal de la gramtica y las reglas semnticas asociadas. Deber contener al menos lo siguiente: a) Especificacin de los componentes lxicos de la gramtica: definir cada componente lxico con el patrn correspondiente b) Producciones de la gramtica

c) Reglas semnticas asociadas a cada produccin: mediante pseudocdigo o descripcin narrativa definir las acciones a realizar d) Esbozo de la implementacin: delinear la metodologa de desarrollo a utilizar (si se va a hacer uso de alguna herramienta o se va a optar por programar mediante algn mtodo de anlisis) especificando el criterio utilizado en la eleccin realizada.

Entrega final: 08/11/2011 Se deber entregar: Informe definitivo describiendo el programa desarrollado conteniendo lo siguiente: a) Descripcin general del programa: funcionalidad proporcionada, caractersticas, alcances, limitaciones, etc. b) Documentacin del diseo: definicin formal de la gramtica presentada en la entrega preliminar. Aqu se deber documentar todo cambio o adaptacin que haya debido hacerse en la especificacin de la gramtica por limitaciones producto ya sea del mtodo de implementacin o de las herramientas utilizadas. c) Aspectos de implementacin: mtodos de anlisis utilizados, herramientas, lenguaje de programacin, sistema operativo destino, as como tambin una descripcin general de las tareas realizadas internamente por el programa. d) Gua para la utilizacin: forma de ejecutar el programa, comandos y parmetros admitidos y descripcin de los mismos. e) Otros aspectos o caractersticas que se desee hacer notar por su inters. Archivos fuentes Archivos binarios necesarios para la ejecucin del programa. Casos de prueba: dos casos de prueba correctos y dos errneos.

La instancia de recuperacin para los trabajos desaprobados en la fecha de entrega final es el 22/11/2011. Solamente podrn acceder a esta instancia los trabajos prcticos desaprobados entregados en la fecha acordada. Forma de entrega: Tanto los informes como los archivos fuentes, binarios y dems documentacin exigida debern ser subidos al aula virtual con la que cuenta la ctedra en una fecha no posterior a las especificadas. Se deber entregar un archivo zip con formato nombreAlumno1_nombreAlumno2_ao.zip. El contenido deber estar organizado en subdirectorios de acuerdo a los tipos de archivos que almacenan. Ejemplo: subdirectorio bin para los archivos binarios, src para los archivos fuentes, doc para los archivos de informes y documentacin, etc. Aspectos y criterios de evaluacin: Al momento de evaluar se tendrn en cuenta los siguientes tems:

Funcionalidad: Que el trabajo cumpla con todos los requerimientos propuestos. Uso: Presentacin y amigabilidad de las salidas. Conocimiento mnimo necesario para operar la aplicacin. Codificacin: Optimizacin y reutilizacin de cdigo. Trabajo en equipo: Que cada integrante del grupo participe en forma activa del desarrollo. Documentacin: Cantidad y calidad de los informes y documentacin presentada. Innovacin: Funcionalidad adicional, extras o tecnologa.

Вам также может понравиться