Re:Why study functional programming? (2012)
by agalunar on Tuesday August 02, 2022 @09:41PM
(#32326661)
> If a piece of code B loads the contents of memory where a piece of code A writes that's before B, then you can never execute B before or in parallel with A.
This is a description of what a data dependency is; I'm still not sure what your point is regarding mutable data structures specifically.
Re:Why study functional programming? (2012)
by kephasp on Tuesday August 02, 2022 @09:55PM
(#32326736)
A mutable data structure will have such data dependencies all around. An immutable data structure cannot, because it will never be written in after creation.
I think you're right, it's the compiler that'll insert the locks according to the semantics of the language.
> For an out-of-order superscalar machine, mutability has nothing to do with it;
Yes it does, because it creates data dependencies. If a piece of code B loads the contents of memory where a piece of code A writes that's before B, then you can never execute B before or in parallel with A.