Высокоэнтропийный вайбкодинг

Высокоэнтропийный вайбкодинг

Сейчас существует множество руководств о том, как правильно формулировать запросы для генерации кода. Обычно они ориентированы на привычный естественный язык, вне зависимости от его конкретного вида. Современные модели преобразуют текст в векторное представление, которое у большинства людей оказывается схожим. При этом такие языковые особенности, как система времён, падежи, фиксированный или гибкий порядок слов, слабо влияют на структурированный вывод — особенно в задачах генерации кода. Эти нюансы важны в основном для художественного текста или передачи смысла от человека к человеку.

Минимализм в промптах

Задача проста: используя минимальный набор слов, без приставок, суффиксов, окончаний, союзов и других вспомогательных конструкций, получить рабочий код. Цель — 0% ошибок и 90% функциональности по заданному техническому описанию.

Для экспериментов используем пустую папку и редактор (например, VS Code или блокнот).

Настройка окружения

Начнём с разворачивания виртуального окружения. Пример промпта:

Хотеть бэш скрипт проверь .venv если нет создать, обновить pip последняя версия найти requirements.txt установить библиотеки файл этот. Опция аргумент имя файла.py скрипт проверь наличие окружения .вэнв если нет установи рекварементс.txt. Если .вэнв уже есть запускай питон 3 скрипт проверь что запуск внутри вэнв. Хотеть список зависимостей флаг --g сохранить в файл requirements-текущая дата-время.txt изменить версия == на >=. выйди из вэнв по завершению питона.

Этот промпт генерирует bash-скрипт generate_requirements.sh. Запуск ./generate_requirements.sh my.py автоматически создаёт виртуальное окружение и устанавливает зависимости из requirements.txt. При повторном запуске скрипт использует уже созданное окружение.

Пример содержимого requirements.txt:

  • pygame
  • PyOpenGL
  • PyOpenGL_accelerate
  • numpy
  • matplotlib

Если запустить скрипт с флагом --g, он сохранит текущие зависимости в файл вида requirements-20260427-213724.txt, где версии заменены с == на >= для гибкости установки.

Генерация цифрового фильтра на C

Следующий промпт генерирует код цифрового фильтра с БИХ-характеристикой:

хотеть цифровой фильтр чистый С файл калькюляйт си функция калькуляйт цикл по n отсчётам вход n, массив выходов размер n, массив отсчётов х, и коэффициентов сх одинаковые размер, число коэффициентов эникс, массив отсчётов у, и коэффициентов су одинаковые размер, число коэффициентов энигрек, отсчёты и коэффициенты флоат остальное инт размер. внутри аккумулятор акк ноль, вход х нулевой константа задать 1 затем цикл умножение с накоплением сх и с цикл умножение с накоплением су и у в аккумулятор. сдвигать элементы массивы х и у прямой порядок отсчётов на один только инкремент индекса плюс плюс, начать индекс ноль использовать временная переменная t1 t2 обмен сохранить аккумулятор массив выходов

Сгенерированный код корректен и одинаков для большинства моделей. Он реализует умножение с накоплением и сдвиг массивов через инкремент — подход, характерный для DSP-процессоров.

Оптимизация под ассемблер

Для оптимизации под процессоры Texas Instruments C2000 можно использовать ассемблерные команды:

хотеть реализация сдвиг массивов Х и У фрагмент кода ассемблер для Техас Инструменты процессор семейства С2000 используй пост-инкремент

Более эффективный вариант:

хотеть реализация ассемблер код фрагмент фильтр для Техас Инструменты процессор семейства С2000 используй рэп и мак

Команда RPT (повторение) и MAC (умножение с накоплением) позволяют эффективно выполнять циклы. Дальнейшая оптимизация:

хотеть реализация ассемблер код фрагмент фильтр для Техас Инструменты процессор семейства С2000 используй команду Макдональдс вместо Т1 Т2

Такой промпт демонстрирует игру с терминами, но ведёт к корректной генерации оптимизированного кода. Остаётся вопрос — какой командой обнулить аккумулятор.

Заголовочный файл и документация

Генерация заголовочного файла:

Создаём заголовочник хотеть калькюляйт аш с прототипом функции кальк, документ и кислород но будь осторожен с типами и указателями

Модель генерирует файл calculate.h с прототипом функции и описанием в формате Doxygen — необходимым элементом для поддержки кода.

Генерация коэффициентов и тестирование

Следующий промпт описывает формирование коэффициентов фильтра:

Хотеть проверку чистый С вызови готовая функция калькюляйт прототип аргументы вход N, массив выходов вых размер N, массив отсчётов Х, и коэффициентов СХ одинаковые размер, число коэффициентов ЭнИкс, массив отсчётов У, и коэффициентов СУ одинаковые размер, число коэффициентов ЭнИгрек, отсчёты коэффициенты флоат остальное инт, инклуд калькюляйт аш без заглушек. Сделать формирование коэффициентов СХ и СУ так что СУ индекс ноль всегда ноль. Коэффициенты СХ одинаково единица делённая на ЭнИкс размер. Коэффициенты СУ функция рандом внутри единичной комплексная окружность устойчивость учти, альфа амплитуда количество по размеру ЭнИгрек. Хардкод Пи. Обнули массивы Х и У. Массивы статические макросы ЭнИкс 5 ЭнИгрек 7 Эн 50. Дай вывод CSV файл и на экран сначала коэффициенты СХ СУ потом отсчёты вых Эн с индекс. Внимательно вызов калькюляйт число аргументов типы и массивы последовательность.

Создаётся файл Main.c, который инициализирует коэффициенты, вызывает функцию фильтрации и выводит данные в CSV-файл и на экран.

Сборка через Makefile

Генерация Makefile:

Хотеть Makefile для антилопы а также Си не хуже 2011 года, сканировать все файлы с и компилировать в оут исполняемый а также математика либа

Команда make запускает компиляцию с флагами -std=c11 и -lm. Результат — исполняемый файл out, выводящий данные в формате:

Type,Index,Value
CX,0,0.200000
CX,1,0.200000
...
OUT,0,0.200000
OUT,1,0.409890
...

Визуализация результатов

Для визуализации используется Python:

хотеть питон визуализируй комплексная плоскость если коэффициенты отсчётов входа X как CX а выходов Y как СУ поля а на графике от отсчётов размести поле OUT. Читай csv формат тип CX или CY или OUT ,index,value. Индекс коэффициентов максимальный есть порядок фильтра. Пересчитать коэффициенты в нули и полюса для строить график комплексная плоскость и единичная окружность справа половина слева половина график отсчётов ОУТ от индекса. матплотлиб без пандас. открой любой csv папка текущая. данные идут списком в столбец, первый столбец тип, первая строка заголовок

График показывает КИХ-составляющую (5 отсчётов) и БИХ-звено с затуханием. На комплексной плоскости отображены нули и полюса, а также единичная окружность.

Другие примеры

Метод конечных разностей для моделирования двух окружностей, движущихся навстречу, с соотношением диаметров 1:4. Каждая окружность — 64 отрезка, связанные в точках. Учитываются закон сохранения импульса, столкновения без рассеяния, закон Гука. Визуализация — через matplotlib, управление — мышь и слайдер (логарифмическая шкала).

Двузвенный робот-манипулятор с обратной кинематикой. Промпт включает подсказки по atan2, sqrt и возможным двум положениям для одной точки. Визуализация — PyGame. Пробелом меняется положение локтя, мышью — задаётся целевая точка.

Парсинг C-файлов

Стихотворный промпт для извлечения имён функций из C-файлов:

Питоном я доволен
Файл открыть любой
Там С код стройный
Читай его любой
Используй regexp дорогой
И извлекай Имя функции () как родной
Те что в скобках и
Фигурных расписных
Строй список мне имён
Довольный и на экран выводи
Мой файл пай мне задай
Ищем мы всё в каталоге текущем
Всё что Си имеет текст грядущий
Но ты за ключевым словом следи
Всякие форы и ифы убери!
Устроит меня не имплементация
А только реализация

Результат:

--- Файл: Main.c ---
Найдена функция: main
--- Файл: calculate.c ---
Найдена функция: calculate

Практически все модели выдают схожий результат. Это связано с однотипностью обучающих данных — исходных кодов, форумов и шаблонов. Промпты работают с первого раза в большинстве случаев.

Читать оригинал