Saltar al contenido principal

Lenguajes de programación

Un lenguaje de programación es un conjunto de reglas y sintaxis que permiten a los desarrolladores escribir instrucciones que un computador puede entender y ejecutar.

El objetivo principal de un lenguaje de programación es permitir la creación de programas que puedan resolver problemas, automatizar tareas, procesar datos y crear aplicaciones.

Requisitos de un lenguaje de programación

En informática no hay una definición única y universalmente aceptada de lo que es un lenguaje de programación, pero sí existen criterios que permiten distinguirlo de otros lenguajes formales o de especificación.

En general, para que un lenguaje sea considerado lenguaje de programación, debe cumplir con estos requisitos:

  1. Sintaxis formal y reglas gramaticales claras
    • Debe existir una definición precisa de cómo se construyen las instrucciones (palabras clave, operadores, delimitadores, etc.).
    • Estas reglas permiten escribir programas de manera no ambigua.
  2. Semántica bien definida
    • No basta con que las instrucciones sean correctas sintácticamente, también deben tener un significado claro y consistente (qué efecto producen al ejecutarse).
  3. Capacidad de expresar algoritmos
    • El lenguaje debe permitir describir secuencias de pasos para resolver un problema.
    • Normalmente implica estructuras como:
      • Secuencia (ejecutar una instrucción tras otra)
      • Selección (if/else, condicionales)
      • Iteración (bucles)
      • Composición modular (funciones, procedimientos, métodos, etc.)
  4. Control de flujo y abstracción
    • Debe ofrecer mecanismos para controlar el orden de ejecución (bucles, saltos, llamadas de funciones).
    • Idealmente, también permitir niveles de abstracción (definir variables, tipos de datos, funciones, clases…).
  5. Turing-completitud (en la práctica)
    • No es un requisito formal absoluto, pero la mayoría de lenguajes de programación se consideran tales si son Turing completos, es decir, si pueden simular cualquier máquina de Turing (resolver cualquier problema computable, dadas suficientes memoria y tiempo).
    • Ejemplo: HTML no es un lenguaje de programación porque no es Turing completo, mientras que Python, C o Java sí lo son.
  6. Ejecutabilidad
    • Debe existir la posibilidad de traducir o interpretar el código en acciones ejecutables por un computador (ya sea mediante compilación, interpretación o un híbrido).

Creación de un lenguaje de programación

Cualquier persona puede diseñar un lenguaje de programación siempre y cuando ese lenguaje cumpla con los requisitos fundamentales que se han mencionado en el apartado anterior. Eso significa que, si creas un sistema con una serie de símbolos y reglas que permitan describir y ejecutar procedimientos, has creado un lenguaje de programación.

Esto incluye tanto lenguajes serios para tareas prácticas, como lenguajes esotéricos, creados a menudo por diversión. Un lenguaje de programación esotérico es un lenguaje creado como experimento, broma o reto intelectual, no para uso práctico.

Definición «Esotérico»

Esotérico significa algo difícil de entender o que está pensado solo para unas pocas personas con conocimientos especiales. Por ejemplo, un tema esotérico es aquel que resulta misterioso o poco claro para la mayoría.

Algunos ejemplos son:

Estos lenguajes suelen sorprender por su sintaxis curiosa o limitada, pero suelen ser Turing-completos y, por tanto, funcionales.

Curiosamente, Xataka publicó un artículo titulado 14 lenguajes de programación para partirse la caja pero que funcionan (más o menos), donde destaca precisamente esta idea: hay quien se divierte creando lenguajes con sintaxis absurdas o cómicas.

Este tipo de proyectos no solo son curiosos o humorísticos, sino que ilustran perfectamente que, más allá del propósito práctico, lo esencial es que el lenguaje permita ejecutar procesos. Y si el propósito es divertir o explorar límites creativos, esos lenguajes cumplen perfectamente.