Formas
Tipo: Interprete
Buscar en internet y descargar el codigo fuente de HOC (High Order Calculator)
Formas 2D (No tortuga)
Codificar un interprete para un lenguaje imperativo que implemente un lenguaje para dibujar formas en modo grafico
Para este proyecto necesitara una gramatica para tener lo sig.
Color RGB
Formas basicas
Figuras (con relleno sin relleno)
Circulo radio xc yc [color RGB]
Elipse ejeMayor ejeMenor xc yc [color RGB]
Rectangulo x y ancho alto [color RGB]
Linea x1 y1 x2 y2 [color]
Texto Fuente, Tamaño , color , estilo y posicion
Ejemplo: Texto “inserte su texto aqui” xt yt
Imagen “nombre.gif” xc yc
ponga la opcion de rellenar con un color solido
Operaciones
trasladar dx dy
rotar angulo
escalar ex ey
Implementar
Usar polimorfismo para dibujar, trasladar, rotar y escalar las figuras.
tabla de simbolos HOC3 ( variables , builtins [ sin , cos, tan , log , exp, sqrt] )
Maquina virtual de pila como la de HOC4
Decisiones y ciclos HOC5
Ciclos con for
Funciones y procedimientos ( declaracion , definicion y llamada) HOC6
Debe soportar recursividad directa e indirecta
Hacer un programa Demo para:
Usando variables dibuje una casa , un auto, montañas , nubes, arboles y una persona
Usando ciclos dibuje
Grecas
Tablero (cuadricula)
Tablero de ajedrez o damas
Circulos concentricos
Rectangulos concentricos
Poligonos 3 a 10 lados
Estrellas: de David y Pentagrama
Espirografo 2 figuras ( una rotacion de un cuadrado en angulos de 15 grados 24 veces)
y una flor (usando 2 circulos de diferente radio y rotaciones)
Espiral cuadrada de nivel n
Usando Recursividad
Curva de Hilbert de nivel n
Curva de Koch ( Copo de nieve ) de nivel n
Arbol de n niveles ( 2 llamadas recursivas )
Regla de nivel n ( 2 llamadas recursivas )
Entregar
Documentacion a entregar
-Comentarios en codigo fuente.
-Manual de usuario impreso minimo 2 paginas y maximo 5 paginas
incluir las pantallas necesarias
-Manual tecnico impreso minimo 5 paginas y maximo 14 paginas.
-Expresiones regulares
-Gramatica
-Mapa de memoria
-Diagrama de clases.
-Dar una explicacion de alto nivel de como se realizo el proyecto e incluir
los fragmentos de codigo mas importantes para complementar dicha
explicacion
Entregar un CD , DVD o Bluray con
-codigo fuente ( no comprimir )
-archivos: extension y (de yacc ) , extension l (de lex ) , de lenguaje c, java, class,
jar, imagenes, base de datos y todos aquellos recursos necesarios para compilar y
ejecutar el proyecto
-Manuales
Rotular el CD , DVD o Bluray con la siguiente informacion:
Nombre completo
Grupo
Proyecto para Extra Ordinario de Compiladores
Nombre del Proyecto
Fecha
Materia
Incluir dichos datos en la envoltura del CD y en cada archivo del código fuente como un comentario usando /* */ y en un Acerca de.