“Año del Fortalecimiento de la Soberanía Nacional”
UNIVERSIDAD DE INGENIERÍA Y
TECNOLOGÍA
PROYECTO DE LABORATORIO
COMPILADOR
Curso:
Programación II - Teoría 1
Profesor:
Fiestas Iquira, Jose Antonio
Integrantes del grupo:
INTEGRANTES SECCIÓN PORCENTAJE
Bolaños Aedo, Ray Sebastian 1.03 100%
Leiva Novoa, Fabrizio Enrique 1.03 100%
Maraza Vera, Gustavo Nolberto 1.03 100%
2022
Introducción:
Este código busca desarrollar un modelo simple de compilador que traduzca un
lenguaje de alto nivel como C++ a un código ensamblador utilizando Programación
Orientada a Objetos.
Métodos:
Para lograr esto, desarrollamos tres clases en C++. Una clase Variable, una clase
Instrucciones, y una clase Ensamblador, que traduce las líneas de código almacenadas.
Resultados :
Parece confuso crear una clase Instrucciones que no esté relacionada a las otras. El
valor de esta clase Instrucciones es almacenar las líneas de código, luego las
obtenemos y las enviamos a un objeto de clase Ensamblador, que se encargará de
traducirlas.
El vector variables sirve para guardar tanto el nombre de la variable (llamémosla ‘a’)
y la dirección de esta variable (llamémosla 100). Luego se puede llamar el nombre o
la dirección cuando se requiera.
En la clase Ensamblador nos encargamos de usar los atributos de Variable y traducimos
dependiendo de lo que nos encontremos. Esto lo hacemos en los métodos que llevan como
nombre “comando_x”
Finalmente, en el método de clase traducir nos encargamos de traducir todas las líneas
del código y almacenarlas en su vector traducción.
Este sería el resultado final:
Código
Traducción
Conclusiones:
El código fue uno de los más complicados de hacer en el ciclo. No es perfecto, y tiene
algunas limitaciones. Esto podríamos mejorarlo estudiando más cómo funcionan los
archivos, así usaríamos estos elementos al máximo. Con el conocimiento que tenemos
ahora no nos fue posible desarrollar un código completamente funcional que traduzca
todo tipo de códigos. Se podría hacer un código con más condicionales y que pueda
procesar y traducir otras instrucciones. Sin embargo, estamos bastante contentos con
el código que logramos desarrollar, y esperamos que en el futuro podamos crear
códigos aún mejores.