1.e.1 Clasificación de los Lenguajes de Programación.

Objetivo

Clasificar los lenguajes de programación atendiendo a su nivel de abstracción, forma de ejecución, propósito y paradigma, identificando las características principales de cada grupo.

1. Contenidos

1.1 Lenguajes de programación

Un lenguaje de programación es un sistema formal que permite expresar algoritmos e instrucciones que podrán ser procesados por un sistema informático.

Existen muchos lenguajes porque los problemas, plataformas y objetivos son diferentes. Un lenguaje puede priorizar rendimiento, productividad, portabilidad, seguridad, facilidad de mantenimiento o control del hardware.

Un mismo lenguaje puede pertenecer simultáneamente a varias categorías. La clasificación depende del criterio que estemos utilizando.

1.2 Clasificación según el nivel de abstracción

El nivel de abstracción indica, de forma general, cuánto se aleja el lenguaje de los detalles concretos del hardware.


Más próximo al hardware

Lenguaje máquina
      ↓
Ensamblador
      ↓
Lenguajes de alto nivel

Más próximo al programador
				
  • Lenguaje máquina: instrucciones que ejecuta directamente una arquitectura de procesador.
  • Ensamblador: utiliza mnemónicos para representar instrucciones máquina.
  • Alto nivel: ofrece construcciones más abstractas y próximas a la forma de expresar algoritmos de una persona.

Ejemplos habituales de alto nivel: C, Java, Python, JavaScript, PHP o C#.

1.3 Clasificación según la forma de ejecución

De forma didáctica podemos distinguir:

  • compilados a código nativo: por ejemplo C o C++;
  • interpretados: por ejemplo Python, en una descripción simplificada;
  • código intermedio y máquina virtual: por ejemplo Java.

En la práctica, las implementaciones modernas pueden combinar interpretación, compilación previa y compilación JIT.

1.4 Propósito general y propósito específico

Los lenguajes de propósito general permiten resolver problemas muy variados. Ejemplos: Java, Python, JavaScript, C o C#.

Los lenguajes de propósito específico se diseñan para un dominio concreto. Un ejemplo fundamental es SQL:


SELECT nombre, stock
FROM productos
WHERE stock < 3;
				

SQL está especializado en definir y manipular información de bases de datos relacionales.

1.5 No todo lenguaje informático es un lenguaje de programación

En desarrollo web trabajamos con tecnologías que tienen finalidades diferentes:

  • HTML: lenguaje de marcado para estructurar contenido.
  • CSS: lenguaje de hojas de estilo para describir presentación.
  • JavaScript: lenguaje de programación.

<h1>El Emporio Arcano</h1>
				

h1 {
    font-size: 2rem;
}
				

if (stock === 0) {
    alert("Producto agotado");
}
				

1.6 Paradigmas de programación

Un paradigma es una forma general de organizar y expresar la solución de un problema.

  • Imperativo: describe una secuencia de operaciones que modifican el estado.
  • Procedural: organiza el programa mediante procedimientos o funciones.
  • Orientado a objetos: organiza el sistema alrededor de objetos que agrupan datos y comportamiento.
  • Funcional: enfatiza funciones y transformaciones de datos.
  • Declarativo: expresa principalmente qué resultado se desea.

1.7 Lenguajes multiparadigma

Muchos lenguajes modernos son multiparadigma. Por ejemplo:

  • Java permite programación imperativa, orientada a objetos y características funcionales;
  • Python permite programación imperativa, procedural, orientada a objetos y funcional;
  • JavaScript permite programación imperativa, orientada a objetos y funcional.

1.8 Selección de un lenguaje

No existe un lenguaje universalmente mejor. La selección debe considerar criterios como:

  • tipo de aplicación;
  • plataforma de ejecución;
  • rendimiento y consumo de recursos;
  • ecosistema de bibliotecas y frameworks;
  • experiencia del equipo;
  • mantenibilidad;
  • comunidad y soporte.

Una aplicación como El Emporio Arcano puede utilizar varias tecnologías: HTML y CSS para la interfaz, JavaScript para interacción, Java o PHP para servidor y SQL para acceso a datos.

1.9 Tabla resumen

TecnologíaNivelEjecución aproximadaTipo / propósito
CAltoCompiladoPropósito general
JavaAltoBytecode + JVMPropósito general
PythonAltoInterpretado, simplificaciónPropósito general
JavaScriptAltoMotor JS / JITPropósito general
SQLAltoProcesado por SGBDPropósito específico
HTMLAlto nivel de abstracciónProcesado por navegadorLenguaje de marcado

2. Ejercicios

  1. Ordena por nivel de abstracción: lenguaje máquina, Python y ensamblador.
  2. Clasifica C, Java y Python según su forma de ejecución aproximada.
  3. Explica la diferencia entre propósito general y propósito específico.
  4. ¿Por qué HTML no se considera un lenguaje de programación de propósito general?
  5. Relaciona con el paradigma principal: SELECT en SQL, un objeto Producto, una secuencia de asignaciones y varias funciones separadas.
  6. Clasifica Java mediante al menos tres características.
  7. Elige una tecnología razonable para: interacción en navegador, consulta a base de datos y programa de control de un dispositivo con recursos muy limitados. Justifica.

3. Bibliografía