El lenguaje C es fruto de un
lenguaje de programación anterior, el lenguaje B, desarrollado por Ken
Thompson, en los Laboratorios Bell en 1970, con la idea de recodificar el
sistema operativo UNIX que, hasta esa fecha, se programaba directamente en
ensamblador, con el inconveniente de estar vinculado a máquinas concretas (según
el juego de instrucciones de cada máquina). Por tanto, se hacía necesario un
lenguaje que permitiese al programador abstraerse de la capa hardware y
conseguir una mayor portabilidad del código, algo que se realizó en B
(basándose en el BCPL de Martin Richard de 1967).
El lenguaje C es fruto de un
lenguaje de programación anterior, el lenguaje B, desarrollado por Ken
Thompson, en los Laboratorios Bell en 1970, con la idea de recodificar el
sistema operativo UNIX que, hasta esa fecha, se programaba directamente en
ensamblador, con el inconveniente de estar vinculado a máquinas concretas
(según el juego de instrucciones de cada máquina). Por tanto, se hacía
necesario un lenguaje que permitiese al programador abstraerse de la capa
hardware y conseguir una mayor portabilidad del código, algo que se realizó en
B (basándose en el BCPL de Martin Richard de 1967).
Poco más tarde, también en los
Laboratorios Bell, Dennis Ritchie se pone a trabajar en el diseño de un nuevo
lenguaje de programación basado en el lenguaje B de Ken Thompson y al que
aportó tipos y estructuras de datos que consiguiesen clarificar la programación
y obtener un lenguaje mucho más eficiente, así nació el lenguaje de
programación C. Ritchie diseñó, desde 1970 a 1972 junto a Brian Kernighan, un
lenguaje que permitía realizar una programación estructurada en la que se
podían economizar las expresiones a usar y con el que los desarrolladores
podrían contar con un buen conjunto de operadores y tipos de datos para
programar tanto en alto como en bajo nivel de manera simultánea. Ente sus
características:
Núcleo de lenguaje simple que
incluye funciones matemáticas y de manejo de archivos proporcionadas por
bibliotecas
- Lenguaje flexible que permitía programar de
manera estructurada y no estructurada
- Inclusión de un sistema de tipos que impedía la
realización de operaciones sin sentido
- Acceso a memoria de bajo nivel mediante el uso
de punteros
- Conjunto reducido de palabras reservadas
- Paso de parámetros a funciones por valor
- Tipos de datos agregados (struct) que permitían
combinar, bajo un mismo tipo, datos de tipos distintos y manejarlos como uno
solo.
· El lenguaje C ofrecía diversos tipos de datos:
“CHAR” (carácter), “INT” (enteros), “FLOAT” (números reales en precisión
simple), y “DOUBLE” (números reales en precisión doble) a los que
posteriormente se añadieron los tipos “SHORT” (números enteros de tamaño menor
a un INT), “LONG” (números enteros de tamaño mayor a un INT), “UNSIGNED”
(Enteros sin signo), y “ENUMERACIONES” que junto a las estructuras, las uniones
y las tablas y matrices componían un variado juego de tipos de datos con los
que abordar múltiples problemas.
¿Y por qué trabajaron en un nuevo
lenguaje de programaciòn? Realmente la motivación no está clara y se barajan
dos hipótesis. Por un lado, se dice que ambos creadores querían jugar al juego
Space Travel en uno de los mainframes de la compañía pero, debido a la carga de
este sistema, decidieron llevarse el juego a un PDP-7 que no se utilizaba
porque no tenía sistema operativo así que decidieron llevarse el del PDP-11 al
PDP-7, algo que no se podía hacer al estar escrito en ensamblador. Pensando en
poder llevarlo, y tener agilidad en la tarea, se cree que arrancaron el
proyecto del lenguaje C.
La otra causa apunta a que se
buscaba crear un sistema que automatizase el archivo de patentes de los
Laboratorios Bell y, dado que la versión original de Unix se desarrolló en
ensamblador, se usó C para rescribir el sistema operativo. De hecho, en 1973, C
era tan potente que la mayor parte del núcleo de Unix estaba ya escrito en C.
En 1978 Kernighan y Ritchie
publican la descripción del lenguaje C en el libro The C Programming Language,
un libro de cabecera que describe todas las posibilidades de este nuevo
lenguaje que y que aún se utiliza como manual de referencia.
El lenguaje C se hizo muy popular
en los años 80 puesto que comenzó a desplazar a BASIC, los compiladores se
hicieron muy populares y, además, de empezarse a usar en los IBM PC. En
paralelo, Bjarne Stroustrup (que también trabajaba en los Laboratorios Bell)
desarrolla C++, complementando C con clases y funciones virtuales, tipos
genéricos y expresiones de ADA y un motor de objetos que permitía combinar la
programación imperativa de C con la programación orientada a objetos.
En 1983, el Instituto Nacional
Estadounidense de Estándares (ANSI) organizó un comité, X3j11, para establecer
una especificación estándar de C que, tras un proceso largo, completó el
estándar en 1989 (ANSI X3.159-1989), el C89. En 1990, la Organización
Internacional para la Estandarización (ISO) tomó el C89 en el estándar ISO/IEC
9899:1990, conocido por C90. El lenguaje C permaneció estable, mientras que C++
siguió evolucionando, hasta que en 1999 volvió a revisarse con la ISO
9899:1999.
El Lenguaje C se ha utilizado
mucho para para la programación en sistemas UNIX aunque también se ha utilizado
en el desarrollo de sistemas operativos como Windows o GNU/Linux y en el
desarrollo de aplicaciones de escritorio como GIMP. Tampoco es raro verlo en
sistemas empotrados (control de procesos industriales, ascensores, sistemas de
monitorización, etc) o como base de kits de desarrollo de microcontroladores (abstrayendo al usuario de la programación en
ensamblador). Además, como decía al inicio, es un lenguaje muy especial dentro del
mundo de la ingeniería puesto que se sigue enseñando en los primeros cursos de
estos estudios y nunca ha dejado de ser utilizado.
Fuente
Fuente
No hay comentarios:
Publicar un comentario