Introducción al lenguaje de programación C - Salón de clases

Introducción al lenguaje de programación C

El lenguaje de programación C, es uno de los pilares fundamentales sobre los cuales están construidas muchas de las innovaciones tecnológicas que utilizamos hoy en día. Su legado es tan grande que resulta impensable para un programador no aprender a utilizarlo en algún punto de su vida profesional. Siendo uno de los lenguajes de programación más utilizados en todo el planeta, hoy dedicaremos un rato a conocer sus fundamentos.

Definición y breve historia del lenguaje C

Siendo un lenguaje de tercera generación, C nació dentro de los laboratorios Bell de la mano de Dennis Ritchie entre 1968 y 1972 como la evolución de un lenguaje anterior llamado B. Pertenece a la categoría de lenguajes de propósito general, es decir, sirve para desarrollar cualquier tipo de aplicaciones, desde programas de consola, escritorio, web, móviles, etc.

Como todo lenguaje de su generación, fue creado para mantener un control a bajo nivel, por lo que incluso se puede mezclar con ensamblador, dar acceso a memoria o dispositivos periféricos de manera directa.

Introducción al lenguaje de programación C - Salón de clases
Ejemplo de un código en lenguaje ensamblador

Según algunas leyendas, C nació en realidad como parte del deseo de los programadores de los laboratorios Bell de jugar con un videojuego llamado Space Travel. Por lo que Ritchie y su equipo unieron fuerzas con Ken Thompson para portar dicho juego a una computadora PDP-7. Según esto último, fue lo que originó la portación del sistema operativo Unix de ensamblador a C.

Introducción al lenguaje de programación C - Salón de clases
Ken Thompson (izquierda) y Dennis Ritchie (derecha)

Para finales de los años 70’s, C empezó a desplazar al entonces popular lenguaje BASIC como lenguaje predominante en las microcomputadoras. En 1978, Ritchie se alió con Brian Kernighan para publicar el libro “El lenguaje de programación C” que más tarde sería conocido como la “Biblia de C”, mismo que sirvió como una especie de guía no oficial hasta la creación del estándar ANSI C.

Introducción al lenguaje de programación C - Salón de clases

Entonces, otro programador de los laboratorios Bell llamado Bjarne Stroustrup comenzó a trabajar en una versión del lenguaje con soporte para el paradigma orientado a objetos. A este proyecto se le conoce como C++

Filosofía del lenguaje C

El lenguaje C se sustenta sobre una filosofía muy simple que puede definirse con un conjunto de premisas muy básicas:

  • Mantener siempre todo a bajo nivel
  • Incentivar la programación independiente de la plataforma
  • Estar presente en múltiples plataformas
  • Fue creado por programadores para programadores
  • Especialización en software de sistema
Introducción al lenguaje de programación C - Salón de clases
Ejemplo de un código en lenguaje C

Todas estas premisas se derivan del hecho de que el lenguaje fue hecho originalmente para no depender de un sistema operativo (aunque sirve como base para muchos) Adicionalmente la especialización en software de sistema, se refiere al hecho de que es perfecto para desarrollar compiladores, controladores de dispositivos, máquinas virtuales, líneas de comando, bootloaders, GUI, etc.

Características del lenguaje C

El lenguaje contiene una extensa lista de características, unas más fáciles de entender que otras, pero las más interesantes desde nuestro punto de vista son:

  • Acceso a memoria de bajo nivel a través de punteros
  • un conjunto muy limitado de palabras clave
  • Manejo de interrupciones
  • Uso de preprocesado a través de macros
  • Encapsulado de variables y funciones
  • Implementación de árboles
  • Fomenta el diseño modular de programas
  • Soporta el paradigma de programación estructurada
  • Núcleo simplificado del lenguaje con añadidos a por medio de bibliotecas
  • Distinción entre mayúsculas y minúsculas
  • Permite integrar lenguaje ensamblador

El lenguaje C y sus estándares

Hablar del lenguaje C y sus estándares puede ser algo “delicado” para algunas personas, pero los estándares existen por varias razones y en el caso de C, ayudaron a sacar al lenguaje del caos, ya que comenzaron a existir múltiples compiladores, muchos de los cuales introducían funciones y librerías propias, siendo uno de los casos más conocidos el famoso Borland C++

Introducción al lenguaje de programación C - Salón de clases
Interfaz del popular IDE Borland C++

Debido a esto, el Instituto Americano de Estándares Nacionales (ANSI) en 1983 creo un comité para establecer la especificación del estándar. Este proceso duro 6 años y dio como fruto la primera versión conocida como ANSI X3.159-1989 o simplemente C89. En 1990, el estándar sufrió algunas modificaciones menores y la actualización conocida como C90 no solo vio la luz, sino que fue adoptada por la Organización Internacional para la Estandarización (ISO) bajo el nombre ISO/IEC 9899:1990.

En 1999 el estándar ISO sufrió una actualización que fue soportada en marzo del año 2000 bajo el nombre de ISO/IEC 9899:1999 o C99. Luego en abril de 2011 apareció la versión C11 o ISO/IEC 9899:2011. Finalmente al momento de escribir este artículo, la última versión es la ISO/IEC 9899:2018 o C18 publicada en junio de 2018.

¿Qué se necesita para crear aplicaciones en C?

En la actualidad, un IDE sencillo es más que suficiente para crear aplicaciones en C. Anteriormente se instalaban el compilador, depurador y editor por separado, y aunque todavía se puede hacer esto, lo recomendable es utilizar un entorno que ya lo incluya todo. Siendo este el caso, lo más recomendables son los siguientes:

DevC++ : Un entorno de desarrollo sencillo enfocado en la simpleza y con un conjunto reducido de herramientas para escribir código, compilar y depurar aplicaciones. Soporta el compilador estándar GCC.

Introducción al lenguaje de programación C - Salón de clases

CodeBlocks : Un entorno más completo y configurable que el anterior pero con la característica extra de poder utilizar múltiples compiladores de C. Funciona para Windows, Linux y Mac.

Introducción al lenguaje de programación C - Salón de clases

Microsoft Visual C++ El compilador de Microsoft integrado en su famosa suite de desarrollo conocida como Visual Studio. Una alternativa muy completa, pero recomendable solo si vas a crear proyectos complejos.

Introducción al lenguaje de programación C - Salón de clases

Embarcadero C++ Builder : Descendiente directo del mítico Borland C++, se puede adquirir por separado o como parte de una suite conocida como RAD Studio.

Introducción al lenguaje de programación C - Salón de clases

KDevelop: Un IDE muy poderoso que tiene soporte para C/C++, Python, PHP y JavaScript, desarrollado por la fundación KDE. Originalmente en Linux, ahora también lo encontramos para Windows y Mac.

Introducción al lenguaje de programación C - Salón de clases

Eclipse: Otro compilador muy potente desarrollado en Java, altamente configurable y que además soporta una gran cantidad de lenguajes de programación (no solo C). Disponibles para Windows, Linux y Mac. No recomendable para equipos de bajo rendimiento.

Introducción al lenguaje de programación C - Salón de clases

Consideraciones adicionales

Se pueden usar editores de código como Visual Studio Code, Atom o VS Codium en el caso de solo querer escribir archivos por separado o realizar proyectos en una herramienta más ligera y simple. También es posible (sobretodo en Windows) que algunos de los programas mencionados no incluyan el compilador y haya que instalar el paquete por separado.

En este último supuesto, los compiladores para lenguaje C más recomendables son: MingW y GCC, ya que están disponibles para múltiples sistemas operativos. Incluso algunas distribuciones Linux, tienden a traer GCC instalado.

Comentarios, dudas y preguntas

¡Y eso es todo! No olvides dejar tus comentarios, dudas y / o preguntas. Con gusto las respondemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)

Comentarios

Aún no hay comentarios. ¿Por qué no comienzas el debate?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *