Создание языка программирования с помощью 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
👀 Смотрите также

Аналитик данных создает инструмент калибровки промптов с помощью Claude без опыта во фронтенд-разработке.
Аналитик данных без опыта в HTML, CSS или JavaScript создал Prompt Calibrator — клиентский веб-инструмент, который структурирует промпты для ИИ через форму с четырьмя полями и четырьмя режимами. Инструмент был разработан с использованием Claude в качестве партнёра по ревью кода и размещён на GitHub Pages.

Claude-First Analytics MCP Server: предоставление AI-агентам прямого доступа к контексту веб-аналитики
Разработчик перестроил свой инструмент веб-аналитики в виде MCP-сервера, предоставив простую веб-аналитику, отслеживаемые ссылки и инструменты аналитики продукта напрямую Claude, что позволяет AI-агентам использовать данные сайта вместе с кодом и контекстом базы данных.

Переписанные навыки программирования Карпати для бесплатного плана открывают дисциплину кодирования Claude без Pro
Пользователь Reddit адаптировал руководство по дисциплине кодирования Карпати для бесплатного плана Claude, удалив зависимости от терминала и подагентов. Системный промпт автоматически срабатывает на запросы кода и стимулирует мышление, ориентированное на проверку.

Blip MCP Server: Отображать изменения пользовательского интерфейса для кода Claude вместо их описания
Blip — это MCP-сервер для Claude Code, который заменяет словесные описания изменений интерфейса визуальными аннотациями. Вы рисуете прямо на работающем приложении, а Claude пишет соответствующий код на основе аннотированного скриншота.