
On Tue, 2008-09-23 at 00:46 +0400, Bulat Ziganshin wrote:
Hello Jonathan,
Tuesday, September 23, 2008, 12:30:19 AM, you wrote:
yes, in asm number of instructions executed more or less define number of CPU cycles used.
....
well, i more or less know all this stuff. but are you really compare to Haskell???
You were tasked with finding a language where `naive' code is fast. Assembler doesn't count; you have to think about
does Haskell programs typically written in account of cache misses and CPU ticks?
No. At that level, you write assembler (or C). But assembler and C are usually not written in a naive fashion (not as naive as naive Haskell). And when they do, they suck, performance-wise.
i suggest you to look into two papers i mentioned
I don't remember the exact citation, but I'm sure I've read them. Probably several times over. Most papers I've seen I think the authors looked for a large contrast; they aren't comparing Haskell and C on truly level ground.
- they state hundreds times slower naive Haskell
With slow datastructures
vs naive C.
Not so naive; just better datastructures. Which are then replicated in the relevant papers. And the result is neither extremely low-level code nor 100s of times slower than C. The term `naive' gets thrown around in the introduction to these papers for effect, but the Haskell code under discussion by the time you reach the conclusion isn't much less `naive' than the C code in the introduction.
it's a reality, against all your arguments
Bang harder!! I don't think the next list over can hear you yet! jcc