Venus
Awesome RISC-V

Venus

Ecosistema RISC-V

Venus è un simulatore didattico per l'assembly RV32IM della UC Berkeley, usato in CS 61C.

Panoramica

Venus è un simulatore RISC-V che viene eseguito in un browser web. Un simulatore è un programma che imita un processore, così puoi eseguire codice macchina senza possedere hardware RISC-V. Venus legge codice assembly scritto per RV32IM. Il codice assembly è la forma testuale leggibile delle istruzioni macchina. RV32I è il set di istruzioni RISC-V a 32 bit di base, e l'estensione M aggiunge moltiplicazione e divisione.

L'editor e il simulatore condividono un'unica pagina. I programmi richiedono servizi tramite ecall, l'istruzione RISC-V che chiede qualcosa all'ambiente. Venus gestisce le ecall per stampare valori e per allocare più memoria.

Cronologia

Keyhan Vakil ha avviato Venus nel 2017 alla UC Berkeley. Il progetto è scritto in Kotlin, un linguaggio di programmazione che può essere compilato in JavaScript. È questa compilazione che consente al simulatore di funzionare all'interno di un browser senza nulla da installare.

La UC Berkeley ha adottato Venus per CS 61C, il suo corso sulle strutture delle macchine, dove gli studenti scrivono i loro primi programmi RISC-V. Il corso ha poi mantenuto il proprio fork su venus.cs61c.org. Un fork è una copia di un progetto sviluppata separatamente dall'originale. Un altro fork, Venus164, aggiunge funzionalità per il progetto del compilatore ChocoPy nel corso sui compilatori di Berkeley.

Dove viene utilizzato

Venus è adatto a un primo corso di assembly. Uno studente apre una pagina, incolla un programma e lo esegue. Il suo set di istruzioni resta RV32IM, un piccolo insieme che mantiene le prime lezioni concentrate su registri, memoria e flusso di controllo.

Fonti

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