H - VM translator
Entrega |
---|
23/11 - Quarta |
Nesse projeto iremos criar o programa vmtranslator que é responsável por traduzir os comandos de pilha em Assembly.
Instruções
As instruções técnicas de como começar o projeto estão no laboratório vm.
Rubrica
Rubrica para a entrega:
Conceito C
test |
---|
pytest test_code_arithmetic |
pytest test_code_pop |
pytest test_code_push |
writeArithmetic
writePop
writePush
Conceito B
test |
---|
pytest test_code_goto |
writeLabel
: Escreve um label em assembly quando encontra algo comolabel end
writeGoto
: Escreve um salto incondicional em assembly quando encontragoto end
writeIf
: Escreve um salto condiciona em assembly quando encontraif-goto end
O teste test_code_goto.py
depende do conceito C e também ele testa os três comandos ao memso tempo: writeLabel
, writeGoto
e writeIf
.
Conceito A
test |
---|
pytest test_code_function |
writeCall
: Faz a chamada de uma funcão, isso envolve salvar o frame na pilha e alterar os ponteiroswriteReturn
: Faz o retorno de uma funcão (recupera frame e os ponteiros)writeFunction
: Reserva na pilha enderecos para as variáveis locais
O teste faz uma chamada de funcão e verifica se o resultado está correto.