Сегодня наконец закончился процесс переноса кода «МК-Про» на C++. Переписывание заняло около восьми дней, использовались три нейросети. Основной каркас был перенесён с помощью «ГПТ-5.5», часть тестов довольно механически переносилась нейросетью «ГПТ-5.3-Кодекс-Спарк», а последние штрихи вносил и баги чинил «Опус 4.8».
Производительность трансляции улучшилась в среднем в 2,5 раза. Есть один регресс у одной короткой программы, которая выполняются до 50 миллисекунд, но это, скорее всего, погрешность: не исключено, что в этот момент в фоне стартовало что-то тяжёлое.
За восемь дней было переписано 122 тысячи строк, которые превратились в 145,5 тысяч строк на C++.
Жесть. Я на верилоге за пару дней написал (тогда ещё нейронок не было) процессор 8080, а тут столько мучений. Реально не понимаю что там может быть сложного? Строк кода наверное больше чем транзисторов в микросхемах этого калькулятора
Как уж что? Огромное количество совершенно разношёрстных оптимизационных стратегий, которые надо уметь применять. Эффективные компиляторы/трансляторы писать очень сложно.
Попробуйте, например, прикинуть как бы вы реализовали оптимизационную стратегию использования регистра X2, учитывая все его ограничения. Если сложно, можно глянуть на конкретные оптимизации с его участием.
Тяжёлый слог у описания оптимизаций, но примерно понял, стараться подгонять числа чтоб одно число можно было использовать и тут и там. Я таким занимался когда хотелось чисто теоретически написать самый маленький резидентный вирус, там размер вируса и сегмент было одним числом (или что-то такого). Ладно, я не вникал в эти запрограммированные оптимизации, но разве нельзя просто смоделировать-скомпилировать лярд вариантов и выбрать тот, который вышел меньше? (Или какой там критерий)
Это отношения к X2 не имеет, это ещё одна оптимизация.
В смысле просто перебрать все операции в 105 ячейках и посмотреть получится ли нужная программа или как это? Во-первых, перебираться это будет до тепловой смерти Вселенной, а во-вторых, как понять что получилась искомая программа?
P.s. я исхожу из того, что памяти и регистров там кот наплакал и нет смысла делать полноценный компилятор как на pc
Так тем и сложнее.