5
HISTORIA DEL LENGUAJE C
En 1967 Martin Richards desarrolló un lenguaje de programación llamado
BCPL que puede considerarse el abuelo de C.
En 1970 se desarrolló una variante del anterior, llamada B, que fue utilizada
por Ken Thompson en las primeras versiones del sistema operativo UNIX.
En 1973 Dennis Ritchie definió el lenguaje C como una mejora importante de
B. El lenguaje C fue utilizado en la reprogramación del de UNIX, consiguiéndose su
primera versión pública.
Con el paso del tiempo se fue popularizando el lenguaje C, hasta el punto que
fue estandarizado por ANSI. La versión estándar del lenguaje añadía algunas mejoras
importantes que favorecieron un mayor uso del lenguaje.
En la Actualidad, el auge de la programación orientada a objetos ha
provocado que cada vez se use menos el lenguaje C. Sin embargo, es de destacar
que este lenguaje es el núcleo principal de varios lenguajes orientados a objetos como
objective-c y los populares C++ y java.
6
LENGUAJE C: Concepto
C es un lenguaje de programación de empleo general, caracterizado por
poseer un moderno flujo central y estructuras de datos, así como un rico conjunto de
operadores. C es un lenguaje compilado.
El C a menudo es conocido como un lenguaje de computador de medio nivel,
lo cual significa que el C es similar a los lenguajes de bajo nivel – ensambladores -
en cuanto que es una representación simbólica del código de máquina de un
computador, pero por otro lado combina elementos propios de un lenguaje de alto
nivel, con el funcionlismo de un ensamblador.
Niveles de los Lenguajes de computadores
NIVEL ALTO NIVEL MEDIO NIVEL BAJO
Ada
BASIC
COBOL C Ensambladores
FORTRAN FORTH
Pascal
Los siguientes son ejemplos de programas de sistemas que a menudo se escriben
en C:
- Sistemas Operativos - Compiladores de lenguaje
- Ensambladores - Editores de Texto
- Integración de E/S - Base de datos
7
- Programas de MODEM
- Intérpretes de lenguajes
VENTAJAS DEL LENGUAJE C
Como ventajas cabe destacar las siguientes:
• Es un lenguaje pequeño (tiene sólo 28 palabras reservadas) y por lo tanto es
fácil de aprender.
• Es un lenguaje muy rápido, debido a su relativo bajo nivel. Se escribe más
rápido que en ensamblador.
• Es un lenguaje muy flexible, que permite generar código compacto y
eficiente.
• Es portable: un programa escrito en C para un tipo de computadoras puede
ser transportado a computadoras de otro tipo sin apenas modificaciones,
siempre y cuando no tenga código específico de un tipo de computadoras.
• Es un lenguaje estructurado: posee sentencias de control de flujo (selección,
iteracción y funciones) y permite definir tipos estructurados de datos. Se
consideran más modernos los lenguajes estructurados debido a su claridad
porque hacen más fácil el programas y resulta de fácil entendimiento.
• Los listados aparecen claros
8
• Ofrece la posibilidad de realizar programación modular, dividiendo los
programas en varios ficheros más manejables, para después enlazarlos juntos
en un único ejecutable.
• Facilita el manejo de punteros y memoria dinámica, de forma que permite
controlar un uso eficiente de la memoria.
DESVENTAJAS DEL LENGUAJE C
• El uso incontrolado de punteros puede resultar peligroso.
• Es un lenguaje que ofrece mucha libertad al programador en la forma de
escribir los programas. Si no se programa con cuidado, los programas
pueden resultar indescifrables hasta para el propio autor.
DIFERENCIAS CON OTROS LENGUAJES
1. Es un lenguaje de Medio nivel, similar a los de bajo nivel. Los Lenguajes
BASIC, PASCAL, FORTAN son de alto nivel
2. El C manipula bits, bytes, accede a las funciones del computador y opera
directamente sobre los caracteres. Al contrario que el BASIC que opera
directamente sobre cadenas de caracteres para realizar multitud de funciones.
9
3. En BASIC hay sentencias incorporadas para leer y escribir ficheros en disco.
En C estos procedimientos se llevan a cabo por funciones que no son
propiamente parte del lenguaje sino que se proporcionan como parte de una
librería estándar de C.
Ej:
La sentencia PRINT del BASIC no tiene sentencia equivalente en C.
Sin embargo, exite una función llamada Printf() en la librería estándar de
funciones que el fabricante le proporcionará con el compilador de C.
4. En el C hay pocas sentencias que recordar sólo 28 palabras clave. La versión
del BASIC para el IBM Pc tiene 159.
5. El C es un lenguaje estructurado como Ada o Pascal. El Basic, COBOL,
FORTRAN son lenguajes no estructurados.
6. EL BASIC normalmente es interpretado. El C casi siempre compilado.
COMPILADOR
Es un programa que analiza un programa escrito en lenguaje de alto nivel
llamado Programa fuente, es decir, chequea cada instrucción para determinar si
cumple con las reglas establecidas, señalando los errores en caso que existan.
Cuando no existen errores, crea un programa en lenguaje de máquina llamado
Programa Objeto, el cual es comprendido por la unidad de control para su ejecución.
10
En forma general, el compilador traduce un programa escrito en un lenguaje
de alto nivel al lenguaje de máquina, el cual es un conjunto de símbolos que la
máquina maneja con gran facilidad. El Compilador es parte del Software.
INTERPRETE
Este tipo de programas efectúa traducción y ejecución sucesiva, instrucción a
instrucción. Por tanto, se distinguen de los compiladores en que éstos traducen el
programa completo, sin operar su ejecución a medida que avanza el proceso de
traducción.
IMPORTANCIA DE C
Además de las ventajas descritas, existen un conjunto de circunstancias
externas que hacen que este lenguaje sea uno de los más utilizados actualmente.
• En primer lugar, su éxito va parejo con el del sistema operativo UNIX, muy
usado en entornos científicos. Esto es debido a que tda versión de UNIX
incorpora su compilador del lenguaje C.
• Cada vez existe un mayor número de herramientas que permiten comunicarse
con programas escritos en C.
11
• Importantes empresas y asociaciones exigen que sus proyectos se realicen en
C.
ELEMENTOS GENERALES DE UN PROGRAMA EN C
Aunque cada uno de los programas son distintos, todos tienen características
comunes. Los elementos de un programa en C son los siguientes:
Comentarios
Inclusión de archivos
main()
variables locales
flujo de sentencias
Definición de funciones creadas por el programador utilizadas en main()
Veamos en que consiste cada uno:
Comentarios: Se identifican porque van entre diagonales y asterisco.Nos sirve para
escribir información que nos referencie al programa pero que no forme parte de él.
12
Por ejemplo especificar que hace elprograma, quien lo elaboró, en que fecha, que
versión es, etc.
Inclusión de archivos: Consiste en mandar llamar a la o las bibliotecas donde se
encuentran definidas las funciones de C (instrucciones) que estamos utilizando en el
programa.
En realidad, la inclusión de archivos no forma parte de la estructura propia de un
programa sino que pertenece al desarrollo integrado de C. Se incluye aquí para que el
alumno no olvide que debe mandar llamar a los archivos donde se encuentran
definidas las funciones estandar que va a utilizar.
main(): En C, todo está constituido a base de funciones. El programa principal no es
la excepción. main() indica el comienzo de la función principal del programa la cual
se delimita con llaves.
Variables locales: Antes de realizar alguna operación en el programa, se deben
declarar la(s) variable(s) que se utilizarán en el programa.
Flujo de sentencias: Es la declaración de todas las instrucciones que conforman el
programa.
13
Definición de funciones creadas por el programador utilizadas en main():
Finalmente,se procede a definir el contenido de las funciones utilizadas dentro de
main(). Estas contienen los mismos elementos que la función principal.