stringtranslate.com

Espacio en blanco (lenguaje de programación)

Programa de hola mundo con espacios en blanco y resaltado de sintaxis
  cortina a la italiana
  espacios

Whitespace es un lenguaje de programación esotérico con una sintaxis en la que solo los caracteres de espacio en blanco ( espacio , tabulación y salto de línea ) tienen significado, a diferencia de los lenguajes típicos que ignoran en gran medida los caracteres de espacio en blanco. [1] [2]

Como consecuencia de su sintaxis, el código fuente de espacios en blanco puede estar contenido dentro de los espacios en blanco del código escrito en un lenguaje que ignora los espacios en blanco, lo que hace que el texto sea políglota . [2]

Whitespace es un lenguaje imperativo basado en pilas . El programador puede insertar valores enteros de ancho arbitrario en una pila y acceder a un montón para almacenar datos.

Los creadores de Whitespace proporcionan un intérprete , junto con su código fuente Haskell .

Historia

Edwin Brady y Chris Morris, quienes también desarrollaron los lenguajes Kaya e Idris , crearon Whitespace en 2002 en la Universidad de Durham . Slashdot publicó una reseña el Día de los Inocentes de 2003. [3]

La idea de utilizar caracteres de espacio en blanco como operadores para el lenguaje C++ había sido sugerida jocosamente cinco años antes por Bjarne Stroustrup . [4]

Sintaxis

Los espacios en blanco definen un comando como una secuencia de caracteres de espacio en blanco. Por ejemplo, [Tab][Space][Space][Space]realiza una suma aritmética de los dos elementos superiores de la pila.

Un comando se escribe como un parámetro de modificación de instrucción (IMP) seguido de una operación y luego cualquier parámetro. [1]

Las secuencias IMP incluyen:

Las secuencias de operadores, organizadas por IMP, incluyen: [1]

Las operaciones de copia y deslizamiento se agregaron en Whitespace 0.3. [1]

Comentarios

Los caracteres que no sean space, taby linefeedse ignoran y, por lo tanto, pueden usarse para comentarios.

Números

Un valor numérico se representa como una secuencia de caracteres spacey tabque representan 0 y 1 respectivamente y terminan con un linefeed. El primer carácter representa el signo del valor, spacepara positivo y tabpara negativo. Los caracteres posteriores antes del terminador representan los dígitos binarios de un valor.

Por ejemplo:

Etiquetas

Una etiqueta se utiliza para el flujo de control . Es una linefeedsecuencia de caracteres spacey terminada en tab. Como solo hay un espacio de nombres, todas las etiquetas deben ser únicas. [1]

Código de muestra

El código fuente siguiente corresponde a un programa de espacios en blanco "¡Hola, mundo!" . Para mayor claridad, se anota con S, Ty Lantes de cada space, tab, y linefeed.

S  S  S  T S  S  T S  S  S  L:Push_+1001000=72='H'_en_la_pilaT- LS  S  :Salida_'H';_S  S  S  T S S T S T S T L:Push_+1100101=101='e'_en_la_pila   T- LS  S  :Salida_'e';_S  S  S  T T S T  T S S  L  :+1101100=108='l'T- LL  :  + 1101100 = 108 = '  l '​​​     T- LS  S  S  S  S  T S T T T T T L :+1101111=111='o' T- LSSSSSTSTSTSTSLSL  : + 101100 = 44 = ' , '       T- LS S  S  S  S  T  S S  S  S  S  L  :+100000=32=EspacioT- LSSSSSSSTTTTSTTT L : + 1110111 = 119 = ' w ' ​​     T- LS  S  S  S  S  T S T T T T T L :+1101111=111='o' T- LSSSSSTTTSTSLTSL : + 1110010 = 114 = ' r '        T- LL  :  + 1101100 = 108 = '  l '​​​     T- LSSSSSTSTSTSTSLSLT = + 1100100 = 100 = ' d ' ​​​        T- LSSSSSTSSSTSTSLT  L : + 100001 = 33 = ' ! '        T- LS  S  :Salida_'!';_LyoL:Finalizar el programa

Cuando se muestra el código fuente de espacios en blanco en algunos navegadores, el espaciado horizontal producido por un carácter de tabulación no es fijo, sino que depende de su ubicación en el texto en relación con la siguiente posición de tabulación horizontal . Según el software, los caracteres de tabulación también pueden reemplazarse por la cantidad variable correspondiente de caracteres de espacio.

Referencias

  1. ^ abcde "Espacio en blanco". Compsoc . Archivado desde el original el 18 de junio de 2015 . Consultado el 8 de diciembre de 2015 .
  2. ^ ab Parker, Matt (2019). Humble Pi: una comedia de errores matemáticos . Allen Lane. pág. 21. ISBN 978-0-241-36023-1.
  3. ^ Timothy (1 de abril de 2003). "Nuevo lenguaje de programación que sólo utiliza espacios en blanco". Slashdot . Consultado el 23 de enero de 2014 .
  4. ^ Stroustrup, Bjarne. "Generalizing Overloading for C++2000" (PDF) . Florham Park, NJ, EE. UU.: AT&T Labs . Consultado el 23 de enero de 2014 .

Enlaces externos