Venus
Экосистема RISC-VVenus — это обучающий симулятор ассемблера RV32IM от UC Berkeley, используемый в CS 61C.
Обзор
Venus — это симулятор RISC-V, работающий в веб-браузере. Симулятор — это программа, имитирующая процессор, поэтому можно запускать машинный код, не имея оборудования RISC-V. Venus читает код на языке ассемблера, написанный для RV32IM. Код на языке ассемблера — это читаемая текстовая форма машинных инструкций. RV32I — это базовый 32-битный набор инструкций RISC-V, а расширение M добавляет умножение и деление.
Редактор и симулятор используют одну страницу. Программы запрашивают услуги через ecall — инструкцию RISC-V, которая обращается к окружению с запросом. Venus обрабатывает ecall для вывода значений и для выделения дополнительной памяти.
История
Кейхан Вакил запустил Venus в 2017 году в UC Berkeley. Проект написан на Kotlin — языке программирования, который можно компилировать в JavaScript. Именно эта компиляция позволяет симулятору работать в браузере без необходимости что-либо устанавливать.
UC Berkeley принял Venus для курса CS 61C, посвящённого структурам машин, где студенты пишут свои первые программы на RISC-V. Позже курс поддерживал собственный форк на venus.cs61c.org. Форк — это копия проекта, которая развивается отдельно от оригинала. Другой форк, Venus164, добавляет функции для проекта компилятора ChocoPy в курсе компиляторов Berkeley.
Где используется
Venus подходит для первого курса по ассемблеру. Студент открывает страницу, вставляет программу и запускает её. Её набор инструкций остаётся на уровне RV32IM — небольшого набора, который позволяет сосредоточить первые занятия на регистрах, памяти и потоке управления.
