UNAH · Tegucigalpa / Cátedra de Programación III Período 2026
Contenido Oficial · Módulos 01, 02 y 03 Activos
MÓDULO 01 Diapositivas 01 a 10

1. Los Inicios y la Primera Generación de Lenguajes

¿Por qué existen tantos lenguajes de programación? Cada lenguaje nació como una respuesta ingenieril a un problema concreto de su época: desde la dificultad extrema de comunicarse en binario hasta la necesidad de modelar transacciones bancarias, fórmulas matemáticas o inteligencia artificial.

📖 Definición Formal de Lenguaje de Programación (Slide 03)

Un lenguaje de programación es un sistema formal de comunicación compuesto por un conjunto riguroso de reglas sintácticas y semánticas, símbolos y palabras clave, diseñado para permitir que un ser humano escriba instrucciones precisas (algoritmos) que una computadora pueda interpretar, procesar y ejecutar.

Los Inicios de la Computación: La Barrera del Hardware

Antes de los lenguajes modernos de alto nivel, la comunicación con las máquinas requería manipular directamente los circuitos físicos o tarjetas perforadas:

01 · BAJO NIVEL ABSOLUTO

Código Máquina (Binario)

La máquina solo comprende secuencias de ceros y unos (impulsos eléctricos). Extremadamente propenso a fallas, dependiente al 100% de la arquitectura de la CPU e ininteligible para humanos.

Ejemplo: 10110000 01100001
02 · PRIMER SALTO DE ABSTRACCIÓN

Ensamblador (Assembly)

Introdujo mnemónicos (instrucciones textuales breves) para reemplazar cadenas de bits. Muy rápido y cercano al procesador, pero de alta complejidad y nula portabilidad.

MOV AX, 5
ADD AX, 3
💡 Evolución Histórica de los Medios Físicos (Slide 04)

Interruptores Físicos ➔ Tarjetas Perforadas ➔ Código Máquina (Binario) ➔ Ensamblador ➔ Lenguajes de Alto Nivel

⚙️

Primera Generación de Lenguajes Modernos (1957–1960)

Slide 05 · El nacimiento del software de alto nivel

Entre 1957 y 1960 se produjo el cambio paradigmático más trascendental en la historia del software: demostrar que el código legible por humanos podía compilarse a código máquina con alta eficiencia.

1957 · JOHN BACKUS

FORTRAN

Formula Translation. El primer lenguaje de alto nivel con adopción masiva. Diseñado para resolver cálculos numéricos y científicos complejos.

DO I = 1,10
  PRINT *, I
END DO

Legado: Base del cómputo científico y supercomputación.

1959 · GRACE HOPPER

COBOL

Common Business-Oriented Language. Orientado a los negocios, contabilidad y banca. Sintaxis similar a la prosa en inglés.

ADD salario TO total.
PERFORM 10 TIMES.

Dato actual: Gran parte de las transacciones bancarias mundiales siguen corriendo sobre COBOL.

1958 · JOHN McCARTHY

LISP

LISt Processing. Pionero del paradigma funcional y pilar de la Inteligencia Artificial. Tratamiento de listas y recursión.

(+ 2 3)  ; => 5
(car '(a b c))

Antecedente directo de Haskell, Clojure y Scheme.

🧱

La Era de la Programación Estructurada (1960–1970)

Slide 06 · Superando la crisis del código espagueti
⚠️ El Problema del "Spaghetti Code" y la Sentencia GOTO

En los primeros años, el flujo de ejecución dependía de saltos incondicionales (GOTO). En programas medianos o grandes, esto generaba un código entrelazado e impredecible denominado "Spaghetti Code", imposible de depurar, probar o mantener.

1958–1960 · COMITÉ INTERNACIONAL

ALGOL (Algorithmic Language)

Definió formalmente los bloques de código delimitados (begin ... end) y las estructuras de control modernas: if, while, for. Aunque tuvo poco uso comercial, fue la madre teórica de Pascal, C y Java.

1970 · NIKLAUS WIRTH

Pascal

Creado específicamente para enseñar programación estructurada y disciplina algorítmica. Caracterizado por su fuerte tipado estático, claridad y legibilidad.

for i := 1 to 10 do begin
  writeln(i);
end;
⚡

C (1972): El Lenguaje que Cambió la Historia

Slide 07 · Dennis Ritchie, Bell Labs y el nacimiento de UNIX

Desarrollado en los laboratorios Bell por Dennis Ritchie con el propósito de construir el sistema operativo UNIX. C combinó el acceso de bajo nivel al hardware (mediante punteros) con construcciones estructuradas y portabilidad entre diferentes arquitecturas de CPU.

☕ bucle_clasico.c
/* Lenguaje C (1972) - Dennis Ritchie & Ken Thompson */
#include <stdio.h>

int main() {
    for (int i = 0; i < 10; i++) {
        printf("Valor de i = %d\n", i);
    }
    return 0;
}
🌐 Árbol de Influencia Directa de C

La sintaxis basada en llaves { }, operadores aritméticos y control de flujo de C fue adoptada por la gran mayoría de lenguajes contemporáneos: C++, Java, C#, JavaScript, PHP, Go, Rust y Swift.

📦

La Revolución Orientada a Objetos (1972–1995)

Slide 08 · Agrupando estado y comportamiento en entidades reales

A medida que los sistemas crecían en complejidad, separar las funciones de las estructuras de datos provocaba desorden. La Programación Orientada a Objetos (POO) organizó el software en objetos con datos propios (atributos) y comportamientos asociados (métodos).

1972 · XEROX PARC

Smalltalk

Primer lenguaje puramente orientado a objetos. Todo en Smalltalk es un objeto. Introdujo el paso de mensajes y entornos con interfaz gráfica (GUI).

Influyó en: Ruby, Python, Objective-C y Java.

1983 · BJARNE STROUSTRUP

C++

Diseñado originalmente como «C con Clases». Unió la potencia y rendimiento en tiempo real de C con clases, herencia y polimorfismo.

Usos: Motores de videojuegos, browsers, sistemas operativos.

1995 · JAMES GOSLING

Java

Revolucionó la portabilidad con la Máquina Virtual de Java (JVM) y el lema "Write Once, Run Anywhere". Gestión automática de memoria y seguridad tipada.

Usos: Banca, Android, plataformas empresariales distribuidas.

🚀

Python y JavaScript: Los Titanes del Siglo XXI

Slides 09 & 10 · De la web ubicua a la revolución de la Inteligencia Artificial
1991 · GUIDO VAN ROSSUM

Python: Legibilidad y Ciencia de Datos

Diseñado bajo la premisa de que el código se lee muchas más veces de las que se escribe. Su sintaxis limpia, semejante al pseudocódigo, lo convirtió en el líder mundial indiscutible en Ciencia de Datos, Aprendizaje Automático (ML), Inteligencia Artificial y Scripting.

  • Multiparadigma: POO, Funcional e Imperativo.
  • Ecosistema masivo: NumPy, Pandas, PyTorch, Django.
1995 · BRENDAN EICH

JavaScript: El Lenguaje Universal de la Red

Creado en solo 10 días en Netscape. Evolucionó de pequeños scripts en el navegador hasta convertirse en una plataforma de ingeniería fullstack con Node.js y librerías modernas como React, Angular y Vue.

  • Dinámico, basado en prototipos y orientado a eventos.
  • Presente en el 98% de la web mundial actual.