#code_golf — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #code_golf, aggregated by home.social.
-
[Перевод] Компилятор WebAssembly, который помещается в один твит
▍ Введение Наш первый «компилятор WebAssembly в твите» имел длину 269 байт; с тех пор мы смогли снизить её всего до 192 байтов. В результате мы получили компилятор, получающий арифметическое выражение, записанное в обратной польской нотации, и компилирующий его в валидный модуль WebAssembly. Этот модуль экспортирует одну функцию, которая возвращает результат исходного арифметического выражения. Компилятор выглядит так: let c=(b,l)=>WebAssembly.instantiate(new Int8Array(
[,97,115,109,1,,,,1,5,1,96,,1,127,3,2,1,,7,4,1,,,,10,
l=(b=b.split` `.flatMap(t=>t>-1?[65,t]:107+'-*/'.indexOf(t)))
.length+4,1,l-2,,...b,11])) А вот пример его использования: (await c('11 11 1 - + 4 * 2 /')).instance.exports['']() Но это не просто хитрый трюк — если вы начнёте разбираться, как работает этот код, то на удивление много узнаете о WebAssembly! В этом посте мы объясним, как это всё работает, пошагово деобфусцируя код.https://habr.com/ru/companies/ruvds/articles/877556/
#кодгольфинг #code_golf #трюки_в_коде #разреженные_массивы #модули #компиляция_модулей #ruvds_перевод
-
[Перевод] Новый рекорд производительности FizzBuzz
283 ГБ/с на AMD Ryzen 9 7700X. Сборка (протестирована с GCC 13): g++ fizzbuzz.cc -march=native -o fizzbuzz -O3 -Wall -std=c++20 -fno-tree-vectorize -fno-exceptions На сборку уходит несколько минут. В зависимости от CPU можно добиться повышенной производительности с -fno-tree-vectorize или без этого ключа.
https://habr.com/ru/articles/794925/
#fizzbuzz #code_golf #задачи_для_собеседований #оптимизация_кода