|
|
|
|
|
by discarded1023
358 days ago
|
|
The author is right to note that Haskell can optimise across module (abstraction) boundaries. However I remember that in my childhood that Debray [1] did a lot of work on link-time optimisations (late 1980s). And of course there's the classic self work that fed into the JVM [2], and the whole-of-program compilers that are receiving renewed attention now; mlton [3] being a classic of the genre, "supercompiler" being the active area of research AIUI. So at least sometimes abstraction boundaries are transparent to optimisers. On the other hand the classic data abstraction story (signatures/interfaces for structures/modules) naturally allows for selecting or optimising implementations depending on uses. There was some great work done in the early 2000s on that (see [4]) and I'm sure the state-of-the-art has moved on since [5]. [1] https://dblp.org/pid/d/SKDebray.html [2] https://en.wikipedia.org/wiki/Self_(programming_language) [3] http://mlton.org/ [4] https://dblp.org/pid/59/4501.html [5] https://en.wikipedia.org/wiki/Interprocedural_optimization |
|