Sie sind auf Seite 1von 11

Universidad de San Carlos de Guatemala

Facultad de Ingeniera
Escuela de Ciencias y Sistemas
2do. Semestre 2014
Organizacin de Lenguajes y Compiladores 1

















Proyecto nico












J os Eduardo Lpez Villatoro

Diego Alejandro Castellanos Tunchez

Diego Solis

Objeti vos
General
Que el estudiante sea capaz de implementar las fases de anlisis de un compilador, tanto el
anlisis lxico como el sintctico, as como la utilizacin de la tabla de smbolos y los errores.
Especficos
Que el estudiante aplique los conocimientos aprendidos en el curso de Compiladores 1
y Lenguajes Formales de Programacin.

Que el estudiante implemente las fases de un compilador en el anlisis lxico y anlisis
sintctico.

Que el estudiante comprenda y utilice las herramientas jLex, cup, GoldParser y bison.

Aplicar el concepto de compiladores como alternativa de solucin de problemas.

Que el estudiante realice una aplicacin interactiva que trabaje conjuntamente con el
analizador.

Que el estudiante sea capaz de crear gramticas y de recuperarse de errores lxicos,
sintcticos.




Descripci n
El Proyecto ser desarrollado en 3 Fases. En cada fase se realizar una aplicacin utilizando
diferente lenguaje y diferente herramienta para la realizacin de los analizadores necesarios
para el correcto funcionamiento del proyecto.

Se requiere que se realice un juego el cual se autnomo, es decir, que los personajes en el
juego se mueve automticamente siguiendo un patrn de movimientos pre programados.

Se tendr un nico archivo en cual se contendrn todas las configuraciones de movimiento y de
elementos que tenga el juego, Este archivo deber ser analizado de tal manera que solo se
extraiga la informacin necesaria y que esta pueda generar una instancia de juego
correctamente.

Se requiere que se separe la informacin del archivo original en 2 archivos. Uno en el que
estarn todos los bloques de movimientos de los personajes y otro con toda la informacin
sobre los elementos que contenga la instancia de juego a cargar para luego compilar ambos y
ver el juego
Diagrama General del Proyecto


Lenguaje de Elementos
Este lenguaje definir los elementos que el juego puede tener los cuales deben estar dentro de
la siguiente sintaxis
<element definition>
<begin>
-----------------
-----------------
<end>
Los elementos a encontrar pueden ser los siguientes: (tomar en cuenta que estos pueden venir
en cualquier orden al igual que los atributos definidos en ellos)
Mapa
<mapa>
Tamao:
X=valor
Y=valor
</mapa/>
Muro
<muro>
Posicin:
X=valor
Y=valor
Imagen: ruta
</muro/>
Obj etos
<objetos>
<objeto>
Posicin:
X=valor
Y=valor
Bonificacin:
Valor=valor
Sentido=+ -
Imagen : ruta
</obejto/>
.
.
</objetos/>
Enemigos
<enemigos>
<enemigo>
Movimientos: mtodo
Dao :valor
Posicin:
X=valor
Y=valor
Imagen: ruta
</enemigo/>
.
.
</enemigos/>
Heroe
<heroe>
Movimiento:mtodo
Dao: valor
Armadura:valor
Posicion:
X=valor
Y=valor
Imagen: ruta
Nombre: nombre
</heroe/>
Meta
<meta>
Posicin:
X=valor
Y=valor
Imagen: ruta
</meta/>

Lenguaje de Movi mi entos
Este lenguaje solo se encontrar mtodos los cuales definen el movimiento de los personajes.
La sintaxis ser la siguiente:

{

//*
Conjunto de Instrucciones
*//

}named: <nombre>
Operaciones Aritmti cas
Este lenguaje estar en lo que es una notacin prefija en lo que concierne a operaciones
aritmticas.
Las operaciones aritmticas a realizar son:
Operacion Signo Ejemplo Precedencia
Sumas + +3 2 1
Restas - - 5 6 1
Multiplicaciones * * 9 8 2
Divisiones / / 10 12 2
Modulares \ \ 15 6 3
Potencia ^ ^3 32 4
Declaraci ones
Las declaraciones se realizarn de la siguiente manera:

A,b,c are Integer with value 10
B is string with value hola mundo
C is string



Tipos de Datos
Los tipos de datos a usar son:

Tipo de Dato Lenguaje Valor Predeterminado
Booleano bool falso
Entero Integer 0
Cadena String

Asignaciones
Las asignaciones de variables sern de la siguiente manera

<variable> with value <expresin>
Estructuras de Control
IF
if <condicin> do
---------
---------
---------
end
For
for <variable> begin in <valor> step <valor>
-------------
-------------
-------------
end with <valor>
While
while <condicin> do
begin
---------------
---------------
---------------
end
Switch
evaluate <variable> with
<valor1>:
-------------
-------------
<valor2>:
-------------
------------
miss value:
-------------
-------------

end evaluate
Funciones y Mtodos Propios del Lenguaje

Descripcin Funcin/Mtodo Tipo del parmetro
Movimiento
izquierda
movleft(parametro) Integer
Movimiento derecha movright(parametro) Integer
Movimiento abajo movdown(parametro) Integer
Movimiento arriba movup(parametro) Integer
Dialogo de
personaje
say(parametro) String
Convertir convert(parametro1,parametro2) Integer, String
esperar wait(parametro) Integer.(es el tiempo en milisegundos
que espera)



Funcin Convert
Esta funcin retornara el valor del parmetro 1 al tipo indicado en el parmetro 2. Los valores
del parmetro 2 solo pueden ser los tipos de datos
Condiciones
Operadores comparativos

Lenguaje Operador
is igual
above mayor
below menor

Operadores Lgicos

Lenguaje Conector Lgico Precedencia
or o 1
and y 2
not no 3

Agrupacin de Expresiones y Condiciones
El lenguaje permitir el uso de los siguientes smbolos para agrupar condiciones u operaciones
dentro de las expresiones. Las agrupaciones son las que tendrn la mayor precedencia en
expresiones y condiciones

Los smbolos son: ( , )

Reglas del Juego
El juego consistir en la resolucin automtica de laberintos predefinidos, en el juego se
tendrn lo que son objetos los cuales le sumaran o restaran punteo segn sea el caso.

Habr 3 formas de terminar el juego las cuales sern las siguientes:
La vida del Hroe llegue a 0
El hroe llegue a la Meta
El hroe deje de moverse y se detenga completamente.

El hroe y los enemigos atacaran cuando estn uno al lado del otro, es decir, que el hroe
ataca a los enemigos que tenga a la izquierda, derecha, arriba y abajo. De igual forma los
enemigos atacaran al hroe si este se encuentra en alguna de las direcciones antes
mencionadas.
Entregables
Fase 1
En esta fase se realizar el anlisis de los elementos del juego. Se utilizar la herramienta
GoldParser y deber ser realizada en lenguaje Basic.

La aplicacin deber mostrar el catlogo de elementos cargados as tambin se deber poder
realizar las siguientes operaciones a los elementos cargados:
Crear nuevos
Modificar
Eliminar

Se deber proporcionar un editor grafico para la creacin de los elementos nuevos ya que
estos deben ser posicionados en el mapa el cual deber ser definido previamente.

Debe tener la opcin de exportar los elementos que se seleccione a un archivo con formato
J SON y tambin deber mostrar un reporte con los elementos que se exporten o que se tengan
en cualquier momento.

Al momento de realizar la carga del archivo se deber mostrar un reporte con los elementos
cargados y un reporte con los errores de tipo lxico y sintctico que tenga el archivo de entrada
tomando en cuenta solo las partes correspondientes al lenguaje de elementos.
Fase 2
En esta fase se realizar el anlisis de los movimientos que los personajes del juego puedan
realizar. Se deber utilizar las herramientas J Flex/J Lex y Bison para realizar los analizadores
necesarios para lo que se les pide, el lenguaje a utilizar ser C.

La aplicacin deber de poder cargar el archivo de entrada (.gms) y deber de realizar los
diagramas de flujo los cuales corresponden a los mtodos en el archivo cargado

Deber de tener la opcin de exportar los mtodos que se encuentren cargados a un archivo
con extensin .muv. Este archivo tendr la sintaxis igual a la del lenguaje J ava teniendo en
cuenta que todos los mtodos son public void.

Tambin deber de tener la opcin de mostrar los errores que se encuentren en el archivo
compilado con anterioridad.
Fase 3
La ltima fase consistir en realizar la aplicacin para el anlisis de los archivos de salida de
las fases anteriores. Esta fase deber ser implementada en lenguaje J ava utilizando las
herramientas J Flex/J lex y CUP para realizar los analizadores necesarios.

Tomar en cuenta que la salida de esta aplicacin es el juego en s y por lo que la interfaz del
juego deber ser atractiva y fcil de entender (intuitiva). Tambin debern de desplegar un
reporte de la tabla de smbolos y de los errores encontrados en los archivos de entrada

Recordar que se deber contar con lo necesario para que se muestre la informacin del
jugador y de los dilogos que los personajes del juego puedan tener, as como las opciones de
pausar y reanudar el juego as como de para el mismo.




CONSIDERACIONES GENERALES

Tomar en cuenta los siguientes puntos:
Es Individual.
La interfaz grafica queda a discrecin del estudiante tomando en cuenta que se debe de
poder realizar lo que se solicita.
Deber de tener manual de usuario y manual tcnico.
Fecha de Entrega
Fase 1: 15/09/2014
Fase 2: 10/10/2014
Fase 3: 13/11/2014
No se permitir modificacin de cdigo durante la calificacin.
La forma de entrega se notificara posteriormente al igual que la fecha y horario de
calificacin.
Para la entrega de la Fase 3 es necesario entregar la Fase 2
Fase 1 tendr una ponderacin de 15 puntos.
Fase 1 tendr una ponderacin de 20 puntos.
Fase 1 tendr una ponderacin de 35 puntos.

Das könnte Ihnen auch gefallen