Ir al contenido principal

Estructura de pila

En el trabajo realizado de estos dos días, luego de investigar sobre la pila de MIPS y su importancia para la completa funcionalidad, se dedujo que antes de crear el código fuente a código MIPS se debe manejar una pila de antemano.
Solución:
Se hicieron dos clases necesarias para manejar la pila en el proceso de la creación del código MIPS, fueron las siguientes:

  • Clase Elemento: esta clase maneja un objeto que tiene tres atributos que sería, el valor, la posición en la SP y su tipo de valor. Esto para manejar los objetos que se ingresan a la pila en MIPS
  • Clase Pila: la clase pila maneja una lista de objetos tipo Elemento y tiene dos métodos importantes que es agregar un elemento nuevo y retornar el valor de una posición que almacena un elemento en la lista.
Por ahora estas dos clases han abierto caminos para progresar en el desarrollo de este tercer proyecto

Comentarios

Entradas más populares de este blog

Prueba de códigos básicos

A continuación se muestra un código básico del lenguaje: string salto = "\n"@ int Edad = 5@ bool FuncionBool(bool b) { return b@ } real FuncionReal(real r) { return r+1.0@ } int FuncionInt(int i) { return i+1@ } string FuncionString(string s) { return s@ } char FuncionChar(char c) { return c@ } int main() { char c@ c = FuncionChar('I')@ print(c)@ print(salto)@ string s@ s = FuncionString("Hola Nahum")@ print(s)@ print(salto)@ int i@ i = FuncionInt(1)@ print(i)@ print(salto)@ real r@ r = FuncionReal(1.1)@ print(r)@ print(salto)@ bool b@ b = FuncionBool(True)@ print(b)@ } Seguidamente de su traducción al lenguaje MIPS .data true: .asciiz "print true" false: .asciiz "print false" Et0: .asciiz "\n" Et1: .asciiz "Hola Nahum" .text .globl main print_true: li    $v0,4 la   $a0, true syscall jr $ra print_false: li    $v0,...

Pruebas de condicionales

Se realizaron pruebas de diferentes ejemplos para expresiones condicionales. Se analizaron cuales son los procesos que deben ser ejecutados para las expresiones condicionales en asignaciones booleanas que podrán ser utilizadas en las diferentes estructuras de control, ejemplo; for, while, if.

Investigación de condicionales

Hasta el momento se ha avanzado en el proyecto y se ha llegado la punto donde se logra generar funciones, asignaciones complejas, llamadas de funciones y varios tipos de expresiones. Al tener expresiones y la mayoría de la gramática se requiere saber como lograr hacer condiciones en MIPS, ya que es sumamente   importante para darle sentido a la funcionalidad de los códigos que se ingresan en el compilador. Gracias a la tarea II y actividad #5 del curso, se tiene un resumen sobre el comportamiento de las condiciones en MIPS, y se logro llegar a una idea sobre lo que se necesita estructurar en el código Back-End para lograr que se genere las condiciones que aparezcan en el código fuente.