HeadlinesBriefing favicon HeadlinesBriefing.com

C Is Not a Low-Level Language: Beyond the PDP-11 Model

Hacker News •
×

The Meltdown and Spectre vulnerabilities reveal a fundamental mismatch: modern processors do not execute C's abstract machine directly. For decades, hardware vendors have built complex features — speculative execution, deep pipelines, branch prediction — to make CPUs appear like fast PDP-11 emulators, preserving the illusion that C is a low-level language "close to the metal."

Alan Perlis defined low-level languages as those requiring "attention to the irrelevant," which fits C, but misses what programmers actually want: an abstract machine mapping cleanly to hardware. C matched the PDP-11's sequential, flat-memory model, but modern superscalar CPUs with 180 in-flight instructions and 25-branch lookahead diverge radically.

This pursuit of instruction-level parallelism (ILP) for serial C code directly caused Spectre and Meltdown. Discarded speculative work creates observable side channels. In contrast, GPUs achieve performance through explicit parallelism without such complexity. The article argues that C's abstract machine is outdated; true low-level access requires languages matching modern hardware realities, not PDP-11 emulation.