C는 저수준 언어가 아니다: 당신의 컴퓨터는 빠른 PDP-11이 아니다

C Is Not a Low-Level Language (2018)

Meltdown과 Spectre 취약점의 근본 원인은 프로세서가 C 프로그래머들이 여전히 저수준 언어를 쓰고 있다고 믿게 하려고 복잡성을 추가했기 때문입니다. 실제로 C는 PDP-11 시절에는 저수준 언어였지만, 현대 프로세서는 추측 실행, 레지스터 리네이밍, 캐시 등으로 인해 C의 추상 머신과 전혀 다릅니다. C 코드를 빠르게 실행하려면 컴파일러가 수십만 줄의 복잡한 최적화를 수행해야 하며, 이는 종종 C의 의미론을 위반합니다. 이 기사는 C가 더 이상 하드웨어에 가깝지 않으며, 저수준 언어라는 환상이 보안 취약점과 성능 문제를 초래한다고 주장합니다.

프로세서 아키텍트들은 단지 빠른 프로세서를 만드는 것이 아니라, PDP-11과 동일한 추상 머신을 노출하는 빠른 프로세서를 만들기 위해 노력하고 있었습니다.

이 날의 다른 글

2026-09-07