Somos ruins em marketing — admitimos. Nossa força é escrever o tipo de artigos no qual desenvolvedores, administradores e defensores de software livre confiam para saber o que está acontecendo no mundo Linux. Assine hoje para nos ajudar a continuar fazendo isso, e para que não tenhamos que ficar bons em marketing.
Como professor de engenharia biomédica, Martin Uecker talvez não se encaixe no perfil de um apresentador típico do Kernel Recipes. No entanto, é um usuário de Linux de longa data e trabalha em software livre para controlar scanners de ressonância magnética (MRI). Esteve na conferência para falar sobre a linguagem de programação C, o problema específico do comportamento indefinido em C, e se eventualmente pode se tornar um linguagem segura em relação à memória.
Por que se preocupar com C em 2026? Disse que ainda é uma ótima linguagem. C é portátil, estável a longo prazo, oferece compilação rápida, e o código binário resultante é rápido. "O que você vê é o que você obtém"; é fácil olhar para o código C e ter uma ideia do que o computador realmente fará. Há muitas ferramentas para trabalhar com a linguagem, e C se afasta quando necessário.
C tem uma longa história, e isso afeta a linguagem como a vemos hoje, disse. O padrão C89 teve que lidar com uma ampla variedade de hardware, incluindo máquinas com representações de inteiros em sinal-magnitude ou complemento de um, memória segmentada, representações exóticas de ponteiros, e tamanhos surpreendentes para os tipos. Algumas máquinas Honeywell, por exemplo, tinham bytes de nove bits. Isso complicou enormemente a tarefa de escrever um padrão que permitisse escrever código portátil. A abordagem adotada foi definir a semântica da linguagem em termos de uma máquina abstrata. Todas as operações devem ser executadas como se tivessem rodado nessa máquina abstrata, que pode não corresponder exatamente ao hardware real. O comportamento observável do programa deve ser o que a máquina abstrata teria feito.
Fonte: Hacker News · Resumido por HeadlinesBriefing