Создание языка программирования с помощью Claude Code: эксперимент Cutlet

Создание Cutlet с помощью кода, сгенерированного ИИ
Анкур Сети создал новый язык программирования под названием Cutlet, используя Claude Code в течение четырёх недель в январе и феврале. В отличие от типичного программирования с помощью ИИ, где модель помогает с шаблонным кодом или целевыми изменениями, Сети поручил Claude сгенерировать каждую строку кода, не читая её сам. Вместо этого он сосредоточился на создании защитных механизмов и тестировании для обеспечения корректности.
В результате язык существует сегодня, собирается и работает как на macOS, так и на Linux, и может выполнять реальные программы. Хотя в нём могут быть ошибки, Сети отмечает, что они, вероятно, не хуже, чем в любом другом четырёхнедельном языке программирования.
Особенности языка Cutlet
Cutlet — это динамический язык со следующими ключевыми особенностями:
- Переменные объявляются с ключевым словом
my:my cities = ["Tokyo", "Paris", "New York", "London", "Sydney"] - Имена переменных могут содержать дефисы (те же правила синтаксиса, что и в Raku)
- Единственный числовой тип: double
- Массивы и строки работают так, как ожидается в динамических языках
- Мета-оператор
@для векторных операций:temps-c @* 1.8умножает каждый элемент массива - Оператор
@:для объединения массивов в отображения:cities @: temps-fсоздаёт{Tokyo: 82.4, Paris: 71.6, ...} - Функция
say()для вывода, возвращаетnothing(аналог null в Cutlet) - Булево индексирование массивов для фильтрации:
cities[temps-f @> 75]возвращает[Tokyo, New York] - Оператор
++объединяет строки и массивы - Встроенная функция
str()преобразует в строки - Префикс
@для операций свёртки:@+ temps-cсуммирует все температуры - Встроенная функция
len()определяет длину массива - Функции объявляются с помощью
fn:fn max(a, b) is ... if a > b then a else b ... end - Всё является выражением, включая функции и условные конструкции
- Пользовательские функции работают с оператором
@:@max temps-cвыполняет свёртку с пользовательской функцией max
Дополнительные возможности включают циклы, объекты, прототипное наследование, примеси, сборщик мусора по методу пометок и дружелюбный REPL. Файловый ввод-вывод и обработка ошибок пока не реализованы.
Подход к разработке
Сети собрал интерпретатор из исходного кода и использовал /path/to/cutlet repl для перехода в REPL. Исходный код доступен на GitHub с инструкциями по сборке и примерами программ. Он использует программирование с помощью ИИ с момента выхода GitHub Copilot в 2021 году, но ранее ограничивал ИИ шаблонным кодом и целевыми изменениями.
Этот эксперимент представляет собой переход к тому, чтобы ИИ генерировал весь код, а разработчик сосредотачивался на высокоуровневой структуре, тестировании и защитных механизмах. Такой подход оказался удивительно эффективным для создания функционального языка программирования.
📖 Read the full source: HN AI Agents
👀 Смотрите также

AgentRoom: Десктопное приложение визуализирует ИИ-агентов для программирования в виде пиксельных персонажей с возможностью поиска сессий.
AgentRoom — это десктопное приложение, которое превращает сессии Claude Code, Codex и Gemini в анимированных пиксельных персонажей в виртуальном офисе, с полнотекстовым семантическим поиском по всем сессиям. Репозиторий включает автономный навык Claude Code для поиска прошлых сессий из любого диалога.

Система памяти с открытым исходным кодом для LLM-агентов демонстрирует высокие результаты в тестах.
Постоянная система памяти для Claude Code и OpenClaw обеспечивает LLM-агентам непрерывность контекста между сессиями, достигая 90,8% на бенчмарке LoCoMo и 89,1% на LongMemEval. Архитектура на основе адаптеров работает с любой фреймворк-системой для агентов.

Разработчик создает MCP-сервер для интеграции Claude с WhatsApp, делится трудностями
Разработчик создал MCP-сервер, чтобы дать Claude доступ к реальным перепискам в WhatsApp, обнаружив, что управление контекстом беседы оказалось сложнее, чем ожидалось, и потребовало базы данных для отслеживания разговоров.

Claude-Powered MCP Tool Генерирует Интерактивные HTML-Компоненты Без Инструментов Сборки
Разработчик создал daub.dev — систему, в которой Claude управляет MCP-сервером для создания стилизованных, интерактивных HTML-компонентов пользовательского интерфейса из описаний на естественном языке без использования React, сборщиков или конвейеров сборки.