Pantalla de una computadora con código de programacion

Evolución de la programación: C/C++

Ingeniería en comunicaciones y electrónica
Tema 1.1 del Plan de Estudios de POO IPN

La programación ha evolucionado drásticamente desde sus inicios, pasando de lenguajes crípticos y cercanos al hardware hasta abstracciones modernas que permiten desarrollar software complejo con mayor facilidad.

En este artículo, exploraremos las etapas clave de esta evolución, con especial enfoque en el lenguaje C/C++, que marcó un antes y después en la historia de la computación.

Los primeros lenguajes: programación en código máquina y ensamblador

En los albores de la computación, los programadores trabajaban directamente con código máquina (ceros y unos) o ensamblador, un lenguaje de bajo nivel que representaba instrucciones legibles para humanos pero aún muy cercanas al hardware.

Ejemplo en Ensamblador (x86):

mov eax, 5   ; Mueve el valor 5 al registro EAX

add eax, 3   ; Suma 3 al valor almacenado en EAX

Este enfoque era tedioso y propenso a errores, pero necesario para aprovechar al máximo los limitados recursos de las primeras computadoras.

Lenguajes de alto nivel: el nacimiento de C

En la década de 1970, Dennis Ritchie desarrolló C en los laboratorios Bell, creando un lenguaje que combinaba la eficiencia del ensamblador con una sintaxis más legible.

Características clave de C:

  • Portabilidad: Un programa en C podía compilarse en diferentes arquitecturas.
  • Eficiencia: Permite manipular memoria directamente (punteros).
  • Estructuras de control: Introdujo if-else, while, for, etc.

Ejemplo en C:

#include <stdio.h>

int main() {

    int numero = 5;

    numero += 3;

    printf("El resultado es: %d\n", numero);

    return 0;

}

C se convirtió en el lenguaje base para sistemas operativos como Unix y sentó las bases para lenguajes posteriores.

C++: programación orientada a objetos y más

Bjarne Stroustrup extendió C en los años 80, creando C++, que añadió soporte para Programación Orientada a Objetos (POO) y características modernas sin sacrificar rendimiento.

Mejoras de C++ sobre C:

  • Clases y objetos: Permite encapsular datos y comportamientos.
  • Templates (genéricos): Facilita la reutilización de código.
  • STL (Standard Template Library): Proporciona estructuras de datos eficientes.

Ejemplo en C++:

#include <iostream>

#include <vector>

int main() {

    std::vector<int> numeros = {1, 2, 3};

    numeros.push_back(4); // Añade un elemento al vector

    for (int num : numeros) {

        std::cout << num << " ";

    }

    return 0;

}

Muchos lenguajes actuales heredaron conceptos de C/C++:

  • Java y C#: Sintaxis similar, pero con recolección de basura.
  • Python y JavaScript: Aunque más abstractos, usan estructuras inspiradas en C.
  • Rust y Go: Enfocados en rendimiento y seguridad, aprendieron de los aciertos y errores de C/C++.

C++ se utiliza en áreas críticas como videojuegos, sistemas embebidos y desarrollo de alto rendimiento.

La evolución de la programación ha sido un viaje desde lo abstracto hasta lo eficiente, y C/C++ desempeñó un papel crucial en este proceso. Aunque hoy existen lenguajes más fáciles de aprender, entender C/C++ sigue siendo esencial para cualquier programador que desee dominar los fundamentos de la computación.

Gracias por leernos.
Si te gusto este artículo, únete a nuestra comunidad en Telegram o WhatsApp para más…
¡Hasta la próxima!
Deja un comentario

Comentarios

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

Deja una respuesta

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