Los corchetes curvos { } en UNIX y C representan una evolución fascinante de la historia del software. El artículo explica cómo estos caracteres, esenciales en C para definir bloques de código, fueron originalmente imposibles de escribir en terminales antiguas como el Teletype Model 33, que no soportaba letras minúsculas ni corchetes.
En los años 70, UNIX implementó un sistema de traducción transparente: el kernel convertía automáticamente ) en { y ) en } al escribir en terminales Teletype Model 33. Esta solución emergió de la necesidad de corregir errores en impresoras que no podían borrar texto impreso, heredado de Multics con caracteres # y @ para borrar.
C89 introdujo trigrafías (??< y ?>) para reemplazar corchetes, pero estas solo aparecieron después de que el Teletype Model 33 ya estuviera obsoleto. Posteriormente, C95 añadió digrafías más legibles (<% y %>).
La evolución de B a C muestra cómo Dennis Ritchie añadió tipos char y [] en mayo de 1972, luego se convirtió en compilador y se renombró a C. Los corchetes se mantuvieron desde el inicio de C en 1972, mientras que B original usaba $( y $).
Este sistema de traducción era transparente para programas de espacio de usuario, permitiendo que el kernel tradujera bytes ASCII { } a ) ) al escribir en terminales Teletype Model 33, o viceversa al leer.
Las aplicaciones incluyen entender cómo evolucionó el código fuente de sistemas operativos, analizar compatibilidad histórica, y comprender por qué algunos compiladores antiguos requerían sintaxis especial para caracteres no disponibles en hardware antiguo.
