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 — невеликого набору, який дозволяє зосередити перші заняття на регістрах, пам'яті та потоці керування.
