Año | estándar C |
---|---|
1972 | El nacimiento de una lengua |
1978 | K & R C |
1989 | ANSI C (C89) |
1990 | ISO C (igual que C89) |
1999 | C99 |
2011 | C11 |
2017 | C17 (corregido C11) |
2018 | C18 (igual que C17) |
El lenguaje de programación C fue desarrollado entre 1969 y 1973 en Bell Labs . Según Ritchie , el período más activo de creatividad se produjo en 1972 . El idioma se llamó "C" (C es la tercera letra del alfabeto inglés ) porque muchas de sus características se originan en el antiguo idioma " B " (B es la segunda letra del alfabeto inglés). Hay varias versiones diferentes del origen del nombre de la lengua bi. Ken Thompson apunta al lenguaje de programación BCPL , pero también existe el lenguaje Bon , también creado por él. Ritchie sugiere que el nombre del idioma puede haber sido derivado del nombre de la esposa de Thompson, Bonnie [1] .
Para 1973, el lenguaje C se había vuelto lo suficientemente fuerte como para que la mayor parte del kernel de UNIX , originalmente escrito en ensamblador PDP-11 /20, fuera reescrito en C. Fue uno de los primeros núcleos del sistema operativo escrito en un lenguaje distinto al ensamblador; antes eran solo Multics (escrito en PL/1 ) y TRIPOS (escrito en BCPL).
Existen varias leyendas respecto al desarrollo de C y su relación con el sistema operativo UNIX , entre ellas las siguientes:
Según una leyenda, el desarrollo de C fue el resultado del hecho de que sus futuros autores amaban un juego de computadora como el popular juego Asteroids (Asteroides)[ fuente? ] . Llevaban mucho tiempo jugándolo en el servidor principal de la compañía , que no era lo suficientemente potente y debía dar servicio a un centenar de usuarios. Thompson y Ritchie sintieron que carecían de control sobre la nave espacial para evitar golpear algunas de las rocas. Así que decidieron portar el juego a un PDP-7 gratuito en la oficina. Sin embargo, esta computadora no tenía un sistema operativo , lo que los obligó a escribir uno. Al final, decidieron portar este sistema operativo a la oficina PDP-11 , lo cual fue muy difícil, porque su código estaba íntegramente escrito en ensamblador . Se sugirió usar algún tipo de lenguaje portátil de alto nivel para que el sistema operativo pudiera transferirse fácilmente de una computadora a otra. El lenguaje B, que originalmente querían usar para esto, se vio privado de la funcionalidad que podría usar las nuevas características del PDP-11. Por lo tanto, se decidieron por el desarrollo del lenguaje C.
Hay otra leyenda. La primera computadora para la que se escribió originalmente UNIX estaba destinada a ser un sistema automático de llenado de documentos. La primera versión de UNIX fue escrita en lenguaje ensamblador. Más tarde, para reescribir este sistema operativo, se desarrolló el lenguaje C.[ fuente? ] .
En 1978, Brian Kernighan y Dennis Ritchie publicaron la primera edición de El lenguaje de programación C. Este libro, conocido por los programadores como "K&R", sirvió durante muchos años como una especificación de lenguaje informal. La versión del lenguaje C que se describe en él a menudo se denomina "K&R C". La segunda edición de este libro trata sobre el estándar ANSI C más reciente , que se describe a continuación.
K&R introdujo las siguientes funciones de lenguaje:
K&R C a menudo se considera la parte más importante del lenguaje que debe admitir un compilador de C. Durante muchos años, incluso después del lanzamiento de ANSI C, se consideró el nivel mínimo al que los programadores deberían adherirse si querían lograr la máxima portabilidad de sus programas, porque no todos los compiladores eran compatibles con ANSI C, y también se necesitaba un buen código K&R C. cierto para ANSI C.
Desde la publicación de K&R C, se han agregado varias funciones al lenguaje, respaldadas por compiladores de AT&T y algunos otros fabricantes:
A fines de la década de 1970, C comenzó a suplantar a BASIC como el lenguaje principal para la programación de microcomputadoras . Fue adaptado para su uso en la PC de IBM en la década de 1980 , lo que llevó a un aumento dramático en su popularidad. Al mismo tiempo, Björn Stroustrup y otros en Bell Labs comenzaron a trabajar para agregar capacidades de programación orientada a objetos a C. El lenguaje que finalmente crearon, C++ , tuvo un gran impacto en el desarrollo de software, pero nunca alcanzó la popularidad de [2] C, especialmente en sistemas tipo UNIX.
En 1983, el Instituto Nacional Estadounidense de Estándares (ANSI) formó un comité para desarrollar una especificación estándar para C. Al final de este largo y difícil proceso, en 1989 finalmente se aprobó como el "Lenguaje de Programación C" ANSI X3.159-1989 . Esta versión del lenguaje se llama ANSI C o C89. En 1990, la norma ANSI C fue adoptada con modificaciones menores por la Organización Internacional de Normalización (ISO) como ISO/IEC 9899:1990 .
Uno de los objetivos de este estándar era desarrollar un superconjunto de K&R C, incorporando muchas de las características del lenguaje que se crearon más tarde. Sin embargo, el comité de estándares también incluyó varias características nuevas, como prototipos de funciones (tomados de C++) y un preprocesador más sofisticado .
ANSI C ahora es compatible con casi todos los compiladores existentes. Casi todo el código C escrito en tiempos recientes se ajusta a ANSI C. Se garantiza que cualquier programa escrito solo en C estándar se ejecutará correctamente en cualquier plataforma que tenga una implementación C adecuada. Sin embargo, la mayoría de los programas están escritos de tal manera que solo se compilarán y ejecutarán en una plataforma en particular porque:
Después de ser estandarizado en ANSI, la especificación del lenguaje C se mantuvo relativamente sin cambios durante mucho tiempo, mientras que C++ siguió evolucionando (en 1995, la Primera Enmienda Normativa introdujo el estándar C, pero casi nadie lo reconoció). Sin embargo, la norma fue revisada a fines de la década de 1990 , lo que condujo a la publicación de la norma ISO 9899:1999 en 1999 . Este estándar se conoce comúnmente como "C99". En marzo de 2000, ANSI lo adoptó y adaptó.
Algunas características nuevas de C99:
El 8 de diciembre de 2011 se publicó un nuevo estándar para el lenguaje C (ISO/IEC 9899:2011) [3] . Principales cambios:
Se presentó una versión preliminar de la norma como C17 (ISO/IEC 9899:2017) en 2017 [4] . En junio de 2018, el estándar se publicó como C18 (ISO/IEC 9899:2018) [5] [6] . El nuevo estándar elimina los defectos vistos en la versión anterior sin agregar nuevas características. Los nombres C17 y C18 suelen denominarse sinónimos [6] .
lenguaje de programación c | |
---|---|
compiladores |
|
bibliotecas | |
Peculiaridades | |
algunos descendientes | |
C y otros lenguajes |
|
Categoría:Lenguaje de programación C |