Introducción al lenguaje C

2020-05-16 Lenguaje C

El lenguaje C fue creado por Denis Ritchie en 1972 en los laboratorios Bell. Este lenguaje fue creado con el propósito de desarrollar programas pensando en el problema y no en la arquitectura de la computadora. Sin embargo, C permite también comunicarse de manera fluída con el sistema operativo a bajo nivel. He aquí su mayor potencial.

El lenguaje C es relativamente de bajo nivel, ya que permite especificar cada detalle de la lógica de un programa para lograr la máxima eficacia de la computadora. Sin embargo, C es también un lenguaje de alto nivel ya que permite ocultar los detalles de la arquitectura de la computadora incrementando la eficiencia del programador.

Ventajas de C

Pequeño tamaño: El lenguaje C es realmente pequeño en cuanto a las palabras reservadas con las que cuenta y la cantidad de operadores. Puedes escribir un compilador con tan solo 256K (Chris Pappas y William Murray, 1993). En C no vas a encontrar funciones incorporadas para manejo de cadenas, arrays ni otras estructuras de datos. En su lugar, existen una serie de bibliotecas convenidas que prácticamente hacen parte del lenguaje y que puedes agregar a tu programa en caso de ser necesarias.

Velocidad y eficiencia en memoria: Los programas realizados en C tienden a ser extremadamente rápidos debido al tamaño propio del lenguaje, su sistema de ejecución pequeño y su facilidad para interactuar con el hardware. La usencia de funciones incorporadas también reduce la cantidad de memoria utilizada prescindiendo de funciones que pueden no se utilizadas en una aplicación en particular.

Ausencia de tipos estrictos: Esta flexibilidad del lenguaje C permite ver los tipos de datos de maneras diferentes.

Lenguaje estructurado: Incluye las estructuras típicas de control que podríamos encontrar en lengaujes de alto nivel como sentencias condicionales y repetitivas. También permite manejar el ámbito de las variables.

Programación modular: En C podemos compilar solo aquellas partes del programa que han cambiado. Esto es extremadamente importante cuando estamos compilando programas realmente grandes.

Interfaz con lenguaje ensamblador: C permite una comunicación e integración fácil con el lenguaje ensamblador para aquellos programas que necesitan una combinación de rutinas de alto y bajo nivel.

Manipulación de bits: El lenguaje C proporciona un amplio conjunto de operadores para la manipulación de bits debido a su origen arraigado a UNIX.

Variables puntero: C permite trabajar con punteros y realizar aritmética sobre ellos. Esto permite obtener programas mucho más eficientes.

Portabilidad: Los programas en C permiten ser ejecutados en distintas computadoras con distintos sistemas operativos.

Bibliotecas de funciones: Existe una gran cantidad de bibliotecas de funciones disponibles para las tareas más diversas tales como manejo de bases de datos, manejo de ventanas, entrada de datos, etc.

Desventajas de C

Ausencia de tipos estrictos: Esta característica que aporta flexibilidad a C también es una desventaja. Muchos lenguajes aportan funciones para convertir un tipo de dato a otro y con esto evitar redondeos inesperados. Una variable de tipo char por ejemplo puede convertirse en cualquier momento en una variable de tipo entero y viceversa.

Ausencia de verificación en tiempo de ejecución: Muchos problemas pueden pasar desapercibidos debido a la ausencia de la verificación en tiempo de ejecución. C no nos avisará por ejemplo si se excedieron los límites de un array.

Namespaces: C no soporta la separación de clases por espacios de nombres. Lo que quiere decir que no puedes tener dos clases con el mismo nombre en tu proyecto.

Ausencia de manejo de excepciones: En C no existe un soporte nativo para el manejo de excepciones. Las funciones devuelven un código de error cuando que debe ser identificado por el programador en caso de error.

Ausencia de POO: C no soporta ninguno de los elementos de la programación orientada a objetos. Un programa en C consisten en colecciones de funciones.

Cuándo utilizar C

Es recomendable utilizar C en proyectos en los cuáles el performance es realmente un punto clave. Sin embargo, proyectos de gran complejidad podrías preferir C++ debido a la mantenibilidad. C es actualmente preferido para el desarrollo de servidores web y herramientas de shell en UNIX.

Si te ha gustado este artículo puedes invitarme a tomar una taza de café

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.