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

100 популярных приложений, реконструированных в спецификации дизайна Markdown для клонирования интерфейса Claude
Репозиторий с открытым исходным кодом содержит структурированные спецификации дизайна в формате Markdown для 100 популярных iOS-приложений, оптимизированные для клонирования UI через Claude. Ключевые техники: точные значения цветов, охват состояний, шкалы отступов и графы навигации.

Гибридный поиск с использованием RRF улучшает систему памяти ИИ по сравнению с чистым векторным поиском.
Система памяти с открытым исходным кодом на базе PostgreSQL с pgvector обнаружила, что чистый векторный поиск недостаточен для точных совпадений, поэтому добавила полнотекстовый поиск и объединила результаты с использованием Reciprocal Rank Fusion (RRF) с k=60, а также обогащение запросов через токенизатор.

Настройка OpenClaw в UTM-виртуальной машине Ubuntu с доступом к LLM API и Ollama
Пользователь успешно настроил OpenClaw в изолированной виртуальной машине Ubuntu на Mac с процессором M3, получив доступ как к локальному Ollama на macOS, так и к внешним API LLM, таким как Gemini, Claude и DeepSeek. Примеры файлов конфигурации и заметки по устранению неполадок доступны на GitHub.

HTML-артефакты заменяют Google Документы для технической документации, но им не хватает комментирования
Артефакты HTML, созданные Claude, заменяют Google Docs для длинных технических документов, таких как отчёты о внезапных задачах и архитектурные заметки, но изолированный iframe не позволяет добавлять встроенные комментарии и функции рецензирования.