stringtranslate.com

Lenguaje de programación Shakespeare

El lenguaje de programación Shakespeare ( SPL ) es un lenguaje de programación esotérico diseñado por Jon Åslund y Karl Wiberg. [1] Al igual que el lenguaje de programación Chef , está diseñado para hacer que los programas parezcan algo más que programas: en este caso, obras de Shakespeare .

Una lista de caracteres al principio del programa declara una serie de pilas , naturalmente con nombres como "Romeo" y "Julieta". Estos caracteres entran en un diálogo entre sí en el que manipulan los valores más altos de cada uno, se empujan y se quitan mutuamente, y realizan operaciones de E/S . Los caracteres también pueden hacerse preguntas que se comportan como declaraciones condicionales . En general, el modelo de programación es muy similar al lenguaje ensamblador , pero mucho más detallado.

Programación en Shakespeare

Título

La primera línea de un programa de Shakespeare se denomina "título". El compilador considera que todo lo que se encuentra entre la primera línea y el primer punto es un comentario.

Personajes dramáticos

Esta es la sección donde se declaran las variables. Cada variable puede contener un valor entero con signo y tiene el siguiente formato:

Nombre, Descripción

Donde Namees el nombre de la variable y Descriptionel compilador lo ignora. El compilador reconocerá únicamente aquellos nombres que correspondan a personajes reales de Shakespeare. [1]

Actos y escenas

En Shakespeare, un fragmento de código se divide en Actslos Scenescaracteres (variables) que interactúan entre sí. Cada uno Actde ellos Scenese numera con un número romano y sirve como GOTOetiqueta. Cualquier código después de los dos puntos se considera un comentario. Se escriben en la forma:

Acto I: Los insultos y halagos de Hamlet.Escena I: El insulto a Romeo.

Entrar, salir y salir

Las líneas de código individuales generalmente toman la forma de un fragmento de diálogo hablado por un personaje a otro; así es como se asigna, cambia o muestra el valor de una variable (el personaje al que se habla). A un personaje solo se lo puede dirigir como "Tú", "Tú" o "A tí". Por lo tanto, normalmente debe haber exactamente dos personajes "en el escenario" cuando se dicen líneas: uno para hablar y el otro para que se hable. [1] Para llamar a una variable al escenario, Enterse utiliza el comando con una lista de uno o más personajes. El Exitcomando le dice exactamente a un personaje de la lista que abandone el escenario. Exeuntllama a más de un personaje para que abandone el escenario o, en el caso de que no haya personajes en la lista, todos los personajes abandonarán el escenario. [1] Se utiliza el siguiente formato:

[Entra Julieta][Entran Romeo y Julieta][Sale Romeo][Salen Romeo y Julieta][Salen]

Pauta

Las líneas se representan como un diálogo hablado por un personaje y constan de al menos una oración. Cada oración puede asignar un nuevo valor a una variable, indicar a una variable que emita su valor o indicarle que reciba una entrada. Las líneas también pueden manipular pilas o actuar como declaraciones if/then o goto. Una línea comienza con el nombre de un personaje y dos puntos. Dado que este personaje es el que habla, el otro personaje en el escenario es la variable a la que se le llama "Tú", "Tú" o "Tú".

Constantes y asignación de valores

Las constantes se representan mediante combinaciones de sustantivos y adjetivos; el lenguaje reconoce una lista finita de cada uno, y ambas listas se separan en aquellas que tienen un tono positivo, negativo o neutro, como lo perciben Åslund y Hasselström. Los sustantivos positivos y neutros tienen un valor de 1 y los sustantivos negativos tienen un valor de -1. Cualquier adjetivo multiplica un sustantivo por 2, y los adjetivos pueden ser compuestos. [1] El analizador sintáctico ignora los pronombres posesivos, mientras que las palabras relacionadas con la aritmética básica se reconocen como operaciones, como "suma", "cociente" y "cubo". Una oración que asigna un valor a un carácter comienza con "You", "Thou" o "Thee", puede continuar opcionalmente con "are as [cualquier adjetivo] as", y luego da la fórmula matemática en sustantivos, adjetivos, variables y operaciones para el nuevo valor. A continuación, se ofrecen ejemplos de tales líneas: [1]

Aldea: ¡Eres un cobarde estúpido, mentiroso, huérfano, maloliente y medio tonto!Julieta: ¡Eres tan villano como la raíz cuadrada de Romeo!

Las fórmulas matemáticas también pueden utilizar los nombres de otros personajes (incluso si esos personajes no están en el escenario) para utilizar el valor actual de ese personaje en un cálculo, o "usted mismo" o "tí mismo" para el personaje al que se le habla.

Entrada y salida

Las líneas también pueden requerir que una variable proporcione una salida o reciba una entrada. "Abre tu corazón" genera el valor numérico de la variable, mientras que "Di lo que piensas" genera el carácter ASCII correspondiente. "Escucha a tu corazón" o "Abre tu mente" hacen que la variable reciba una entrada del usuario; la primera para un número y la segunda para un carácter. [1]

Sentencias condicionales y gotos

Una declaración if/then se formula como una pregunta planteada por un personaje. Las palabras "como [cualquier adjetivo] como" representan una prueba de igualdad, mientras que "mejor" y "peor" corresponden a mayor que y menor que, respectivamente. Una línea posterior, que comienza con "si es así" o "si no", determina qué sucede en respuesta a la verdad o falsedad de la condición original. Una declaración goto comienza con "Permítanos", "Debemos" o "Debemos", continúa con "regresar a" o "proceder a", y luego da un acto o escena. Una escena se analizará como esa escena en el acto actual; una declaración goto no puede llamar a una escena en un acto diferente. [1] Una declaración condicional para llamar a un goto se vería así: [1]

Julieta: ¿Soy mejor que tú?Aldea: Si es así, pasemos a la escena II.

Empujando y haciendo estallar pilas

Cada variable es una pila . Si una línea le dice al personaje que "recuerde" un valor apropiado, como "Recuérdame" o "Recuérdate a ti mismo", se agregará un entero a la pila de una variable. El valor más alto de la pila se elimina (es decir, la variable asume este valor) si se le dice al personaje que "recuerde" algo; todo el texto después de esta palabra se trata como un comentario. [1]

Código de ejemplo

El programa estándar "¡Hola, mundo!" :

La idea es generar los valores ASCII de cada carácter de la cadena e imprimirlos utilizando el comando "Speak your mind". Por ejemplo, la primera línea de diálogo dicha por Hamlet utiliza una combinación de operaciones aritméticas para asignar el valor decimal 72 (binario 1001000) al otro protagonista Romeo, que en ASCII corresponde a la letra 'H'.


No adiós, obra de teatro en dos actos.Romeo, un joven con una paciencia notable.Julieta, una mujer igualmente joven de gracia notable.Ofelia, una mujer notable, muy en disputa con Hamlet.Hamlet, el adulador de Andersen Insultante A/S. Acto I: Los insultos y halagos de Hamlet. Escena I: El insulto a Romeo.[Entran Hamlet y Romeo]Aldea: ¡Eres un cobarde estúpido, mentiroso, huérfano, maloliente y medio tonto! Eres tan estúpido como la diferencia entre un guapo rico y valiente. ¡Héroe y tú mismo! ¡Di lo que piensas! Eres tan valiente como la suma de tus pequeños y gordos peluches mal usados ​​y polvorientos. vieja bragueta podrida y un hermoso verano soleado, cálido y pacífico. día. Eres tan saludable como la diferencia entre la suma de los ¡La rosa más dulce y roja, mi padre y tú! ¡Di lo que piensas! Eres tan cobarde como la suma de ti mismo y la diferencia. Entre un reino grande, poderoso y orgulloso y un caballo. Di lo que piensas. ¡Di lo que piensas![Sale Romeo] Escena II: Elogio de Julieta.[Entra Julieta]Aldea: Eres tan dulce como la suma de la suma de Romeo y su caballo y su ¡Gato negro! ¡Di lo que piensas![Sale Julieta] Escena III: Elogio de Ofelia.[Entra Ofelia]Aldea: Eres tan hermosa como la diferencia entre Romeo y el cuadrado. de un enorme árbol verde y pacífico. ¡Di lo que piensas! Eres tan encantadora como el producto de una gran ciudad rural y mi increíble Monedero bordado sin fondo. ¡Di lo que piensas! Eres tan amoroso como el producto del cielo más azul, más claro y más dulce. y la suma de una ardilla y un caballo blanco. Eres tan hermosa como La diferencia entre Julieta y tú. ¡Di lo que piensas![Salen Ofelia y Hamlet] Acto II: A espaldas de Hamlet. Escena I: La conversación de Romeo y Julieta.[Entran Romeo y Julieta]Romeo: Di lo que piensas. Estás tan preocupado como la suma de ti mismo y el mundo. Diferencia entre mi pequeño hámster liso y mi nariz. Di tu opinión ¡mente!Julieta: ¡Di lo que piensas! ¡Eres tan malo como Hamlet! ¡Eres tan pequeño como el... diferencia entre el cuadrado de la diferencia entre mi pequeño pony y tu gran perro peludo y el cubo de tu pequeño y lamentable bragueta. ¡Di lo que piensas![Sale Romeo] Escena II: La conversación de Julieta y Ofelia.[Entra Ofelia]Julieta: Eres tan bueno como el cociente entre Romeo y la suma de un pequeño Animal peludo y sanguijuela. ¡Di lo que piensas!Ofelia: Eres tan repugnante como el cociente entre Romeo y el doble de ¡Diferencia entre un muérdago y una ampolla infectada y supurante! Habla ¡tu mente![Salen]

Véase también

Referencias

Referencias en línea

  1. ^ abcdefghij "El lenguaje de programación de Shakespeare". Archivado desde el original el 21 de julio de 2022.

Referencias generales

Enlaces externos