Сейчас транслятор «МК-Про» — языка высокого уровня для «Электроники МК-61» — написан на ТайпСкрипте. Я выбрал этот язык по двум причинам: хотелось на него посмотреть, и была идея прикрутить транслятор к эмулятору «МК-61», который работает в браузере.
Но вчера я решил переписать его на Си++. При помощи нейросети, конечно. Производительность ТайпСкрипта стала серьёзным блокером: в процессе трансляции оптимизатор перебирает огромное количество вариантов, чтобы уместить программу в 105 байт, и иногда этот процесс занимает минуты. Надеюсь, перевод на Си++ решит эту проблему.
Интересно, за какое время нейросеть справится с этой задачей. Проект большой: около 80 тысяч строк только основного кода; кроме того, очень много тестов — около двух тысяч, если ничего не путаю, — и есть эталонные программы, которые должны скомпилироваться байт в байт.
Спустя полтора часа транслировалось уже десять программ и я удивился такой скорости, пошёл читать исходники, а там, то, что на скриншоте — чёртова ленивая нейросеть просто затолкала внутрь кода эталонный результат десяти программ. Офигенное решение.
Это в них и поражает — нейронка показывает очень сильные программерские скилы, и если б это был человек, то понятно, что это ответственный, усидчивый работник был бы , с огромной эрудицией. А такое срезание углов пришло бы в голову только юному падавану.
Да, приходится себя сильно корректировать, чтобы не считать нейронку человеком, но уйти от этого совсем невозможно, неизбежно очеловечиваешь нейронку, хотя какая в ней может быть ответственность? Каким образом она «ответит», то есть расплатится за свой промах или лень?
Евгений, ты возможно писал раньше, если пропустил не обессудь, но скажи, используешь ли ты в работе, в частности вот в МК-Про подходы агентного программирования какие-то, есть ли AGENTS.md / .rules для инструкций для агента, или может быть подход с написанием спецификаций aka spek kit / open kit или что-то самобытное, типо цикл планирования -> декомпозиции -> реализации в файлах?
Либо же, условно, у тебя просто чат с диалогом, в котором ты направляешь агента, не фиксируя это как-то конкретно?
Поясни, почему спрашиваю. Удивила эта история с хардкодом эталонных результатов, хотелось бы хотя бы примерно понимать, как нейронка дошла до такого решения, чем руководствовалась и в каких рамках она при этом была.
Нет, в «Кодексе» я ничего такого не делаю. В «Курсоре» было удобно — «Курсор» умеет писать развёрнутый план, со всем ходом будущего решения (там даже схемы могут быть), его читаешь, корректируешь и запускаешь. Я привык к такому. Правила пишу редко, единственный проект, где я это делал — violawww.
В «Кодексе» планы не работают вообще, а когда работают выглядят скромнее — просто как список пунктов. Поэтому единственное, что я делаю — ставлю цель. Цель работает. «Кодекс» вообще в целом примитивнее «Курсора». Цель была описана примерно так (примерно, потому что мне пришлось несколько раз перезапускать «Кодекс» и один раз он цель потерял: