C es un lenguaje de programación desarrollado en los años 1960-1970 para sistemas operativos como Unix. Es eficiente y popular para crear software de sistemas. C es de tipado estático y débil, lo que permite control a bajo nivel a través de punteros pero también uso de bibliotecas para funciones de alto nivel.
2. Lenguaje de programación C
C es un lenguaje de programación originalmente desarrollado
por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell, como
evolución del anterior lenguaje B, a su vez basado en BCPL.
Al igual que B, 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.
Se trata de un lenguaje de tipos de datos estáticos, débilmente
tipificado, de medio nivel, ya que dispone de las estructuras
típicas de los lenguajes de alto nivel pero, a su vez, dispone de
construcciones del lenguaje que permiten un control a muy bajo
nivel. Los compiladores suelen ofrecer extensiones al lenguaje
que posibilitan mezclar código en ensamblador con código C o
acceder directamente a memoria o dispositivos periféricos.
3. Características
Propiedades
Carencias
Recolección de basura nativa, sin
embargo se encuentran a tal efecto
bibliotecas como la "libgc"
desarrollada por Sun Microsystems, o
el Recolector de basura de Boehm.
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. Véase también la librería GObject.
Funciones anidadas, aunque GCC
tiene esta característica como
extensión.
Soporte nativo para
programación multihilo. Disponible
usando librerías como libpthread.
o Núcleo del lenguaje simple, con
funcionalidades añadidas
importantes, como funciones
matemáticas y de manejo de
archivos, proporcionadas
por bibliotecas.
o Es un lenguaje muy flexible que
permite programar con múltiples
estilos.
o Un sistema de tipos que impide
operaciones sin sentido.
o Acceso a memoria de bajo nivel
mediante el uso de punteros.
o Interrupciones al procesador
con uniones.
o Un conjunto reducido de palabras
clave.
4. 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.
Desventajas
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.
La gestión de la memoria es un
ejemplo clásico: en C el programador
ha de reservar y liberar la memoria
explícitamente
El mantenimiento en algunos casos
puede ser más difícil y costoso que
con ciertos lenguajes de más alto
nivel.
5. ¿Qué necesito para poder
aprender C?
Aunque se puede aprender a programar con C, es
recomendable haber aprendido la lógica de programación
con lenguajes de alto nivel, quizá conocer python, java u
otros lenguajes.
Tener el conocimiento de Assembly ayuda bastante a
comprender C, además de saber exactamente que
hacemos cuando trabajamos con punteros y acceso a
posiciones de memoria e incluso al momento de interactuar
con bibliotecas externas.
Tiempo y mucha investigación para comprender a fondo
cómo funciona el lenguaje con sus características mas
importantes será importante.
6. ¿Por qué debería de aprender C?
Es un lenguaje que mejorará mucho la forma en que
comprendemos los demás lenguajes, ya que para realizar cosas
que vemos casi automáticas en otros lenguajes de alto nivel, acá se
deben de realizar con la lógica con que el lenguaje de máquina
funciona, permitiendo de ésta manera saber exactamente que pasa
en cada parte de una aplicación y mejorar grandemente nuestra
lógica de programación.
Conocer el uso de punteros es esencial en C, lo que hace que
sepamos apreciar su lógica de funcionamiento, entendiendo cómo
se reserva la memoria, como se libera, su utilización, cómo
podemos almacenar la información de distintas maneras, convertir
tipos de datos, pasar variables por valor y referencia a funciones,
etc.
7. Importancia
El lenguaje de programación C está caracterizado por ser de uso general,
con una sintaxis sumamente compacta y de alta portabilidad, de fácil
aprendizaje.
Es común leer que se lo caracteriza como un lenguaje de “bajo nivel”.
No debe confundirse el término “bajo” con “poco”, ya que el significado
del mismo es en realidad “profundo”, en el sentido que C maneja los
elementos básicos presentes en todas las computadoras: caracteres,
números y direcciones.
Esta particularidad, junto con el hecho de no poseer operaciones de
entrada-salida, manejo de arreglo de caracteres, de asignación de
memoria, etc. , puede al principio parecer un grave defecto; sin embargo
el hecho de que estas operaciones se realicen por medio de llamadas a
Funciones contenidas en Librerías externas al lenguaje en sí, es el que
confiere al mismo su alto grado de portabilidad, independizándolo del
“Hardware” sobre el cual corren los programas, como se irá viendo a lo
largo del aprendizaje de este novedoso lenguaje de programación
(asignaturas de Programación I y Programación II).