Elementos de los lenguajes de programación

Hemos visto el gran número de lenguajes de programación que se han desarrollado en la historia de la informática. A pesar de la gran variedad de lenguajes desarrollados, hay unos elementos comunes a todos ellos. ¿Cuáles son? ¿Qué hace que algo pueda ser considerado un lenguaje de programación?

No son lenguajes de programación

Existen elementos muy usados por los informáticos que tienen algunas de las características de los lenguajes de programación, pero que no lo son. Veamos algún ejemplo.

Los lenguajes XML, uno de los estándares más usados por las aplicaciones informáticas para compartir datos, son lenguajes escritos con una sintaxis perfectamente definida. Por ejemplo, el siguiente texto en un lenguaje XML para definir una lista de persones:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE people_list SYSTEM "example.dtd">
<people_list>
  <person>
    <name>Fred Bloggs</name>
    <birthdate>27/11/2008</birthdate>
    <gender>Male</gender>
  </person>
  <person>
    <name>Mary Baggins</name>
    <birthdate>12/07/1942</birthdate>
    <gender>Female</gender>
  </person>
</people_list>

Sin embargo le falta una característica fundamental para poder ser considerado un lenguaje de programación: no define un comportamiento, no tiene una semántica asociada. El trozo de código anterior no puede ser ejecutado tal cual en un computador, sino que únicamente define un conjunto de datos.

Un entorno de programación visual para definir comportamientos y animaciones es otro ejemplo de algo que no es estrictamente un lenguaje de programación. Por ejemplo Scratch es un lenguaje visual desarrollado por el MIT para promover el interés por la programación entre los jóvenes.

El ejemplo anterior define una animación de un sprite en la pantalla. Otro entornos o herramienta similar es el Adobe Director, que permite diseñar animaciones multimedia. ¿Los podemos considerar lenguajes de programación? Si lo consideramos de una forma estricta, no. No son lenguajes textuales, los programas no se pueden escribir en un fichero de texto. Tampoco tienen elementos fundamentales de los lenguajes de programación como son las funciones y los tipos de datos. Aunque, por otro lado, si consideramos de una forma más amplia el concepto de función, sí que existen elementos en esos lenguajes que posibilitan la creación de abstracciones reutilizables en distintos programas.

Podríamos decir que son herramientas de programación de animaciones que utilizan ciertas características de los lenguajes de programación.