Venus
Ecossistema RISC-VVenus é um simulador de ensino para assembly RV32IM da UC Berkeley, usado em CS 61C.
Visão geral
Venus é um simulador RISC-V que roda em um navegador web. Um simulador é um programa que imita um processador, então você pode executar código de máquina sem possuir hardware RISC-V. Venus lê código assembly escrito para RV32IM. O código assembly é a forma textual legível das instruções de máquina. RV32I é o conjunto básico de instruções RISC-V de 32 bits, e a extensão M adiciona multiplicação e divisão.
O editor e o simulador compartilham uma única página. Os programas solicitam serviços por meio de ecall, a instrução RISC-V que pede algo ao ambiente. Venus trata as ecalls para imprimir valores e para alocar mais memória.
Histórico
Keyhan Vakil iniciou o Venus em 2017 na UC Berkeley. O projeto é escrito em Kotlin, uma linguagem de programação que pode ser compilada para JavaScript. É essa compilação que permite ao simulador rodar dentro de um navegador sem nada para instalar.
A UC Berkeley adotou o Venus para o CS 61C, seu curso sobre estruturas de máquinas, onde os estudantes escrevem seus primeiros programas em RISC-V. O curso depois manteve seu próprio fork em venus.cs61c.org. Um fork é uma cópia de um projeto que é desenvolvida separadamente do original. Outro fork, o Venus164, adiciona recursos para o projeto do compilador ChocoPy no curso de compiladores de Berkeley.
Onde é usado
O Venus se encaixa em um primeiro curso de assembly. Um estudante abre uma página, cola um programa e o executa. Seu conjunto de instruções permanece em RV32IM, um conjunto pequeno que mantém as primeiras lições focadas em registradores, memória e fluxo de controle.
