Generador De Ensamblador
Tipo: Mini Compilador
Usando una gramatica como la de hoc6 generar codigo ensamblador para ensamblar con NASM y no optimice dicho codigo
-Tabla de simbolos HOC3
-Decisiones y ciclos HOC5 (AND OR NOT EQ NE GT LT GE LE)
-Funciones y procedimientos ( declaracion , definicion y llamada) HOC6
-Debe soportar recursividad
Opcional
-que soporte arreglos unidimensionales y multidimensionales
-que soporte inicializacion de arreglos unidimensionales y multidimensionales (en la declaracion [usando una lista de valores como en lenguaje C]}
Hacer programas Demo para:
-sumar dos numeros
-obtener el maximo de dos numeros
-obtener el maximo de tres numeros
-Usar ciclos anidados para imprimir las tablas de multiplicar
-calcular el factorial con recursividad y sin recursividad
-elevar un numero a una potencia con recursividad y sin recursividad
-calcular los numeros en el triangulo de pascal con recursividad y sin recursividad
Opcional
-obtener el maximo de un arreglo
-ordenar un arreglo unsando los metodos de la burbuja y seleccion
-sumar, restar y multiplicar matrices
Nota: se recomienda generar el codigo ensamblador para ser ensamblado con Netwide Assembler (NASM)
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.