C

Línea de tiempo del lenguaje C Alan Cisneros 231108

  • Versión Original de la que se Desprende

    Versión Original de la que se Desprende
    • El lenguaje C fue desarrollado a partir del lenguaje B, el cual a su vez fue una simplificación del lenguaje BCPL (Basic Combined Programming Language).
    • El lenguaje B fue creado por Ken Thompson en 1969 en Bell Labs.
  • Period: to

    Creador o Grupo de Creadores

    • C fue creado por Dennis Ritchie entre 1969 y 1973 en Bell Labs, mientras trabajaba junto a Ken Thompson en el desarrollo del sistema operativo Unix.
      • La primera versión del lenguaje C se introdujo en 1972.
    Objetivo: El propósito principal de C era proporcionar una herramienta de programación más potente para el desarrollo del sistema operativo Unix.
  • Primera Versión de C

    Primera Versión de C
    Características: Esta versión inicial de C incluía tipos básicos de datos, estructuras de control (if, while, etc.), y funciones. Fue principalmente utilizado para reescribir el sistema operativo Unix en C. Influencia: El éxito de Unix y su portabilidad contribuyó enormemente a la popularidad inicial de C.
  • Publicación de "The C Programming Language" (K&R C)

    Publicación de "The C Programming Language" (K&R C)
    Autores: Brian Kernighan y Dennis Ritchie. Impacto: Este libro se convirtió en el estándar de facto para el lenguaje y es conocido como K&R C. Novedades: Definió una sintaxis más estructurada y formalizó muchas características que se convirtieron en el estándar no oficial de C.
  • C++

    C++
    El lenguaje C++ evolucionó a partir del lenguaje C y se desarrolló principalmente en la década de 1980
  • Creación del Lenguaje C++

    Creación del Lenguaje C++
    Creador: Bjarne Stroustrup. Objetivo: C++ fue desarrollado en Bell Labs como una extensión de C para incluir características de programación orientada a objetos (OOP), como clases, herencia y polimorfismo. Características Iniciales: Introducción de clases, operadores sobrecargados, y mecanismos de herencia.
  • Formación del Comité ANSI C (X3J11)

    Formación del Comité ANSI C (X3J11)
    Objetivo: Desarrollar un estándar para C. Se formó un comité bajo el American National Standards Institute (ANSI) para formalizar el lenguaje y crear un estándar consistente y aceptado universalmente.
  • Publicación de la Primera Edición del Libro de C++

    Publicación de la Primera Edición del Libro de C++
    Libro: "The C++ Programming Language" por Bjarne Stroustrup. Contenido: Este libro describe las características básicas del nuevo lenguaje y establece una base para el entendimiento y la adopción de C++.
  • Estándar ANSI C (C89)

    Estándar ANSI C (C89)
    Nombre Formal: ANSI X3.159-1989, también conocido como C89. Nuevas Características:
    Inclusión de prototipos de funciones, que mejoraron el manejo de funciones y argumentos. Nuevas librerías estándar como stdlib.h y stdarg.h.
    Reglas más estrictas para tipos y conversión de tipos. Definición precisa de operadores y sus precedencias. Impacto: Creó un estándar que mejoró la portabilidad del código C entre diferentes sistemas y compiladores.
  • Primera Edición del Estándar de C++

    Primera Edición del Estándar de C++
    Nombre: C++ 2.0. Nuevas Características:
    Herencia Múltiple: Permite que una clase herede de más de una clase base. Funciones Virtuales: Introducción de funciones virtuales para permitir el enlace dinámico de métodos y el polimorfismo en tiempo de ejecución. Impacto: La introducción de estas características amplió significativamente el poder y la flexibilidad del lenguaje C++.
  • Estándar ISO C (C90)

    Estándar ISO C (C90)
    Nombre Formal: ISO/IEC 9899:1990, también conocido como C90. Revisión: Esta versión fue adoptada por la International Organization for Standardization (ISO) con pocas modificaciones, alineándose con ANSI C. Importancia: Sirvió para la unificación global del lenguaje.
  • Estándar C++ (C++98)

    Estándar C++ (C++98)
    Nombre Formal: ISO/IEC 14882:1998. Nuevas Características:
    Plantillas (Templates): Permiten la creación de código genérico y la programación en tipos. Espacios de Nombres (Namespaces): Ayudan a evitar conflictos de nombres en programas grandes. Biblioteca Estándar: Introducción de la Biblioteca Estándar de Plantillas (STL) con contenedores, algoritmos y funciones de utilidades. Impacto: Formalizó las características y bibliotecas fundamentales de C++.
  • Estándar C99

    Estándar C99
    Nombre Formal: ISO/IEC 9899:1999, conocido como C99.
    Nuevas Características:
    Comentarios de línea única (//) similares a los de C++.
    Tipos de datos nuevos como long long int para números enteros de mayor tamaño.
    Variables con longitud de datos específica (stdint.h). Declaraciones de variables pueden ocurrir en cualquier lugar dentro de un bloque de código. Impacto: Aumentó la capacidad del lenguaje para programación científica y técnica.
  • Revisión del Estándar C++ (C++03)

    Nombre Formal: ISO/IEC 14882:2003. Revisión Menor: Corrige errores y aclaraciones del estándar C++98 sin añadir nuevas características significativas.
  • Estándar C11

    Nombre Formal: ISO/IEC 9899:2011, conocido como C11.
    Nuevas Características:
    Multithreading: Nuevas librerías y estándares para programación multihilo (<threads.h>).
    Control mejorado de alineación de memoria (<stdalign.h>).
    Funciones anónimas: Macro _Generic para sobrecarga de funciones.
    Librerías para manejo de Unicode (<uchar.h>).
    Aserciones estáticas: static_assert para comprobaciones en tiempo de compilación.
    Impacto: Introdujo soporte para programación moderna y mejoró la seguridad.
  • Estándar C++11

    Estándar C++11
    Nombre Formal: ISO/IEC 14882:2011.
    Nuevas Características:
    Auto: Deducción automática de tipos para variables. Smart Pointers: Punteros inteligentes (std::unique_ptr, std::shared_ptr) para manejo seguro de memoria. Rangos (Ranges): Nuevas funciones para trabajar con secuencias de datos. Multihilo: Soporte mejorado para programación multihilo (std::thread). Impacto: Introdujo una serie de mejoras significativas que aumentaron la productividad y la seguridad del código en C++.
  • Estándar C++14

    Estándar C++14
    Nombre Formal: ISO/IEC 14882:2014.
    Nuevas Características:
    Mejoras en el manejo de plantillas: Nuevas características para simplificar la programación con plantillas. Generalización de Lambda Expressions: Ampliación de las capacidades de las expresiones lambda. Literal de usuario: Permite la creación de literales personalizados para tipos de datos.
    Impacto: Pequeñas mejoras y correcciones respecto a C++11.
  • Estándar C++17

    Estándar C++17
    Nombre Formal: ISO/IEC 14882:2017. Nuevas Características:
    Estructuras de Datos en la Biblioteca Estándar: Nuevos algoritmos y estructuras de datos. If constexpr: Permite la evaluación condicional en tiempo de compilación. Inicialización de Variables Estructurales: Mejora la sintaxis y la inicialización de estructuras. Cadena de caracteres mejorada: Mejoras en el manejo de cadenas y literales. Impacto: Introdujo mejoras de rendimiento y usabilidad en el lenguaje.
  • Estándar C17 (C18)

    Nombre Formal: ISO/IEC 9899:2018, conocido como C17 o C18.
    Nuevas Características: Principalmente una versión de mantenimiento de C11, que corrige errores menores y hace aclaraciones en el estándar sin añadir nuevas características significativas.
    Impacto: Proporciona una base más estable y refinada para la implementación del lenguaje.
  • Estándar C++20

    Estándar C++20
    Nombre Formal: ISO/IEC 14882:2020.
    Nuevas Características: Módulos: Nuevas características para mejorar la modularidad del código y la compilación.
    Corutinas: Facilitan la escritura de código asíncrono. Rangos y vistas: Mejoras en la manipulación de secuencias de datos. Operadores de tres vías (<=>): Operador para la comparación generalizada. Impacto: Añadió características avanzadas que mejoran la programación genérica y la eficiencia del código.
  • Estándar C23

    Estándar C23
    Nombre Formal: ISO/IEC 9899:2023, conocido como C23. Nuevas Características:
    Mejoras menores en la sintaxis y corrección de algunos problemas conocidos. Nuevas funciones de la biblioteca estándar, mejoras en las herramientas de diagnóstico y extensiones para la programación en paralelo. Impacto: Mejora la seguridad, la eficiencia y la modernidad del lenguaje mientras mantiene la compatibilidad hacia atrás con versiones anteriores.
  • Estándar C++23

    Estándar C++23
    Nombre Formal: ISO/IEC 14882:2023. Nuevas Características:
    Mejoras en el manejo de módulos y Corutinas. Más características para simplificar la programación moderna: nuevas bibliotecas y mejoras en las existentes. Incrementos en las capacidades de reflexión y metaprogramación. Impacto: Continúa la evolución del lenguaje con mejoras en la facilidad de uso y el rendimiento.