Ampliación:
-
C es un
lenguaje de programación creado en 1972 por Dennis M. Ritchie
en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez
basado en BCPL.
-
Es un lenguaje orientado a la implementación de
Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del
código que produce y es el lenguaje de programación más popular para crear
software de sistemas, aunque también se utiliza para crear aplicaciones.
-
La primera estandarización del lenguaje C fue en ANSI,
con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido
vulgarmente como ANSI C. Posteriormente, en 1990, fue ratificado como estándar
ISO
-
Propiedades:
1. Un núcleo del
lenguaje simple, con funcionalidades añadidas importantes, como funciones
matemáticas y de manejo de archivos, proporcionadas por bibliotecas.
2. Es un lenguaje
muy flexible que permite programar con múltiples estilos. Uno de los más
empleados es el estructurado "no llevado al extremo"
3. Un sistema de
tipos que impide operaciones sin sentido.
4. Usa un lenguaje
de preprocesado, el preprocesador de C, para tareas como definir macros e
incluir múltiples archivos de código fuente.
5. Acceso a
memoria de bajo nivel mediante el uso de punteros.
6. Interrupciones
al procesador con uniones.
7. Un conjunto
reducido de palabras clave.
8. Por defecto, el
paso de parámetros a una función se realiza por valor. El paso por referencia
se consigue pasando explícitamente a las funciones las direcciones de memoria
de dichos parámetros.
9. Punteros a
funciones y variables estáticas, que permiten una forma rudimentaria de
encapsulado y polimorfismo.
10.
Tipos de datos agregados (struct) que permiten que
datos relacionados (como un empleado, que tiene un id, un nombre y un salario)
se combinen y se manipulen como un todo (en una única variable
"empleado").
-
Carencias:
1. Recolección de
basura nativa.
2. Soporte para
programación orientada a objetos, aunque la implementación original de C++ fue
un preprocesador que traducía código fuente de C++ a C.
3. Encapsulación.
4. Funciones anidadas,
aunque GCC tiene esta característica como extensión.
5. Polimorfismo en
tiempo de código en forma de sobrecarga, sobrecarga de operadores y sólo
dispone de un soporte rudimentario para la programación genérica.
6. Soporte nativo
para programación multihilo y redes de computadores.
-
Proceso de compilación:
1. Preprocesado
consistente en modificar el código fuente en C según una serie de instrucciones
(denominadas directivas de preprocesado) simplificando de esta forma el trabajo
del compilador.
2. Compilación que
genera el código objeto a partir del código ya preprocesado.
3. Enlazado que
une los códigos objeto de los distintos módulos y bibliotecas externas (como
las bibliotecas del sistema) para generar el programa ejecutable final.
-
Ventajas:
· Lenguaje muy
eficiente puesto que es posible utilizar sus características de bajo nivel para
realizar implementaciones óptimas.
· A pesar de su
bajo nivel es el lenguaje más portado en existencia, habiendo compiladores para
casi todos los sistemas conocidos.
· Proporciona
facilidades para realizar programas modulares y/o utilizar código o bibliotecas
existentes.
-
Inconvenientes:
· El mayor
problema que presenta el lenguaje C frente a los lenguajes de tipo de dato
dinámico es la gran diferencia en velocidad de desarrollo: es mucho más lento
programar en C.
Reseña de ampliación:
- http://www.abcdatos.com/tutoriales/programacion/c.html
- http://www.programacionutn.com.ar/
- http://es.wikipedia.org/wiki/C_(lenguaje_de_programaci%C3%B3n)