Skip to content

Instantly share code, notes, and snippets.

@lucis
Created June 27, 2019 01:07
Show Gist options
  • Save lucis/962cb0f02eecc2addff14100263b81eb to your computer and use it in GitHub Desktop.
Save lucis/962cb0f02eecc2addff14100263b81eb to your computer and use it in GitHub Desktop.
3a Prova de Compila
  1. Transformar para Assembly. Ele informa que o tamanho do main tá numa "variável" chamada mainsize e do método m1 no m1size, se não me engano. Seguinte código (a da outra turma era um if else ao invés do Switch) :
//main
int dia = 0
call m1

switch (dia) {
 case 1:
   x[dia] = dia + 1
   break
 case 2:
   x[dia] = dia + 2
   break
 default
  break
}
halt 

//m1
while (dia != 10){
  dia = dia + 1
}
return
  1. Fazer a transformação para assembly (é um passo intermediário) e criar a tabela dos registradores (linhas r1, r2, a, b, c, t1, t2) Código
a = b
t1 = a * c
c = t1
  1. A "A" era pra gerar o metamodelo e a "B" era pra gerar o ATL (ou podia ser em Java, mas é mais dificil), para uma atribuição do tipo: x = a[i]. Na outra prova era x[i] = a. Eu e os meninos fizemos como o i sendo constantes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment