C no es un lenguaje de bajo nivel: tu computadora no es un PDP-11 rápido

C Is Not a Low-Level Language (2018)

A raíz de las vulnerabilidades Meltdown y Spectre, este artículo analiza sus causas raíz: los procesadores modernos ejecutan instrucciones especulativamente y permiten ataques de canal lateral. Estas características se añadieron para que los programadores de C siguieran creyendo que programaban en un lenguaje de bajo nivel, cuando ya no es así. El artículo explica cómo la búsqueda de alto paralelismo a nivel de instrucción y la memoria plana, pilares del modelo abstracto de C, han llevado a procesadores increíblemente complejos y a compiladores que requieren transformaciones enormes para generar código rápido, violando a menudo las reglas del lenguaje.

Las características que condujeron a estas vulnerabilidades, junto con otras varias, se añadieron para que los programadores de C siguieran creyendo que programaban en un lenguaje de bajo nivel, cuando esto no ha sido así durante décadas.

Más de este día

2026-09-07