Venus
Awesome RISC-V

Venus

Ecossistema RISC-V

Venus é 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.

Fontes

  1. kvakil/venus README
  2. CS 61C Lab 3, UC Berkeley
  3. Venus164 fork