La historia del desarrollo del lenguaje c.
El lenguaje C se llama C porque el lenguaje C se deriva del lenguaje B inventado por Ken Thompson, y el lenguaje B se deriva del lenguaje BCPL.
En 1967, Martin Richards de la Universidad de Cambridge simplificó el lenguaje CPL, dando como resultado el lenguaje BCPL (Basic Combined Programming Language).
En la década de 1960, Ken Thompson, investigador del Laboratorio Bell de AT&T en Estados Unidos, no tenía nada que hacer y le picaban las manos. Quería jugar a un juego que había inventado para simular electrones que viajaban en el planeta. Juego del sistema solar: viajes espaciales. A espaldas de su jefe, encontró una máquina inactiva: PDP-7. Pero esta máquina no tenía sistema operativo y los juegos tenían que utilizar algunas funciones del sistema operativo, por lo que se propuso desarrollar un sistema operativo para el PDP-7. Más tarde, este sistema operativo recibió el nombre de UNIX.
En 1970, Ken Thompson de los Laboratorios Bell de Estados Unidos, basándose en el lenguaje BCPL, diseñó el lenguaje B (la primera letra de BCPL) que era muy simple y muy cercano al hardware. Y escribió el primer sistema operativo UNIX en lenguaje B.
En 1971, Dennis M. Ritchie, a quien también le encantaban los viajes espaciales, se unió al proyecto de desarrollo de Thompson y cooperó en el desarrollo de UNIX para poder jugar a juegos desde el principio. Su trabajo principal es transformar el lenguaje B para hacerlo más maduro.
En 1972, D.M. Ritchie de Bell Labs en Estados Unidos finalmente diseñó un nuevo lenguaje basado en el lenguaje B. Tomó la segunda letra de BCPL como nombre de este lenguaje.
A principios de 1973, se completó el cuerpo principal del lenguaje C. Thompson y Ritchie estaban ansiosos por empezar a usarlo para reescribir UNIX por completo. En ese momento, el placer de programar les hizo olvidarse por completo de los viajes espaciales y dedicarse de todo corazón al desarrollo de los lenguajes UNIX y C. Con el desarrollo de UNIX, el propio lenguaje C mejora constantemente. Hasta el día de hoy, varias versiones de kernels UNIX y herramientas periféricas todavía utilizan el lenguaje C como principal lenguaje de desarrollo, y muchos de ellos heredan el código de Thompson y Ritchie.
Durante el desarrollo, también consideraron portar UNIX a otros tipos de computadoras. Aquí se revela la poderosa portabilidad del lenguaje C. Ni el lenguaje de máquina ni el lenguaje ensamblador son portátiles y los programas desarrollados para x86 no pueden ejecutarse en máquinas como Alpha, SPARC y ARM. Los programas en lenguaje C se pueden usar en procesadores de cualquier arquitectura, siempre que el procesador de esa arquitectura tenga un compilador y una biblioteca en lenguaje C correspondiente, y luego el código fuente C se pueda compilar y conectar en un archivo binario de destino antes de ejecutarlo.
En 1977, Dennis M. Ritchie publicó un texto compilado en lenguaje C "Compilador de lenguaje C portátil" que no depende de un sistema de máquina específico.
El lenguaje C continuó desarrollándose. En 1982, muchas personas conocedoras y el Instituto Nacional Estadounidense de Estándares decidieron establecer el Comité de Estándares C para establecer un estándar para el lenguaje C con el fin de garantizar el desarrollo saludable del lenguaje C. idioma. El comité está compuesto por proveedores de hardware, compiladores y otros productores de herramientas de software, diseñadores de software, consultores, académicos, autores de lenguaje C y programadores de aplicaciones. En 1989, ANSI lanzó el primer estándar completo de lenguaje C: ANSI X3.159-1989, denominado "C89", pero la gente también está acostumbrada a llamarlo "ANSI C". C89 fue adoptado literalmente por la Organización Internacional de Normalización (ISO) en 1990. El nombre oficial dado por ISO es: ISO/IEC 9899, por lo que ISO/IEC9899: 1990 a menudo se denomina "C90".
En 1999, después de realizar algunas correcciones y mejoras necesarias, ISO lanzó un nuevo estándar de lenguaje C, denominado ISO/IEC 9899:1999, denominado "C99". El 8 de diciembre de 2011, ISO lanzó oficialmente un nuevo estándar llamado ISO/IEC9899: 2011, denominado "C11".