History of C
From cppreference.net
Contenidos |
C Temprano
- 1969: B creado, basado en BCPL, para reemplazar el ensamblador del PDP-7 como lenguaje de programación del sistema para Unix
-
- operadores añadidos ++ , -- , asignación compuesta, permaneció como un lenguaje sin tipos como BCPL
- 1971: NB ("nuevo B") creado al portar B a PDP-11
-
- tipos ( int , char , arreglos y punteros), conversión de arreglo a puntero, compilación a código máquina
- 1972: El lenguaje renombrado a C
-
- struct , operadores && y || , preprocesador, E/S portable
- 1973: Unix reescrito en C
-
- unsigned , long , union , enumeraciones, mayor seguridad de tipos
- 1978: El Lenguaje de Programación C, 1ª edición
C Estándar
- 1983: Comité X3J11 establecido por ANSI
- 1988: The C Programming Language, 2ª edición
- 1989: C89 , estándar ANSI C publicado
- codificó prácticas existentes
- nuevas características: volatile , enum , signed , void , locales
- De C++: const , prototipos de función
- 1990: C90 , el estándar ANSI C aceptado como ISO/IEC 9899:1990
- 1994: Corrección técnica 1 (ISO/IEC 9899:1990/Cor.1:1994)
- 1995: C95 (ISO/IEC 9899:1990/Amd.1:1995) ( tienda en línea )
- soporte ampliamente expandido para caracteres anchos y multibyte ( <wctype.h> , <wchar.h> , adiciones y cambios a E/S de flujos, etc.)
- dígrafos, <iso646.h> ,
- 1996: Enmienda técnica 2 (ISO/IEC 9899:1990/Cor.2:1996)
- 1999: C99 (ISO/IEC 9899:1999)
-
nuevas características:
bool
,
long
long
,
<stdint.h>
,
<inttypes.h>
,
restrict
, literales compuestos, arreglos de longitud variable, miembros de arreglo flexibles, inicializadores designados,
<fenv.h>
, macros variádicas, números complejos,
__func__
, formato hexadecimal de punto flotante (
%
a
), formato monetario en
lconv
,
isblank
, concatenación de literales de cadena estrechos y anchos, coma final en enumeraciones, argumentos vacíos en macros tipo función,
STDC_
*
pragmas,
va_copy
, retorno nulo de
tmpnam
, puntero nulo en
setvbuf
,
hhyllespecificadores de longitud en printf , snprintf , _Exit , <tgmath.h> , especificadores strftime estilo POSIX - de C++: inline , mezcla de declaraciones y código, declaraciones en la cláusula de inicialización del bucle for, // comentarios, nombres de caracteres universales en código fuente
- eliminadas funciones implícitas e int implícito
- 2001: Enmienda técnica 1 (ISO/IEC 9899:1999/Cor.1:2001)
- 2004: Enmienda técnica 2 (ISO/IEC 9899:1999/Cor.2:2004)
- 2004: Informe técnico Unicode (ISO/IEC TR 19769:2004) ( Tienda ISO ) ( N1040 borrador del 7 de noviembre de 2003)
- 2007: Enmienda técnica 3 (ISO/IEC 9899:1999/Cor.3:2007) ( N1256 borrador del 7 de septiembre de 2007)
-
- obsoleto gets
- 2007: TR de interfaces de verificación de límites (ISO/IEC TR 24731-1:2007) ( Tienda ISO ) ( N1225 borrador del 28 de marzo de 2007)
- 2008: TR para sistemas embebidos (ISO/IEC TR 18037:2008) ( Tienda ISO ) ( N1021 borrador del 24 de septiembre de 2003)
- 2009: TR de coma flotante decimal (ISO/IEC TR 24732:2009) ( Tienda ISO ) ( N1241 borrador del 5 de julio de 2007)
- 2009: TR de funciones matemáticas especiales (ISO/IEC TR 24747:2009) ( Tienda ISO ) ( N1182 borrador del 2 de agosto de 2006)
- 2010: TR de funciones de asignación dinámica (ISO/IEC TR 24731-2:2010) ( Tienda ISO ) ( N1388 borrador del 1 de junio de 2009)
- 2011: C11 (ISO/IEC 9899:2011) ( Tienda ISO ) ( Tienda ANSI ) ( N1570 borrador del 12 de abril de 2011)
- modelo de memoria consciente de hilos, <stdatomic.h> , <threads.h> , funciones genéricas de tipo, alignas / alignof , noreturn , static_assert , extensiones de analizabilidad, extensiones a tipos complejos e imaginarios, estructuras y uniones anónimas, modo de apertura exclusivo de archivos, quick_exit
- eliminada gets
- del TR de interfaces con verificación de límites: interfaces con verificación de límites,
- del TR de Unicode: char16_t , char32_t , y <uchar.h>
- 2012: Corregimiento técnico 1 (ISO/IEC 9899:2011/Cor 1:2012) ( Tienda ISO )
-
- Corrige DR 411
- 2013: Especificación Técnica de Reglas de Codificación Segura (ISO/IEC TS 17961:2013) ( Tienda ISO ) ( N1718 30 de mayo de 2013)
- 2014: Especificación Técnica FP parte 1: Aritmética binaria de punto flotante (ISO/IEC TS 18661-1:2014) ( Tienda ISO ) ( N1778 borrador 2013)
- proporciona cambios a C11 (principalmente al Anexo F) que cubren todos los requisitos básicos y algunas recomendaciones de IEC 60559:2011 (C11 se basó en IEC 60559:1989)
- 2015: FP TS parte 2: Decimal floating-point arithmetic (ISO/IEC TS 18661-2:2015) ( Tienda ISO ) ( N1912 borrador 2015)
- proporciona cambios a C11 para admitir todos los requisitos, más algunas recomendaciones básicas, de IEC 60559:2011 para aritmética de punto flotante decimal. Esto reemplaza a ISO/IEC TR 24732:2009.
- 2015: FP TS parte 3: Tipos extendidos e intercambiables (ISO/IEC TS 18661-3:2015) ( Tienda ISO ) ( N1945 borrador 2015)
- proporciona cambios a C11 para admitir las recomendaciones de IEC 60559:2011 para formatos de punto flotante extendidos y los formatos de intercambio, tanto aritméticos como no aritméticos.
- 2015: FP TS parte 4: Funciones suplementarias (ISO/IEC TS 18661-4:2015) ( Tienda ISO ) ( N1950 borrador 2015)
- proporciona cambios a C11 para soportar todas las operaciones matemáticas recomendadas por IEC 60559:2011, incluyendo trigonometría en unidades π, raíz cuadrada inversa, interés compuesto, etc.
- 2016: FP TS parte 5: Atributos suplementarios (ISO/IEC TS 18661-5:2016) ( Tienda ISO ) ( N2004 borrador 2016)
- proporciona cambios a C11 para admitir todos los atributos suplementarios (modelo de evaluación, manejo de excepciones, reproducibilidad, etc) recomendados por IEC 60559:2011
- 2018: C17 (ISO/IEC 9899:2018) ( Tienda ISO ) ( Borrador final )
| Informes de Defectos corregidos en C17 (54 defectos) |
|---|
|
- 2023 C23 (ISO/IEC 9899:2024). C23 es la revisión actual del estándar C.
| Informes de Defectos corregidos en C23 (? defectos) |
|---|
Desarrollo futuro
- TS de Paralelismo (Borrador N2017 2016-03-10)
- TS de Memoria Transaccional (Borrador N1961 2015-09-23)
- C (Borrador más reciente n3550 2025-05-04)
- Lista de problemas a los que no se les concedió el estatus DR: ( N2556 2020-08-02)
- Artículo Principal: C29 ?
- Próxima revisión principal del estándar del lenguaje C
Véase también
|
Documentación de C++
para
Historia de C++
|
Enlaces externos
| 1. | El Desarrollo del Lenguaje C por Dennis M. Ritchie |
| 2. | Fundamentos del estándar C99 |