El lenguaje de programación C (a veces denominado K&R , por las iniciales de sus autores) es unlibro de programación informática escrito por Brian Kernighan y Dennis Ritchie , el último de los cuales diseñó e implementó originalmente el lenguaje de programación C , así como co-diseñó el sistema operativo Unix con el que el desarrollo del lenguaje estuvo estrechamente entrelazado. El libro fue fundamental para el desarrollo y popularización de C y todavía se lee y se usa ampliamente en la actualidad. Debido a que el libro fue co-escrito por el diseñador original del lenguaje, y debido a que la primera edición del libro sirvió durante muchos años como el estándar de facto para el lenguaje, el libro fue considerado por muchos como la referencia autorizada sobre C. [1] [2]
C fue creado por Dennis Ritchie en Bell Labs a principios de los años 1970 como una versión aumentada de B de Ken Thompson . [3] Otro empleado de Bell Labs, Brian Kernighan , había escrito el primer tutorial de C, [4] y persuadió a Ritchie para que fuera coautor de un libro sobre el lenguaje. [5] Kernighan escribiría la mayor parte del material "expositivo" del libro, y el manual de referencia de Ritchie se convirtió en sus apéndices.
La primera edición, publicada el 22 de febrero de 1978, fue el primer libro ampliamente disponible sobre el lenguaje de programación C. Su versión de C a veces se denomina K&R C (en honor a los autores del libro), a menudo para distinguir esta versión temprana de la versión posterior de C estandarizada como ANSI C. [ 6]
En abril de 1988 se publicó la segunda edición del libro, actualizada para cubrir los cambios en el lenguaje resultantes del entonces nuevo estándar ANSI C, en particular con la inclusión de material de referencia sobre bibliotecas estándar . La segunda edición del libro (y a partir de 2024 [actualizar], la más reciente) se ha traducido desde entonces a más de 20 idiomas. [7] En 2012, se publicó una versión de libro electrónico de la segunda edición en formatos ePub, Mobi y PDF. [8]
El lenguaje C se estandarizó por primera vez en 1989 (como ANSI X3.159-1989) y desde entonces ha sufrido varias revisiones. Sin embargo, no se ha publicado ninguna nueva edición del lenguaje de programación C que abarque los estándares más recientes.
La revista Byte afirmó en agosto de 1983 que "[ El lenguaje de programación C ] es la obra definitiva sobre el lenguaje C. ¡No siga leyendo hasta que tenga este libro!" [1] Jerry Pournelle escribió en la revista ese año que el libro "sigue siendo el estándar... un poco conciso". Continuó diciendo: "Puede aprender el lenguaje C sin entender a Kernighan y Ritchie, pero eso es hacerlo de la manera difícil. También está trabajando demasiado si lo convierte en el único libro sobre C que compra". [9]
El lenguaje de programación C se ha citado a menudo como modelo para la redacción técnica , y los revisores lo describen como un lenguaje con una presentación clara y un tratamiento conciso. Los ejemplos generalmente consisten en programas completos del tipo que uno probablemente encontrará en el uso diario del lenguaje, con énfasis en la programación de sistemas . Sus autores escribieron:
Hemos intentado mantener la brevedad de la primera edición. C no es un lenguaje extenso y no se ve beneficiado por un libro extenso. Hemos mejorado la exposición de características críticas, como los punteros, que son fundamentales para la programación en C. Hemos refinado los ejemplos originales y hemos añadido nuevos ejemplos en varios capítulos. Por ejemplo, el tratamiento de declaraciones complicadas se amplía con programas que convierten declaraciones en palabras y viceversa. Como antes, todos los ejemplos se han probado directamente a partir del texto, que está en formato legible por máquina.
— prefacio a la segunda edición [10]
El libro presentó el programa "¡Hola, mundo!" , que imprime únicamente el texto "hola, mundo" como ilustración de un programa C funcional mínimo. Desde entonces, muchos textos han seguido esa convención para presentar un lenguaje de programación.
Antes de la llegada de ANSI C , la primera edición del texto servía como estándar de facto del lenguaje para los escritores de compiladores de C. Con la estandarización de ANSI C, los autores escribieron la segunda edición de manera más consciente para programadores en lugar de escritores de compiladores, escribiendo,
El Apéndice A, el manual de referencia, no es el estándar, sino nuestro intento de transmitir los aspectos esenciales del estándar en un espacio más reducido. Está pensado para que los programadores lo comprendan fácilmente, pero no como una definición para los escritores de compiladores (esa función le corresponde al propio estándar). El Apéndice B es un resumen de las funciones de la biblioteca estándar. También está pensado para que lo utilicen como referencia los programadores, no los implementadores. El Apéndice C es un resumen conciso de los cambios con respecto a la versión original.
— prefacio a la segunda edición [10]
La influencia del lenguaje de programación C en los programadores, una generación de los cuales trabajó primero con C en universidades e industrias, ha llevado a muchos a aceptar el estilo de programación y las convenciones de los autores como práctica recomendada, si no como práctica normativa. Por ejemplo, el estilo de codificación y formato de los programas presentados en ambas ediciones del libro se conoce a menudo como "estilo K&R" o " estilo de una sola llave verdadera " y se convirtió en el estilo de codificación utilizado por convención en el código fuente de los núcleos Unix y Linux .