Представьте: вы находите в интернете упоминание о языке программирования, созданном в 1999 году в Баку, который работал только в MS-DOS, и у вас возникает азарт воссоздать его на современном стеке —

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



2026-08-20 11:38

лингвистика

Представьте: вы находите в интернете упоминание о языке программирования, созданном в 1999 году в Баку, который работал только в MS-DOS, и у вас возникает азарт воссоздать его на современном стеке — просто потому, что это дико интересно. Именно так я потратил час своей жизни, а потом ещё девять часов вечера, чтобы перенести интерпретатор «Эллочка» из DOS в Windows на языке Zig.

Всё началось с комментария Гаузера Эриха Генриховича под моей предыдущей статьёй: он рассказал, что в конце девяностых разработал собственный интерпретируемый язык, который назвал «Эллочка». Заинтригованный, я собрал всё, что смог найти о языке на сайте автора, скормил это нейросети и принялся за реализацию. У меня уже был опыт написания небольшой консольной ОС на Zig, поэтому выбор пал на этот язык — не самый популярный, но знакомый и подходящий для системных вещей.

Сразу скажу: воссоздавать язык по описанию, не имея исходников, — это отдельный вид удовольствия. Это не рутинная работа, а настоящее расследование. В отличие от моего другого проекта, где использовался ANTLR для разбора грамматики, здесь всё проще и одновременно сложнее: «Эллочка» — это однопроходный интерпретатор, без синтаксического дерева. Плюс накладываются ограничения DOS, которые заставляют вспомнить времена флоппи-дисков и Windows 98.

За первый час у меня получилось реализовать основу: числовые переменные, одномерные и двумерные массивы, присваивания с неявными циклами, управляющие операторы, ввод-вывод в текстовом режиме, математические функции, метки и переходы по номеру строки. Уже тогда заработал простой скрипт. Это был восторг — ты словно разбираешь чужую, давно забытую головоломку.

Что было внутри интерпретатора? Таблицы переменных и массивов, строки фиксированной длины 75 символов и динамические строки до 1024 символов, единый набор ошибок, построчный лексер, парсер арифметических выражений с математическими функциями, загрузка программ и таблица меток. Лимит строки считался в Unicode-символах, а не в байтах — это важно для кириллицы. Все 62 оператора, описанных в оригинале, были разобраны и выполнены. Графический слой вынесен в отдельное окно Win32 с закадровым DIB-буфером, и даже добавлен насос сообщений, чтобы окно оставалось отзывчивым во время блокирующих операций.

Признаюсь честно: большую часть кода сгенерировала нейросеть. Моя роль заключалась в поиске информации, архитектурных решениях, ревью, код-дирекшене и тестировании. Это тоже инженерная работа, просто другого уровня. И тут был нюанс: одна нейросеть упрямилась и упрощала код. Я нашёл обходной путь — стал просить её задавать вопросы, затем шёл в другой ИИ-поисковик, составлял подробнейшие ответы, уточнял детали в интернете и в третьей нейросети. С таким подробным техническим заданием она уже не спорила и выдавала именно то, что нужно. Так за девять часов были реализованы все 62 оператора.

Кульминацией стал запуск оригинального скрипта sample.ela. Его пришлось перекодировать в UTF-8, потому что в оригинале использовалась DOS-кодировка. С первого раза, конечно, не заработало, но я запустил его даже раньше, чем перевёл все операторы. Это был успех. Не имея исходников, только по описанию языка, мне удалось воссоздать «Эллочку».

Позже я нашёл ещё скрипты автора, и Эрих Генрихович подсказал, где лежит полный комплект. Оригинальный DIKAR v7 — это не только интерпретатор, но и полноценная среда с редактором, справкой, пошаговым и командным режимами, подробной диагностикой. Мой вариант умеет в консоль выводить строку с ошибкой, а вот редактор и IDE я не делал — только сам язык.

В течение последующей недели я коммитил изменения, запускал оригинальные скрипты в DOS-эмуляторе и проверял каждый оператор. Кроме трёх сложных математических функций — там линейная алгебра, полиномиальная аппроксимация и нелинейная модель. До них руки не дошли. Зато графику удалось полностью перенести, включая меню и вывод текста в графическом режиме.

А раз интерпретатор заработал, почему бы не вспомнить старые времена и не написать игру? Я добавил в примеры две программы: текстовую «Змейку» и её графическую версию. Они проверяют обработку клавиатуры, экранный вывод, условия, переходы, переменные, а графическая — ещё и рисование. Хорошо, когда сам язык позволяет создавать не только расчёты, но и интерактивные программы.

Оригинальный код игры «Piton» от автора «Эллочки» публикуется с его разрешения — это наглядное доказательство того, что язык действительно годится для создания игр в DOS-стиле.

Этот проект — яркий пример того, как можно восстановить почти забытую технологию, используя современные инструменты и помощь ИИ. И главное — это было жутко интересно: когда ты увлечён, то не задаёшь вопросов «зачем», а просто делаешь и получаешь удовольствие от процесса. Попробовали бы вы воссоздать какой-нибудь старый язык или программу, о которой уже никто не помнит?


Телеграм: t.me/ainewsline

Источник: vk.com

Комментарии: