El lenguaje C fue diseñado en los años sesenta por Dennis Ritchie, de los Laboratorios Bell. El propósito era ser el lenguaje del sistema operativo UNIX.
Surgió a partir de dos lenguajes de programación de sistemas, BCPL y B.
En 1978 Kernighan y Ritchie publican su descripción en el libro "The C Programming Language", versión que es llamada hoy en día 'K&R C'.
A mediados de los ochenta ya había en el mercado numerosos compiladores C, y muchas aplicaciones habían sido reescritas a él para aprovechar sus ventajas.
Durante este período de tiempo numerosos fabricantes introducen mejoras en el lenguaje, las cuales son recogidas por un comité de estandarización ANSI y establecen las especificaciones de lo que se conoce hoy en día como 'ANSI C'.
Características
El C se encuentra en la jerarquía de lenguajes en un nivel intermedio entre Pascal y el Ensamblador. Pretende ser un lenguaje de alto nivel con la versatilidad del bajo nivel.
Se diseñó junto con el sistema operativo UNIX y está muy orientado a trabajar en su entorno.
En su desarrollo se siguieron una serie de líneas generales tales como:
El compilador debe ser lo más pequeño y eficiente posible. Pocas palabras reservadas, esto es, un conjunto reducido de sentencias. No existe anidamiento de procedimientos.
La entrada/salida no se considera parte del lenguaje en sí, sino que se suministra a través de funciones de librería. La misma política se sigue con cualquier otro tipo complejo de instrucciones.
Para escribir un programa se debe poder escribir poco texto. Para lograr esto se reduce el número de palabras claves.
Con ello se llegó a un compilador con un poderoso juego de instrucciones, que permite aumentar la productividad/día de los programadores.
A pesar de ello el C es un lenguaje rápido de aprender, que deriva en compiladores sencillos de diseñar, robustos, y que generan objetos pequeños y eficientes.
Una de las características más apreciadas de C es su gran portabilidad, gracias a que deja en manos de librerías las funciones dependientes de la máquina, ¡y todo ello sin restringir el acceso a dicha máquina!
Estas y otras características lo hacen adecuado para la programación en areas tales como:
- programación de sistemas
- estructuras de datos y sistemas de bases de datos
- aplicaciones científicas
- software gráfico
- análisis numérico
Bibliografía :
Computer Science : An Overview - James . Glenn; Paperback , Prentice Hall , New Jersey , 1997.
101 Computer Projects for Libraries (101 Micro Series) Patrick R. Dewey, Mc Graw Hill , USA , 1999