Warning: mkdir(): No space left on device in /var/www/hottg/post.php on line 59

Warning: file_put_contents(aCache/aDaily/2025-07-19/post/scalabin/--): Failed to open stream: No such file or directory in /var/www/hottg/post.php on line 72
На днях промелькнула заметка об оптимизациях @Scala bin
TG Telegram Group & Channel
Scala bin | United States America (US)
Create: Update:

На днях промелькнула заметка об оптимизациях, проводимых компилятором Haskell.

Обычно в контексте максимальной производительности упоминают C, C++ или какую-нибудь из версий ASM. Это обусловлено тем, что данные языки максимально "близки к железу": позволяют напрямую работать с памятью, выравнивать байтики в структурах и компилируются напрямую в машинный код для целевой платформы.

При всём обилии оптимизаций в компиляторах таких языков, ускорение программы подразумевает неизменность в логике ее работы. В данном же случае выведение логики программы и, как следствие, возможность оптимизации, ограничены обилием низкоуровневых возможностей - компилятор не может однозначно вывести взаимосвязи между частями программы.

Haskell, в свою очередь, гораздо более структурирован и обладает своим набором оптимизаций перед компиляцией в язык C— (да, "си минус минус"), который впоследствии переводится в целевой язык. Внезапно, в некоторых случаях эти оптимизации позволяют превзойти в производительности аналогичную программу на языке (в данном случае, ATS), компилируемом с помощью gcc или clang.

Естественно, вышесказанное не означает, что Haskell "быстрее C" - интересна возможность использования функциональной природы языка для оптимизации самой структуры програмы. Можно надеяться, что подобный функционал появится и в Dotty - в списке возможностей компилятора строке "whole program optimizer" соответствует статус "в процессе".

На днях промелькнула заметка об оптимизациях, проводимых компилятором Haskell.

Обычно в контексте максимальной производительности упоминают C, C++ или какую-нибудь из версий ASM. Это обусловлено тем, что данные языки максимально "близки к железу": позволяют напрямую работать с памятью, выравнивать байтики в структурах и компилируются напрямую в машинный код для целевой платформы.

При всём обилии оптимизаций в компиляторах таких языков, ускорение программы подразумевает неизменность в логике ее работы. В данном же случае выведение логики программы и, как следствие, возможность оптимизации, ограничены обилием низкоуровневых возможностей - компилятор не может однозначно вывести взаимосвязи между частями программы.

Haskell, в свою очередь, гораздо более структурирован и обладает своим набором оптимизаций перед компиляцией в язык C— (да, "си минус минус"), который впоследствии переводится в целевой язык. Внезапно, в некоторых случаях эти оптимизации позволяют превзойти в производительности аналогичную программу на языке (в данном случае, ATS), компилируемом с помощью gcc или clang.

Естественно, вышесказанное не означает, что Haskell "быстрее C" - интересна возможность использования функциональной природы языка для оптимизации самой структуры програмы. Можно надеяться, что подобный функционал появится и в Dotty - в списке возможностей компилятора строке "whole program optimizer" соответствует статус "в процессе".


>>Click here to continue<<

Scala bin






Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)


Warning: Undefined array key 3 in /var/www/hottg/function.php on line 115

Fatal error: Uncaught mysqli_sql_exception: Can't create/write to file '/tmp/#sql-temptable-a06e-53d020-215b.MAI' (Errcode: 28 "No space left on device") in /var/www/hottg/function.php:216 Stack trace: #0 /var/www/hottg/function.php(216): mysqli_query() #1 /var/www/hottg/function.php(115): select() #2 /var/www/hottg/post.php(351): daCache() #3 /var/www/hottg/route.php(63): include_once('...') #4 {main} thrown in /var/www/hottg/function.php on line 216