Александр Пенской

Logo

Доцент
факультета ПИиКТ
Университета ИТМО
Россия


Доцент
Совместного института HDU-ИТМО
Китай

Профиль на GitHub

Wrench

Симулятор процессоров, ассемблер и система автоматической проверки для обучения архитектуре компьютера

Wrench – рабочая учебная платформа курса Архитектура компьютера в Университете ИТМО. Студенты пишут программы на ассемблере для одной из нескольких намеренно непохожих процессорных архитектур, а веб-сервис запускает и автоматически проверяет их лабораторные работы. С апреля 2025 года сервис выполнил около 67 000 студенческих программ, им пользуются около 90 человек в день (данные на ноябрь 2026 года).

Архитектура Парадигма Прототип
Acc32 Аккумуляторная –
F32a Стековая машина с двумя стеками GreenArrays F18a
RISC-IV RISC с архитектурой load/store RISC-V
M68k CISC с операндами в регистрах и памяти Motorola 68000
VLIW-IV VLIW со статическим планированием, связки по 4 RISC-V + классический VLIW
Wasm32 Стековая машина WebAssembly

Почему упрощённые архитектуры?

Инструменты

Написан на Haskell. Доступен в виде бинарных сборок для Linux, macOS и Windows, а также Docker-образа. Чтобы поучаствовать в разработке, посмотрите issues или напишите мне в Telegram.

Пример

Факториал на RISC-IV, основной цикл (полный исходный код):

factorial_begin:
    addi     t2, zero, 1          ; acc = 1
factorial_while:
    beqz     t1, factorial_end    ; while (n != 0) {
    mul      t2, t2, t1           ;   acc *= n
    addi     t1, t1, -1           ;   n -= 1
    j        factorial_while      ; }

YAML-конфигурация задаёт входные данные, выводимые отчёты и ожидаемый результат, поэтому этот же файл служит тестом:

wrench factorial.s -c factorial-5.yaml

Больше программ для всех архитектур: примеры.

Обновлено 11 ноября 2026