C es un lenguaje de programaciòn creado en 1972
por Dennis M. Ritchie en los Laboratorios Bell como evolución del
anterior lenguaje B, a su vez basado en BCPL. Al igual que B, es un
lenguaje orientado a la implementación de Sistemas Operativos,
concretamente Unix. C es apreciado por la eficiencia del código que
produce y es el lenguaje de programación más popular para crear software
de sistemas, aunque también se utiliza para crear aplicaciones.
Se trata de un lenguaje débilmente tipificado de medio nivel pero
con muchas características de bajo nivel. Dispone de las estructuras
típicas de los lenguajes de alto nivel pero, a su vez, dispone de
construcciones del lenguaje que permiten un control a muy bajo nivel.
Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan
mezclar código en ensamblador con código C o acceder directamente a
memoria o dispositivos periféricos.
La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989.
El lenguaje que define este estándar fue conocido vulgarmente como ANSI
C. Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC
9899:1990).
La adopción de este estándar es muy amplia por lo que, si los programas
creados lo siguen, el código es portátil entre plataformas y/o
arquitecturas.
El desarrollo inicial de C se llevó a cabo en los Laboratorios Bell
de AT&T entre 1969 y 1973; según Ritchie, el periodo más creativo
tuvo lugar en 1972. Se le dio el nombre "C" porque muchas de sus
características fueron tomadas de un lenguaje anterior llamado "B".
Hay muchas leyendas acerca del origen de C y el sistema operativo
con el que está íntimamente relacionado, Unix. Algunas de ellas son:
El desarrollo de C fue el resultado del deseo de los
programadores de jugar con Space Travel. Habían estado jugando en el
mainframe de su compañía, pero debido a su poca capacidad de proceso y
al tener que soportar 100 usuarios, Thompson y Ritchie no tenían
suficiente control sobre la nave para evitar colisiones con los
asteroides.
Por ese motivo decidieron portar el juego a un PDP-7 de la
oficina que no se utilizaba; pero esa máquina no tenía sistema
operativo, así que decidieron escribir uno. Finalmente decidieron portar
el sistema operativo del PDP-11 que había en su oficina, pero era muy
costoso, pues todo el código estaba escrito en lenguaje ensamblador.
Entonces decidieron usar un lenguaje de alto nivel y portátil
para que el sistema operativo se pudiera portar fácilmente de un
ordenador a otro. Consideraron usar B, pero carecía de las
funcionalidades necesarias para aprovechar algunas características
avanzadas del PDP-11. Entonces empezaron a crear un nuevo lenguaje, C.
La justificación para obtener el ordenador original que se usó
para desarrollar Unix fue crear un sistema que automatizase el archivo
de patentes. La versión original de Unix se desarrolló en lenguaje
ensamblador. Más tarde, el lenguaje C se desarrolló para poder
reescribir el sistema operativo.
En 1973,
el lenguaje C se había vuelto tan potente que la mayor parte del kernel
Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20, fue
reescrita en C. Éste fue uno de los primeros núcleos de sistema
operativo implementados en un lenguaje distinto al ensamblador. (Algunos
casos anteriores son el sistema Multics, escrito en PL/I, y Master
Control Program para el B5000 de Burroughs, escrito en ALGOL en 1961).
No hay comentarios:
Publicar un comentario