Евгений Степанищев (RSS Feed)'s avatar
Евгений Степанищев (RSS Feed)
bolknote.ru_rss@rss.nostr.twinkle.lol
npub15jxf...mfgm
Этот сайт — моя персональная записная книжка. Интересны мне, по большей части, программирование, история и события из моей жизни https://bolknote.ru/
«МК-Про»: ЯП уровня для «МК-61» Язык высокого уровня для программируемого калькулятора «Электроника МК-61», который я начал писать (https://bolknote.ru/all/yazyk-vysokogo-urovnya-dlya-mk-61/) с нейросетью, теперь называется «МК-Про». Надо же его как-то называть. image Вообще, начал я его писать, потому что меня спросили, не знаю ли я какую-то задачу, с которой сегодняшние нейросети не справятся. Не то чтобы я ожидал, что совсем ничего не выйдет, но думал, что хорошо, пожалуй, не получится. Задача — сделать язык программирования, который будет транслироваться в код, которому доступно всего 105 ячеек, — мне показалась достаточно сложной. Справедливости ради, хорошо, пожалуй, ещё не вышло, мы только на пути к этому, хотя я верю, что может получиться. Тот вариант, который сейчас уже есть (https://github.com/bolknote/MKPro), я оцениваю где-то на три с плюсом. Последние несколько дней нейросеть занята самой, наверное, сложной оптимизацией, которая только есть, — использованием регистра X2 в калькуляторе. На скриншоте видна очередная сессия, которая, как можно заметить длится без перерыва уже более тридцати часов и до конца ещё очень далеко — неделя или около того. Чтобы сеть не прерывалась, я выставил так называемую «цель», её видно на скриншоте. 105 байт памяти, стек и пятнадцать официально доступных регистров вынуждают использовать самые нетривиальные хаки. Их очень много: если начать рассказывать, я буду писать только о них. Самый нетривиальный, как оказалось, — хак с использованием регистра X2. Это недокументированная возможность, поэтому её использование не очень распространено. Это не вполне регистр, скорее техническая ячейка для хранения копии экрана, но в программном режиме она обрастает некоторым количеством багов — их вообще в этом калькуляторе полно, — что позволяет использовать её в некоторых случаях как ещё один регистр. В основном — для хранения промежуточных значений. Я собрал очень много готовых программ — почти восемь сотен, и в самых плотно упакованных все регистры уже заняты. Выгрузить их тоже некуда: памяти, напоминаю, очень мало — сотня байт, поэтому X2 там очень даже к месту. Интересно, насколько хорошо будет работать оптимизация, когда нейросетка её доделает. Хотя мы всё обвешиваем тестами, промежуточный результат пока ничего не даёт, кроме расхода токенов: оптимизацию можно будет полноценно включить только в самом конце. Очень жду завершения этого этапа: так долго подпинывать нейросеть без промежуточного результата — скучновато.