vak: (Default)
[personal profile] vak
Год назад для проекта МЭСМ-6 я сделал набор тестов, покрывающих каждую машинную команду. Исходники и бинарники тестов лежат на Гитхабе.

Задачка:
  • Написать простой симулятор БЭСМ-6 на языке Rust.
  • Симулятор должен проходить вышеуказанные тесты.
  • Реализовать только машинные команды режима пользователя.
  • Можно подсматривать в код симулятора SIMH, как заведомо правильный.
Как вам такая задачка?
Это я язык Rust изучаю.

Date: 2020-08-30 08:43 (UTC)
juan_gandhi: (Default)
From: [personal profile] juan_gandhi

Классная задача; и язык подходящий.

Date: 2020-08-30 08:46 (UTC)
gonchar: (Default)
From: [personal profile] gonchar
Погодите, ребята. А сколько разных команд (и вообще объектов, которые надо моделировать) было в БЭСМ-6?
Не перебор с точки зрения трудоёмкости?
Или есть какая-то фишка, которая позволяет это всё сделать качественно быстрее?
Edited Date: 2020-08-30 08:47 (UTC)

Date: 2020-08-30 10:08 (UTC)
archaicos: Шарж (Default)
From: [personal profile] archaicos
Надо разобраться как использовать память в языке. В остальном он может всё, что может Си, на котором подобные вещи делаются легко (легко – знаючи; нужно эквивалентное «знаючи» в ржавчине).

Date: 2020-08-31 06:49 (UTC)
x86128: (Default)
From: [personal profile] x86128
Видимо - да, а я вот пробовал разные "эзотерические (всмысле по отношению к Си)" языки для эмулятора, получались какие-то грабли.
В Rust всякие плюшки есть типа popcnt ( которые LLVMом потом в соотв. инструкции процессора преобразуются) и т.д.
Должен получиться быстрый эмулятор.

Делал на питоне, но там уткнулся в длинную арифметику и мне не понравились костыли как делаются всякие сдвиги >>> (их там просто нет) по итогу забросил пока.

Лелею мысль сделать на Java(Kotlin) типа спектрума с процессором mesm6... но пока нет времени.