Here's some related work from 2005: http://www.google.co.uk/search?ie=UTF-8&q=%22A+Nitpicker...
GHC has a comparatively expensive write barrier. That could be seen as taking advantage of immutability. The runtime system takes more advantage of purity, though. For example, it's safe to have certain races, because…
Incidentally fusion won't work for this example (at least not as currently implemented.) Only `foldr` is fusable. Fortunately, regular inlining does just fine. There is of course an even simpler version: sum (map…
No, the problem with Itanium is/was that it's no-one knew how to write good compilers for them. Also, VLIW is incredibly close to the hardware and thus bound to be outdated very quickly. It didn't help that IA64 has…
JIT simply stands for Just-in-time compilation or optimisation, that is you delay optimising parts of your program until the program executes. Most systems start of by interpreting the some form of bytecode and observe…
A closure is a function + environment, i.e., the values of its free variables at the time of creation. A thunk is a suspended computation together with an environment. That is, a thunk is a special type of closure,…
Here's some related work from 2005: http://www.google.co.uk/search?ie=UTF-8&q=%22A+Nitpicker...
GHC has a comparatively expensive write barrier. That could be seen as taking advantage of immutability. The runtime system takes more advantage of purity, though. For example, it's safe to have certain races, because…
Incidentally fusion won't work for this example (at least not as currently implemented.) Only `foldr` is fusable. Fortunately, regular inlining does just fine. There is of course an even simpler version: sum (map…
No, the problem with Itanium is/was that it's no-one knew how to write good compilers for them. Also, VLIW is incredibly close to the hardware and thus bound to be outdated very quickly. It didn't help that IA64 has…
JIT simply stands for Just-in-time compilation or optimisation, that is you delay optimising parts of your program until the program executes. Most systems start of by interpreting the some form of bytecode and observe…
A closure is a function + environment, i.e., the values of its free variables at the time of creation. A thunk is a suspended computation together with an environment. That is, a thunk is a special type of closure,…