When I first learned to program, I though imperative programming was "closer to the machine" than functional programming because you update variables just like you do registers in assembly.
Later I learned that modern optimizing compilers completely throw away all of your source-level variable mutation by translating to a functional intermediate language (SSA) and then decide for themselves how to store your variables.
=> More informations about this toot | More toots from maxsnew@types.pl
@maxsnew even better, modern computer architectures have many many more registers than the architecture advertises and are constantly ignoring the register names in machine code in order to exploit instruction level parallelism. In effect, they make register-based computation stateless, even if your compiler hasn’t!
=> More informations about this toot | More toots from antidote@mathstodon.xyz
@antidote @maxsnew And a more modern solution: just use de Bruijn indices! https://ieeexplore.ieee.org/document/8574536
Typically, conventional superscalar processors improve this performance by introducing out-of-order (OoO) execution with register renaming. However, it is also known to increase the complexity and affect the power efficiency. This paper realizes a novel computer architecture called "STRAIGHT" to resolve this dilemma. The key feature is a unique instruction format in which the source operand is given based on the distance from the producer instruction. By leveraging this format, register renaming is completely removed from the pipeline.
(Register renaming is α-renaming!)
=> More informations about this toot | More toots from HarrisonGrodin@mathstodon.xyz
@HarrisonGrodin @antidote @maxsnew This sounds lovely for compiler writers 😐
=> More informations about this toot | More toots from acsawdey@fosstodon.org
Hope you don't mind, I'd like to save this conversation for later so I can learn more, so I've charted it ...
Calling @Chartodon spine ...
CC: @acsawdey @HarrisonGrodin @antidote @maxsnew
=> More informations about this toot | More toots from ColinTheMathmo@mathstodon.xyz
@ColinTheMathmo
Your chart is ready, and can be found here:
https://www.solipsys.co.uk/Chartodon/113918369538567659.svg
Things may have changed since I started compiling that, and some things may have been inaccessible.
In particular, the very nature of the fediverse means some toots may never have made it to my instance, in which case I can't see them, and can't include them.
The chart will eventually be deleted, so if you'd like to keep it, make sure you download a copy.
=> More informations about this toot | More toots from Chartodon@mathstodon.xyz This content has been proxied by September (3851b).Proxy Information
text/gemini