Little Man Computer
Суть
- Классическая фон-неймановская архитектура
- Система команд из ~10 команд
- Общая память для команд и данных
- Управление устройствами В/В
- Одноадресная с аккумулятором
- Десятичная система счисления по умолчанию
- Есть визуальные эмуляторы
- В том числе с анимацией работы шины данных
Идея
Объяснять архитектуру
- На начальном уровне:
- общая память
- порядок выполнения инструкций
- хранение vs В/В
- Глубже:
- шины адреса, данных и В/В
- АЛУ и УУ
- регистры и зачем они нужны
- На начальном уровне:
Объяснять программирование
- ЭВМ как исполнитель инструкции, демистификация
- Условный оператор как условный переход вперёд
- Цикл как условный переход назад
- Понятие «транслятора» на примере языка ассемблера и машинных кодов
- Дисциплину комментирования
TODO переменные / метки vs адреса
Что нельзя
- Подпрограммы и стек — никак
- Массивы требуют самомодифицирующегося кода — можно, но надо ли?
Что можно добавить
Разные устройства ввода-вывода (например, для демонстрации различия представлений данных)
- Оставить две операции перехода (=0 и ⩾0), третью потратить на что-то ещё
Возможные варианты
- Написать свой с WEB-интерфейсом
- Редизайн и перевод имеющихся реализаций:
LMC и ролевая игра
TODO Для этого и разрабатывался!