ПОКА ТЫ СПАЛ...
Дорогие читатели, помните, я как-то рассказывала вам про безумно занимательную компьютерную игру «Бой в памяти» (Core War)? Про неё я вычитала в старых цифровых архивах журнала Scientific American за май 1984 года. Суть там просто улетная: на арене виртуальной оперативки соревнуются две автономные программы, написанные на специальном языке Редкод (Redcode), который вот прямо один в один напоминает низкоуровневый Ассемблер. Задача — переписать код оппонента и заставить его поток зациклиться или аварийно завершиться.
Так вот, загорелась я идеей пописать своих автономных демонов и протестировать их логику. Пересмотрела кучу готовых эмуляторов в сети… и знаете что? Каждая из сред меня чем-то дико не устраивала. То интерфейс родом из палеозоя, то логика подвисает, то верстка едет. Ну, вы же меня знаете. Мне оставалось сделать только одно — написать свою собственную версию с нуля!
И вот, та-да-ммм, я вам её представляю! Ребят, без ложной скромности: это один из самых жестких и сложных проектов, с которыми я вообще когда-либо имела дело. Вы спросите, почему? Да потому что под капотом этой штуки мне пришлось реализовать:
1. Лексический и синтаксический анализатор (парсер) — штука, которая на лету разбирает текстовый код, чистит его от комментов и проверяет, не накосячил ли юзер в командах.
2. Компилятор — транслирует человекочитаемые строки Редкода в бинарные объекты инструкций.
3. Виртуальную машину и интерпретатор — полноценный симулируемый процессор (MARS), который выполняет эти инструкции потактово, рулит многопоточностью через SPL и считает адреса по хитрой циклической логике.
То есть, по сути, я создала собственный интерпретатор со встроенным визуальным отладчиком! Целую IDE (среду разработки) в стиле премиального киберпанк-минимализма. И самое крутое — она работает прямо в браузере! Вообще мимо всех этих танцев с бубнами, терминалов, настроек и скачивания тяжелого софта. Кликнул — и ты в системе.
В общем, ребятки, если вы не боитесь Ассемблера (ха-ха!) и хотите открыть для себя нереально увлекательное дело — добро пожаловать на наш цифровой полигон. Залипнуть тут можно на недели, изобретая идеальный алгоритм и оптимизируя потоки.
Тем более, я не бросаю вас одних и разработала подробнейший мануал (техническую документацию). Там я по полочкам разложила все конструкции языка, модификаторы и режимы адресации. И более того — в приложении я привела примеры нескольких своих продвинутых программ (там есть и тяжелые генераторы кода, и хитрые уклоняющиеся модули, запутывающие треки), которые вы можете скопировать, загрузить и «пощупать» вживую. Кстати, при первом запуске на арене уже предзагружены классические Имп и Дуарф прямо из той самой статьи Дьюдни!
Кому интересно размять мозги и почувствовать себя системным архитектором:
* Вот ссылка на мою среду Micro Mars:
https://micro-mars-ce409.web.app/
* А с мануалом можно ознакомиться вот тут:
https:// micro-mars-ce409.web.app /micro-mars-manual.html
Заходите, тестируйте, пишите коды и попробуйте переиграть моих автономных роботов! Кто продержится больше 500 циклов и не уронит систему — тот официальный гений. Жду ваши скриншоты в комментариях!
*Для успешного открытия мануала - уберите пробелы в начале и конце доменного имени (мы все помним как это было на форумах, лол).
Стефания
Моя нейросеть:
https://stephqnn-6f23f.web.app/
Мои официальные ресурсы:
https://t.me/stefanias_world
yandex.ru/rythm/profile/@019d3b535e807367b553f01d479beaef
https://t.me/+xGPeaaQyGIJjZGUy
Свидетельство о публикации №126060706501
