Lenguaje de Programación WhiteSpace

Whitespace es un lenguaje de programación esotérico desarrollado por Edwin Brady y Chris Morris, publicado el 1 de abril de 2003. La sintaxis consiste únicamente en espacios en blanco, tabulador y líneas nuevas. Los demás caracteres son ignorados.

Es un lenguaje imperativo que se basa en una pila. La máquina virtual que ejecuta los programas tiene una pila y un heap. Usando la pila, los programadores pueden apilar números enteros de anchura arbitraria, pero no pueden apilar comas flotantes por ahora. El heap puede ser usado para guardar permanentemente variables y estructuras de datos.

Brady y Morris tuvieron la idea de crear Whitespace durante una conversación en un pub, a fines de 2002. Dado que la mayoría de los lenguajes de programación ignoran los caracteres de espacios en blanco, los desarrolladores consideraron que esto era injusto para estos miembros del conjunto de caracteres y decidieron crear Whitespace. Probablemente deberíamos tener en cuenta que la mayoría de los lenguajes de programación no están diseñados en pubs, por lo que este es solo otro hecho que hace que Whitespace sea único.

Whitespace se lanzó el 1 de abril de 2003, por lo que al principio parecía un tonto de abril demasiado elaborado’s Broma. Sin embargo, la fecha de lanzamiento del 1 de abril fue pura coincidencia. En realidad, la fecha de lanzamiento resultó bastante útil, ya que atrajo mucha atención en Slashdot cuando se anunció oficialmente.

El espacio en blanco es un lenguaje de programación imperativo basado en pila que admite enteros. El soporte para números de coma flotante no está implementado. En su sintaxis, solo los caracteres de espacio en blanco: espacio, tabulación y salto de línea tienen significado, todos los demás caracteres se ignoran. Como consecuencia, los programas de espacios en blanco pueden estar contenidos dentro de los caracteres de espacios en blanco de un programa escrito en otro idioma, o dentro de un archivo de texto sin formato.

En teoría, un programador podría escribir una novela alrededor de su código de espacio en blanco: el código aún funcionaría, pero la mayoría de la gente solo vería la novela, no el código de espacio en blanco subyacente.

Al ser un lenguaje de programación esotérico (esolang), Whitespace está creado para probar los límites del diseño del lenguaje de programación de computadoras, y no está destinado a ser utilizado para la programación convencional. Es simplemente una prueba de un concepto, con aplicaciones prácticas muy limitadas, ya que’apenas se usa en el mundo real.

Sin embargo, como demostrador tecnológico diseñado para demostrar que realmente podría tener un lenguaje de programación funcional basado en espacios en blanco en lugar de caracteres, definitivamente funciona. Desafortunadamente, Whitespace wasn’No está diseñado para nada más que eso. Fue una demostración técnica elaborada, no un lenguaje de programación diseñado para aplicaciones prácticas..

Los comandos en espacios en blanco, así como el código completo, están compuestos de secuencias de espacios, tabulaciones y saltos de línea. Por ejemplo, tab-space-space-space realiza la suma aritmética de los dos elementos superiores de la pila. El código se escribe en forma de un parámetro modificador de instrucción (IMP) seguido de la operación. El espacio en blanco tiene los siguientes IMP: “espacio” – manipulación de la pila, “espacio de tabulación” – aritmética, “tab-tab” – acceso al montón, “linea de alimentación” – control de flujo, “salto de línea” – de entrada y salida.

Los datos se representan en forma binaria, usando espacios para 0 y tabulaciones para 1, seguidos de un salto de línea, por ejemplo space-space-space-tab-tab-space-linefeed es el número binario 000110, que es 6 en decimal.

El siguiente ejemplo cuenta del 1 al 5 e imprime los números del 1 al 5, donde “S” representa el espacio, “T” – pestaña, y “L” – linea de alimentación:

SSSTL LSSSTSSSSTTL SLS TLST SSSTSTSL TLSS SSSTL TSSS SLS SSSTTSL TSST LTSSTSSSTSTL LSSSTSSSTSTL SLL LLL

Entradas relacionadas

Dejar un Comentario