Mari

Introducción al lenguaje C

Introducción

En este documento se introducen los elementos principales de la programación en lenguaje C. Se cubre gran parte de las características del lenguaje, así como algunas funciones de las bibliotecas estándares.

1. Marco histórico

Creado entre 1970 y 1972 por Brian Kernighan y Dennis Ritchie para escribir el código del sistema operativo UNIX.Desde su nacimiento se fue implantando como el lenguaje de programación de sistemas favorito para muchos programadores, sobre todo por ser un lenguaje que conjugaba la abstracción de los lenguajes de alto nivel con la eficiencia del lenguaje máquina. Los programadores de sistemas que trabajaban sobre MS-DOS y Macintosh también utilizaban C, con lo cual la práctica totalidad de aplicaciones desistema para microordenadores y para sistemas UNIX está escrita en este lenguaje.

A mediados de los ochenta el C se convierte en un estándar internacional ISO. Este estándar incluye tanto la definición del lenguaje como una enorme biblioteca de funciones para entrada/salida, tratamiento de textos, matemáticas, etc.

A mediados de los ochenta se crea el C++, extensión de C orientada a objetos. ElC++ se convierte en estándar ISO en 1998. En el momento actual, el lenguaje C no va a modificarse más. Será el C++ el que incorporará nuevos cambios.

1.2 Características

• Orientado a la programación de sistemas
• Es altamente transportable
• Es muy flexible
• Genera código muy eficiente
• Es muy expresivo (se pueden realizar muchas funciones escribiendo pocas líneasde código)
• Es muy poco modular
• Hace pocas comprobaciones
• Da poca disciplina al programador
• Es difícil leer código escrito por otras personas

1.3 Fases de desarrollo de un programa en C

El preprocesador

Transforma el programa fuente, convirtiéndolo en otro archivo fuente “predigerido”. Las transformaciones incluyen:

• Eliminar los comentarios.
•Incluir en el fuente el contenido de los ficheros declarados con#include (a estos ficheros se les suele llamarcabeceras)
• Sustituir en el fuente las macros declaradas con #define (ej. #define CIEN 100)

El compilador

Convierte el fuente entregado por el preprocesador en un archivo en lenguaje máquina: fichero objeto.

Algunos compiladores pasan por una fase intermedia en lenguajeensamblador.

El enlazador

Un fichero objeto es código máquina, pero no se puede ejecutar, porque le falta código que se encuentra en otros archivos binarios.

El enlazador genera el ejecutable binario, a partir del contenido de los ficheros objetos y de las bibliotecas.

Las bibliotecas contienen el código de funciones precompiladas, a las que el archivo fuente llama (porejemplo printf).

1.4 Ejemplo de programa en C
#include
main()
{
/* Escribe un mensaje */

printf (“Hola, mundo
”);
}
1.5 Bibliotecas estándares
El lenguaje C es muy simple. Carece de tipos y servicios que forman parte de otros lenguajes. No tiene tipo booleano, ni manejo de cadenas, ni manejo de memoria dinámica.
No obstante, el estándar de C define un conjunto de bibliotecas de funciones, quenecesariamente vienen con todo entorno de compilación de C y que satisfacen estos servicios elementales.
Las interfaces de estos servicios vienen definidas en unos ficheros cabeceras ( header files ). El nombre de estos ficheros suele terminar en.h
Algunos de los servicios proporcionados por las bibliotecas estándares son:
• entrada y salida de datos (stdio.h)
• manejo de cadenas(string.h)
• memoria dinámica (stdlib.h)
• rutinas matemáticas (math.h)

1.6 Componentes del lenguaje C

Sigue el paradigma de la programación estructurada:

Algoritmos+estructuras de datos = programas.

Estructuras de datos

• literales
• tipos básicos (todos numéricos)
• tipos enumerados
• tipos estructurados (struct, union)
• punteros y vectores…