Skip to the content.

06 Jul 2026

Я последние пару недель очень увлёкся одной идеей, которую годами откладывал: пробую сделать свой язык программирования. Нейронки очень круто помогают, некоторые штуки можно делать в разы быстрее.

Прогресс и мои наблюдения:

Я несколько лет потихоньку выписывал всякие интересные мысли и идеи про языки программирования. Если интересно, они лежат тут: “О дизайне языков программирования”

Пару недель назад я закинул их в gemini и пообсуждал разные моменты. Тут реально круто, что нейронка знает много, например я думаю про какую-то фичу, а нейронка мне “эту фичу недавно добавили в OCaml” или “а в языке Pony сделали так-то” и я могу уже точечно посмотреть как сделано там или иначе и не изобретать велосипеды с нуля.

Потом чата мне стало мало (в этот момент я узнал, что стандартного способа выгрузить весть чат из gemini нет, есть только сторонние расширения в браузере), и я создал проект с .md файлами и начал писать в них, заодно разложив разные концепции в разные файлы. Что прикольно - текстовое описание это не код (и вначале оно было не сильно большим), нейронке его редактировать довольно легко. Мне хватало всё той же подписки на gemini за 20 евро в месяц, использовал antigravity ide с этой подпиской. Я раз за разом спрашивал агента, какие есть противоречия/неполные описания в проекте и просил его что-то дописать. Тут забавный момент - я с агентом общался на русском, но все описания языка попросил делать на английском. На английском устоявшаяся терминология в программировании и строгие описания и читать их удобно, но именно обсуждать как будто удобнее на своём родном языке.

Буквально за несколько дней описание концепций языка разрослось файлов до тридцати, дальше я попросил агента описать синтаксис языка в ebnf нотации, потом написать парсер для языка и потом интерпретатор для AST, чтобы можно было попробовать писать код на языке и посмотреть, насколько оно удобно и какие есть проблемы. К моему удивлению, нейронка сделала это буквально за день. Там точно есть баги, и в код интерпретатора я даже не смотрел. Но моя цель сейчас - не сделать “нормальный интерпретатор”, а просто попробовать написать какой-то код на языке и на мой взгляд всё ок.

Дальше я разошёлся и попросил агента написать LSP сервер для языка и дополнение для VS кода (antigravity ide поверх VS сделана). К моему удивлению, после нескольких исправлений заработало и это. Причём LSP может давать не только подсветку синтаксиса, но ещё и подсветку ошибок и всякие типа действия “показать тип переменной, перейти к месту объявления, показать места вызова” и т.п., и агент после нескольких итераций сделал и это!

Итог - за неделю я получил рабочий прототип языка, который можно открыть прямо в ide, и пописать код с рабочей подсветской синтаксиса и всякими экшенами для навигации по нему. Это офигенно. Делай я сам такое без нейронок - наверно, потратил бы как минимум месяц.

Реальных ускорений два: нейронка знает реально много и её можно использовать как консультанта - в каких языках есть фича, как сделана, какие плюсы и минусы у такого решения. Я в процессе заметно расширил свой кругозор и узнал про много новых концепций. И второе - я могу делегировать скучные кусочки типа написания парсера/ тестового интерпретатора и сделать их на порядок быстрее чем руками.

Чем я занимался вторую неделю - особо ничем, ждал когда происходящее уложится у меня в голове и появятся новые идеи.

Новые идеи пришли откуда я не ждал - claude снова открыли доступ к топовой модели Fable 5, и я попробовал её вызвать на описании языка и выписать что надо дописать/улучшить. Результатом я впечатлён - после запуска получился ответ где-то на пять страниц текста, и нейронка с реально глубоким пониманием происходящего нашла кучу проблем, нестыковок и недостаточно подробно описанных идей. Токены она кушает очень быстро, но по-моему эта модель как раз очень хороша в планировании. И как будто вариант давать ей тектовое техническое описание - как раз хороший способ, а программировать интерпретатор по описанию языка можно и моделью поменьше.

Сам язык

Описание языка в открытый доступ я пока не выложил, но скоро планирую. Просто потому, что я его очень активно доделываю и уточняю, а какие-то концепции я вообще выкидываю.

Кратко о том что я хочу сделать в языке:

Я пока экспериментирую именно с дизайном языка, не отвлекаясь на то, как оно будет компилироваться.