¿Qué es el lenguaje de programación
C?
C es un lenguaje de programación de
propósito general que ofrece economía sintáctica, control de
flujo y estructuras sencillas y un buen conjunto de operadores. No es
un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no
está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje
potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente.
En poco tiempo, un programador puede utilizar la totalidad del lenguaje.
Este
lenguaje ha sido estrechamente ligado al sistema operativo UNIX,
puesto que fueron desarrollados conjuntamente. Sin embargo, este lenguaje no
está ligado ningún sistema operativo ni a ninguna máquina concreta. Se le
suele llamar lenguaje de programación de sistemas debido a su utilidad para
escribir compiladores y sistemas operativos, aunque de igual forma se
puede desarrollar cualquier tipo de aplicación.
¿De
dónde proviene la base de C?
La base
del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken
Thompson en 1970 para el primer sistema UNIX en un DEC PDP-7. Estos son
lenguajes sin tipos, al contrario que el C que proporciona varios tipos de
datos.
Tipos de datos
Los
tipos que ofrece son:
Caracteres,
números enteros y en coma flotante, de varios tamaños. Además se pueden crear
tipos derivados mediante la utilización de punteros, vectores, registros y
uniones.
Primer compilador de C
El
primer compilador de C fue escrito por Dennis
Ritchie para un DEC PDP-11 y escribió el propio sistema operativo en C.
¿Cómo
trabaja el lenguaje C?
C
trabaja con tipos de datos que son directamente tratables por el hardware de
la mayoría de computadoras actuales, como son los caracteres, números
y direcciones. Estos tipos de datos pueden ser manipulados por las operaciones aritméticas
que proporcionan las computadoras. No proporciona mecanismos para tratar tipos
de datos que no sean los básicos, debiendo ser el programador el que los
desarrolle. Esto permite que el código generado sea muy eficiente y
de ahí el éxito que ha tenido como lenguaje de desarrollo de
sistemas. No proporciona otros mecanismos de almacenamiento de datos
que no sea el estático y no proporciona mecanismos de entrada ni salida. Ello
permite que el lenguaje sea reducido y los compiladores de fácil
implementación en distintos sistemas. Por contra, estas carencias se compensan
mediante la inclusión de funciones de librería para realizar todas
estas tareas, que normalmente dependen del sistema operativo.