Ir al contenido principal
Bethemesh
BiografíaHistoria de la informática

Dennis Ritchie: el lenguaje C en el corazón de Unix

Cómo Dennis Ritchie diseñó C y contribuyó a Unix, dos fundamentos que hicieron más portable el software de sistemas.

Publicado el 3 de agosto de 2026Lectura : 6 minPor Equipo Bethemesh
Principiante
Retrato de Dennis Ritchie, diseñador de C y coautor de Unix
Mostrar el contenido
  1. Buscar una informática menos dependiente de las máquinas
  2. De BCPL y B al lenguaje C
  3. Unix reescrito en C
  4. El compilador como instrumento de portabilidad
  5. Una referencia antes de la norma
  6. Un legado técnico de doble filo
  7. Ritchie, Thompson y la cultura Unix
  8. Por qué Dennis Ritchie sigue importando
  9. Cronología
  10. Preguntas frecuentes
  11. ¿Creó Dennis Ritchie Unix?
  12. ¿Por qué creó Ritchie C?
  13. ¿Es C un lenguaje de bajo nivel?
  14. ¿Por qué importó reescribir Unix en C?
  15. ¿Qué papel tuvo Brian Kernighan?
  16. ¿Por qué se sigue utilizando C pese a sus riesgos?

Dennis Ritchie diseñó un lenguaje deliberadamente compacto, lo bastante próximo a la máquina para escribir un sistema operativo y lo bastante independiente para trasladarlo a nuevos ordenadores. Esta combinación convirtió C y Unix en fundamentos de la informática moderna.

Conviene distinguir las aportaciones. Ritchie fue el principal diseñador de C. Unix fue un proyecto colectivo de Bell Labs iniciado por Ken Thompson y desarrollado con Ritchie y otros ingenieros. Su historia común muestra cómo un lenguaje y un sistema operativo pueden transformarse mutuamente.

Buscar una informática menos dependiente de las máquinas

Dennis MacAlistair Ritchie nació en Bronxville, Nueva York, en 1941. Estudió física y matemáticas aplicadas en Harvard, donde conoció los ordenadores. En 1967 entró en el centro de investigación informática de Bell Labs.

El laboratorio participaba en Multics, un ambicioso sistema de tiempo compartido. Tras la retirada de Bell Labs en 1969, Ken Thompson experimentó con un sistema más pequeño en un PDP-7. Con Ritchie y sus compañeros, ese trabajo se convirtió en Unix.

Las primeras máquinas tenían poca memoria y el software de sistemas se escribía a menudo en ensamblador. Este ofrecía control preciso, pero ataba el programa a una arquitectura. Cambiar de ordenador obligaba a reescribir buena parte del sistema.

De BCPL y B al lenguaje C

Thompson adaptó primero BCPL en un lenguaje llamado B. Servía para algunas tareas, pero su modelo sin tipos encajaba mal con el PDP-11 y sus distintos formatos de datos. Ritchie añadió tipos y creó el «New B», que se convirtió en C a principios de los setenta.

C siguió siendo pequeño. Sus construcciones correspondían directamente a operaciones del procesador, mientras funciones, estructuras, punteros y tipos organizaban el programa sin escribir cada instrucción en ensamblador.

Un puntero representa una dirección de memoria. Permite código de sistemas eficiente y estructuras flexibles, pero no evita automáticamente accesos fuera de límites, uso de memoria liberada o interpretaciones erróneas. La fuerza y los riesgos del lenguaje nacen en parte de la misma decisión: confiar en quien programa.

Unix reescrito en C

Hacia 1973, la mayor parte del núcleo de Unix se reescribió en C. Algunos fragmentos dependientes del hardware siguieron en ensamblador, pero el grueso del sistema podía compilarse para una máquina nueva con menos adaptación.

El resultado fue histórico no porque ningún lenguaje de alto nivel hubiera servido antes para sistemas, sino porque Unix demostró de forma convincente que un sistema operativo eficiente podía ser portable. C se difundió con Unix en las universidades; Unix se benefició a su vez de la adaptabilidad de C.

La relación también moldeó el lenguaje. C no se diseñó de forma abstracta para aplicarlo después: sus tipos, operadores y biblioteca evolucionaron frente a necesidades concretas. Muchas herramientas Unix usaban el mismo lenguaje que el núcleo, facilitando su traslado.

El compilador como instrumento de portabilidad

La portabilidad no procede solo del texto del lenguaje. Requiere un compilador que traduzca las mismas construcciones a distintos juegos de instrucciones y una biblioteca que aísle servicios del sistema.

En Bell Labs, C evolucionó con sus compiladores. Debía ser fácil de implementar y, a la vez, exponer características útiles. Matrices y punteros están relacionados, las estructuras describen datos en memoria y los operadores suelen corresponder a instrucciones baratas.

No existe independencia total. El tamaño de los tipos, el orden de bytes y ciertos comportamientos varían. Un programa portable debe confiar en las garantías del lenguaje, no en detalles de una máquina. La diferencia entre lo prometido por la norma y lo elegido por una implementación se volvió central.

La difusión académica de Unix creó un círculo virtuoso. Los estudiantes recibían el sistema, su código y su lenguaje principal; desarrollaban herramientas, portaban Unix y llevaban esas prácticas a la industria. C viajó con un entorno de programación completo.

Una referencia antes de la norma

En 1978, Brian Kernighan y Dennis Ritchie publicaron The C Programming Language. Conocido como K&R, combinaba explicación concisa, ejemplos y una descripción que funcionó durante años como referencia de hecho.

La multiplicación de compiladores hizo necesaria una norma. El comité ANSI X3J11 comenzó en 1983; la norma estadounidense apareció en 1989 y se convirtió en ISO en 1990. Precisó lenguaje y biblioteca intentando conservar los programas existentes.

Ritchie no controló solo la evolución. Tras su creación, C se convirtió en infraestructura compartida, gobernada por normas e implementada en una inmensa variedad de procesadores.

Un legado técnico de doble filo

C influyó directamente en C++ y Objective-C. Su sintaxis marcó Java, JavaScript, C#, Go y muchos otros lenguajes, aunque difieran en memoria y ejecución.

Su presencia más profunda permanece en núcleos, controladores, bibliotecas, microcontroladores, bases de datos y compiladores. Una interfaz C suele actuar como terreno común entre componentes escritos con distintas tecnologías.

Ese alcance no convierte C en la mejor opción universal. Sus pocas protecciones facilitan desbordamientos de búfer y errores de duración de vida. Herramientas de análisis, reglas y lenguajes más seguros intentan reducir esos riesgos. Entender la influencia de Ritchie implica entender por qué la industria protege ahora operaciones que C expone directamente.

Ritchie, Thompson y la cultura Unix

Ritchie contribuyó como diseñador y programador, pero atribuir Unix a una persona borraría Bell Labs. Thompson tuvo el papel inicial decisivo; Brian Kernighan, Douglas McIlroy y otros participaron en sus herramientas, ideas y difusión.

Ritchie y Thompson recibieron juntos el Premio Turing de 1983 por la teoría genérica de sistemas y Unix. El premio relacionó acertadamente sus contribuciones.

Ritchie continuó en Bell Labs y trabajó después en Plan 9 e Inferno. Murió en 2011. Su estilo público sobrio contrasta con la extensión de su legado.

Por qué Dennis Ritchie sigue importando

Ritchie ayudó a desplazar una frontera: el software de sistemas ya no tenía que quedar preso del ensamblador de una máquina. C ofreció una abstracción modesta pero decisiva, transparente para el hardware y estable para la portabilidad.

La lección sigue vigente. Cada lenguaje de sistemas reformula los compromisos entre rendimiento y protección, control y abstracción, compatibilidad y progreso a los que C dio una respuesta duradera.

Cronología

  • 1941: Dennis Ritchie nace en Bronxville, Nueva York.
  • 1963: se gradúa en física en Harvard.
  • 1967: entra en Bell Labs.
  • 1969: comienzan los trabajos en Unix con Thompson y el equipo.
  • 1971: Unix se porta al PDP-11.
  • 1972: C toma una forma reconocible a partir de B.
  • 1973: gran parte del núcleo Unix se reescribe en C.
  • 1978: publica The C Programming Language con Brian Kernighan.
  • 1983: Ritchie y Thompson reciben el Premio Turing.
  • 1989: se publica la norma ANSI C.
  • 1990: C se convierte en norma internacional ISO.
  • 2011: fallece Dennis Ritchie.

Preguntas frecuentes

¿Creó Dennis Ritchie Unix?

Fue uno de sus principales desarrolladores, pero Unix fue una obra colectiva iniciada por Ken Thompson en Bell Labs. Ritchie tuvo un papel esencial en su desarrollo y reescritura en C.

¿Por qué creó Ritchie C?

Los lenguajes disponibles respondían mal a las necesidades de Unix en el PDP-11. C debía ofrecer tipos y eficiencia próximos al hardware y permitir trasladar el código.

¿Es C un lenguaje de bajo nivel?

Suele describirse como de nivel intermedio. Ofrece funciones y tipos, pero expone directamente direcciones de memoria y representación de datos.

¿Por qué importó reescribir Unix en C?

Redujo la dependencia del ensamblador de una máquina. Unix fue más fácil de portar, se difundió y demostró la viabilidad de sistemas portables.

¿Qué papel tuvo Brian Kernighan?

No diseñó C, pero contribuyó a documentarlo y difundirlo. Su libro con Ritchie sirvió de referencia antes de la normalización.

¿Por qué se sigue utilizando C pese a sus riesgos?

Produce código predecible, funciona en casi todas las arquitecturas y se integra con sistemas existentes. Estas ventajas exigen más responsabilidad sobre memoria y seguridad.

Fuentes y referencias

  1. 1.Dennis Ritchie --- The Development of the C Language
  2. 2.Dennis Ritchie et Ken Thompson --- The UNIX Time-Sharing System
  3. 3.ACM --- Dennis Ritchie, prix Turing 1983
  4. 4.Computer History Museum --- Dennis Ritchie

Colección

Lenguajes de programación

  1. 01Grace Hopper: de los primeros compiladores a COBOL
  2. 02John Backus: FORTRAN, la notación BNF y el rechazo del código máquina
  3. 03Dennis Ritchie: el lenguaje C en el corazón de Unix
  4. 04FORTRAN: demostrar que un compilador podía competir con el ensamblador
  5. 05El lenguaje C: hacer portables los sistemas sin ocultar la máquina
  6. 06Niklaus Wirth: de Pascal a Oberon, diseñar mediante la simplicidad
  7. 07Bjarne Stroustrup: diseñar C++ sin renunciar al rendimiento
  8. 08Pascal: aprender a programar haciendo visible la estructura
  9. 09C++: de C with Classes a un lenguaje de propósito general
  10. 10Programación orientada a objetos: objetos, mensajes y abstracciones reutilizables
  11. 11Guido van Rossum: crear Python para que el código sea legible
  12. 12Brendan Eich: JavaScript, del prototipo de Netscape al estándar web
  13. 13James Gosling: el ingeniero que dio origen a Java
  14. 14Python: legibilidad, baterías incluidas y un ecosistema mundial
  15. 15Java: escribir una vez, ejecutar en cualquier lugar
  16. 16JavaScript: el lenguaje que hizo interactiva la Web
  17. 17Ken Thompson: de Unix a Go, la simplicidad como método
  18. 18John McCarthy: Lisp y la idea de programar con símbolos
  19. 19Alan Kay: Smalltalk y el ordenador como medio personal
  20. 20Barbara Liskov: la abstracción que hizo modular el software
  21. 21Robin Milner: ML, la prueba asistida y los lenguajes de la interacción
  22. 22Brian Kernighan: AWK, Unix y el arte de explicar el código
  23. 23Anders Hejlsberg: de Turbo Pascal a C# y TypeScript
  24. 24Larry Wall: Perl, el lenguaje que conectó las herramientas de Internet
  25. 25Yukihiro Matsumoto: Ruby y la felicidad del programador
  26. 26Rasmus Lerdorf: PHP y la democratización de la Web dinámica

¿Te ha resultado útil este artículo?