Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is a meme which is repeated often, but not really true. If you disagree, please state specifically what property of PDP-11 you think it different from how modern computers work, and where this affects C but not other languages.


This isn’t my space to opine on, but I found this talk both riveting and compelling: https://m.youtube.com/watch?v=36myc8wQhLo&t=1s&pp=2AEBkAIB

In a nutshell, the useful fiction of computer-as-Von-Neumann-meaning doesn’t adequately reflect the reality of modern hardware. Not only does the CPU itself not fit that model (with things like speculative execution, sophisticated power and load management…), but the system as a whole is increasingly an amalgamation of different processors and address spaces.


It lacked SIMD instructions.


C compilers can emit SIMD instructions just fine and often have extensions to support writing it explicitly. Also few other languages have explicit support for them from the start and most have added them as some kind of extension later. So the idea that this is some fundamental computer architecture thing C got wrong seem pretty far-fetched. Support for multi-core processing would be a more plausible thing to look at, but even there it seems that C still does quite well.

Don't forget about branch prediction (GCC may have __builtin_expect, but that's not standard C).

The compiler usually can't do anything about branch prediction. Expect is more about keeping cold paths out of the cache.

Actually that was one of the problems with EPIC architectures, where compilers are expected to be the ones doing those kind of optimizations.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: