Venus
Écosystème RISC-VVenus est un simulateur pédagogique pour l'assembleur RV32IM de UC Berkeley, utilisé dans CS 61C.
Aperçu
Venus est un simulateur RISC-V qui s'exécute dans un navigateur web. Un simulateur est un programme qui imite un processeur, ce qui permet d'exécuter du code machine sans posséder de matériel RISC-V. Venus lit du code assembleur écrit pour RV32IM. Le code assembleur est la forme textuelle lisible des instructions machine. RV32I est le jeu d'instructions RISC-V 32 bits de base, et l'extension M ajoute la multiplication et la division.
L'éditeur et le simulateur partagent une même page. Les programmes demandent des services via ecall, l'instruction RISC-V qui demande quelque chose à l'environnement. Venus gère les ecalls pour afficher des valeurs et pour allouer davantage de mémoire.
Historique
Keyhan Vakil a lancé Venus en 2017 à UC Berkeley. Le projet est écrit en Kotlin, un langage de programmation qui peut être compilé en JavaScript. C'est cette compilation qui permet au simulateur de fonctionner dans un navigateur sans rien à installer.
UC Berkeley a adopté Venus pour CS 61C, son cours sur les structures des machines, où les étudiants écrivent leurs premiers programmes RISC-V. Le cours a ensuite conservé sa propre fork sur venus.cs61c.org. Une fork est une copie d'un projet développée séparément de l'original. Une autre fork, Venus164, ajoute des fonctionnalités pour le projet de compilateur ChocoPy dans le cours de compilateurs de Berkeley.
Où il est utilisé
Venus convient à un premier cours d'assembleur. Un étudiant ouvre une page, colle un programme et l'exécute. Son jeu d'instructions reste RV32IM, un petit ensemble qui garde les premières leçons centrées sur les registres, la mémoire et le flux de contrôle.
