Представьте: вы находите в интернете упоминание о языке программирования, созданном в 1999 году в Баку, который работал только в MS-DOS, и у вас возникает азарт воссоздать его на современном стеке — |
||
|
МЕНЮ Главная страница Поиск Регистрация на сайте Помощь проекту Архив новостей ТЕМЫ Новости ИИ Голосовой помощник Разработка ИИГородские сумасшедшие ИИ в медицине ИИ проекты Искусственные нейросети Искусственный интеллект Слежка за людьми Угроза ИИ Атаки на ИИ Внедрение ИИИИ теория Компьютерные науки Машинное обуч. (Ошибки) Машинное обучение Машинный перевод Нейронные сети начинающим Психология ИИ Реализация ИИ Реализация нейросетей Создание беспилотных авто Трезво про ИИ Философия ИИ Big data Работа разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика
Генетические алгоритмы Капсульные нейросети Основы нейронных сетей Промпты. Генеративные запросы Распознавание лиц Распознавание образов Распознавание речи Творчество ИИ Техническое зрение Чат-боты Авторизация |
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 Комментарии: |
|