You are on page 1of 8

Introduccin El lenguaje C se conoce como un lenguaje de medio nivel, pues podramos situarlo entre los lenguajes de bajo nivel

o de mquina (ensamblador) y los de alto nivel como el PASCAL. 1.1 Marco histrico Creado entre 1970 y 1972 por Brian Kernighan y Dennis Ritchie para escribir el cdigo del sistema operativo UNIX. Desde su nacimiento se fue implantando como el lenguaje de programacin de sistemas favorito para muchos programadores, sobre todo por ser un lenguaje que conjugaba la abstraccin de los lenguajes de alto nivel con la eficiencia del lenguaje mquina. Los programadores de sistemas que trabajaban sobre MS-DOS y Macintosh tambin utilizaban C, con lo cual la prctica totalidad de aplicaciones de sistema para microordenadores y para sistemas UNIX est escrita en este lenguaje. A mediados de los ochenta el C se convierte en un estndar internacional ISO. Este estndar incluye tanto la definicin del lenguaje como una enorme biblioteca de funciones para entrada/salida, tratamiento de textos, matemticas, etc. A mediados de los ochenta se crea el C++, extensin de C orientada a objetos. El C++ se convierte en estndar ISO en 1998. En el momento actual, el lenguaje C no va a modificarse ms. Ser el C++ el que incorporar nuevos cambios. El lenguaje de programacin C fue inventado por Ken Thompson y Dennis M. Ritchie. Fue una evolucin del anterior lenguaje, el lenguaje B, que estaba basado en el BCPL (Basic Combined Programming Language o Lenguaje de Programacin Bsica Combinada). Estos dos lenguajes de programacin: el B y el BCPL se crearon para elaborar y desarrollar sistemas operativos, principalmente el Unix. Este es el lenguaje ms conocido para desarrollar software de sistemas y aplicaciones. Es un lenguaje muy eficiente en este campo. Uno de los principales objetivos de los creadores de este lenguaje fue que solo hicieran falta muy pocas instrucciones en lenguaje de mquina para su correcto funcionamiento y mejorar as el tiempo de ejecucin. Por esta razn se us como intermediario entre

diferentes lenguajes de programacin. Este lenguaje esta disponible multitud de plataformas diferentes, mucho ms que cualquier otro lenguaje. Adems, en principio, fue creado para fomentar la programacin independientemente de la mquina. Este lenguaje de programacin naci conjuntamente con el sistema operativo Unix. Pero con el tiempo fue muy conocido, se descubri su gran versatilidad y se ha empleado para otros cometidos muy diferentes a la programacin de sistemas operativos. Sus principales caractersticas son: es un lenguaje simple, flexible porque permite programar con multitud de estilos, te impide programar operaciones sin sentido, un reducido conjunto de palabras clave, tiene acceso a memoria de bajo nivel, permite que los datos relacionados se combinen y se manipulen como un todo, etc. Estructura bsica de un programa en C La mejor forma de aprender un lenguaje es programando con l. El programa ms sencillo que se puede escribir en C es el siguiente: main( ) { } Como nos podemos imaginar, este programa no hace nada, pero contiene la parte ms importante de cualquier programa C y adems, es el ms pequeo que se puede escribir y que se compile correctamente. En el se define la funcin main, que es la que ejecuta el sistema operativo al llamar a un programa C. El nombre de una funcin C siempre va seguida de parntesis, tanto si tiene argumentos como si no. La definicin de la funcin est formada por un bloque de sentencias, que esta encerrado entre llaves {}. Un programa algo ms complicado es el siguiente: #include <stdio.h> main( ) { printf("Hola amigos!\n"); } Con el visualizamos el mensaje Hola amigos! en el terminal. En la primera lnea indica que se tengan en cuenta las funciones y tipos definidos en la librera stdio (standard input/output). Estas definiciones se encuentran en el fichero header stdio.h. Ahora, en la funcin main se incluye una nica sentencia que llama a la funcin printf. Esta toma como argumento una cadena de caracteres, que se imprimen van encerradas entre dobles comillas " ". El smbolo \n indica un cambio de lnea. Hay un grupo de smbolos, que son tratados como caracteres individuales, que especifican algunos caracteres especiales del cdigo ASCII. Los ms importantes son: \a Alerta

\b Espacio atrs \f Salto de pgina \n Salto de lnea \r Retorno de carro \t Tabulacin horizontal \v Tabulacin vertical \\ Barra invertida \' Comilla simple \" Comillas dobles \OOO Visualiza un carcter cuyo cdigo ASCII es OOO en octal \xHHH Visualiza un carcter cuyo cdigo ASCII es HHH en hexadecimal Un programa C puede estar formado por diferentes mdulos o fuentes. Es conveniente mantener los fuentes de un tamao no muy grande, para que la compilacin sea rpida. Tambin, al dividirse un programa en partes, puede facilitar la legibilidad del programa y su estructuracin. Los diferentes fuentes son compilados de forma separada, nicamente los fuentes que han sido modificados desde la ltima compilacin, y despus combinados con las libreras necesarias para formar el programa en su versin ejecutable. 1.2 Caractersticas Orientado a la programacin de sistemas Es altamente transportable Es muy flexible Genera cdigo muy eficiente Es muy expresivo (se pueden realizar muchas funciones escribiendo pocas lneas de cdigo) Es muy poco modular Hace pocas comprobaciones Da poca disciplina al programador Es difcil leer cdigo escrito por otras personas 1.3 Fases de desarrollo de un programa en C El preprocesador Transforma el programa fuente, convirtindolo en otro archivo fuente predigerido. Las transformaciones incluyen: Eliminar los comentarios.

Incluir en el fuente el contenido de los ficheros declarados con #include <fichero> (a estos ficheros se les suele llamar cabeceras) 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 mquina: fichero objeto. Algunos compiladores pasan por una fase intermedia en lenguaje ensamblador. El enlazador Un fichero objeto es cdigo mquina, pero no se puede ejecutar, porque le falta cdigo 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 cdigo de funciones precompiladas, a las que el archivo fuente llama (por ejemplo printf). 1.4 Ejemplo de programa en C #include <stdio.h> main() { /* Escribe un mensaje */ printf (Hola, mundo\n); } 1.5 Bibliotecas estndares 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 dinmica. No obstante, el estndar de C define un conjunto de bibliotecas de funciones, que necesariamente vienen con todo entorno de compilacin 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 estndares son: entrada y salida de datos (stdio.h) manejo de cadenas (string.h) memoria dinmica (stdlib.h) rutinas matemticas (math.h) 1.6 Componentes del lenguaje C

Sigue el paradigma de la programacin estructurada: Algoritmos+estructuras de datos = programas. Estructuras de datos literales tipos bsicos (todos numricos) tipos enumerados tipos estructurados (struct, union) punteros y vectores Construcciones algortmicas construcciones condicionales (if,switch) construcciones iterativas(while,for,do...while) subrutinas (funciones) Adems de lo anterior, el C tiene otros elementos: comentarios inclusin de ficheros macros compilacin condicional El preprocesador es quien normalmente se encarga de interpretar estas construcciones. 2. Manipulacin bsica de datos Literales Tipos bsicos Declaraciones de variables Rangos de valores y tipos modificados Nombres de variables (identificadores) Expresiones Asignaciones Operadores booleanos Operadores avanzados 2.4 Rangos de valores y tipos modificados Rango de los enteros Una variable entera acepta valores positivos y negativos dentro de un rango determinado, que depende de la plataforma y del compilador (en pecs bajo MS-DOS suele estar entre 32768 y 32767; en Linux son enteros de 32 bits).

Existen modificaciones para el tipo int, para alterar el rango de valores sobre el que trabaja: Modificador short long unsigned signed Significado entero corto (rango ms pequeo) entero largo (rango ms amplio) entero sin signo (0..N) entero con signo (-N-1 .. +N)

La palabra int se puede omitir en la declaracin de la variable. Los modificadores de tamao ( short, long) y de signo ( signed, unsigned) se pueden combinar. Por omisin, un entero es signed (en la prctica, esta palabra reservada casi nunca se emplea). Ejemplos: unsigned sin_signo; long saldo_en_cuenta; unsigned long telefono; /* entero sin signo */ /* entero largo con signo */ /* entero largo sin signo */

Tipo char El tipo char permite manejar caracteres (letras), aunque se trata de un tipo numrico. Normalmente el rango de valores va de 128 a +127 (signed char), o bien de 0 a 255 (unsigned char). Los literales de tipo carcter se pueden utilizar como nmeros. char caracter; int entero; main() { caracter = 65; // valdra como una A entero = A; // valdra como un 65

10. El preprocesador del C En C existe un preprocesador, previo al compilador, que reconoce unas rdenes bsicas para manipular constantes y macros, incluir varios ficheros en el fuente y dirigir la compilacin posterior. Este preprocesador tiene su propio lenguaje, muy sencillo, y es independiente del lenguaje C , aunque es absolutamente estndar. IMPORTANTE: el preprocesador es independiente y ajeno al C, tan slo es un editor de textos. Todas las rdenes al preprocesador comienzan con un carcter # en la primera columna del texto.

You might also like