¡Felicitaciones a Dennis que ganó el desafío de los policías y los ladrones! Calvin's Hobbies ya cumplió su promesa y escribió este desafío para Dennis por ganar el desafío de los ladrones.
Aviso: este desafío está cerrado para obtener más respuestas de la policía a partir del 2015-09-01 02:00:00 UTC. Las nuevas respuestas publicadas no serán elegibles para ganar y no contarán para los puntajes de los ladrones si se descifran. Sin embargo, aún puede publicar nuevas respuestas para el disfrute de los demás usuarios, por lo que todavía hay algunos acertijos disponibles para futuros visitantes. Estas nuevas respuestas se incluyen en la sección "Policías Vulnerables" de la tabla de clasificación y su estado de no competencia se marca por separado.
¡Bienvenido a la edición de Cops-and-Robbers de The Hello World Quiz ! (Si nunca ha jugado el cuestionario, siéntase libre de probarlo por un minuto o 30. Sin embargo, no necesita haberlo jugado para este desafío).
El desafío de los policías
- Elige un lenguaje de programación. Los idiomas válidos deben tener un artículo de Wikipedia en inglés , un artículo de esolangs o un artículo de Rosetta Code en el momento en que se publicó este desafío (tenga en cuenta que las listas vinculadas no están necesariamente completas porque están seleccionadas manualmente). También deben satisfacer nuestros estándares habituales para los lenguajes de programación , por lo que no están disponibles cosas como HQ9 +. Por último, debe haber un intérprete o compilador gratuito (como en cerveza) disponible para el idioma (en el momento en que se publicó este desafío).
Escribe un programa Hello World. Es decir, escriba un programa completo en el idioma elegido que imprima
Hello, World!
(exactamente así, es decir, este flujo de bytes exacto) y, opcionalmente, una nueva línea final a STDOUT o la alternativa más cercana.No debe asumir un entorno REPL, un código estándar existente o indicadores de compilador / intérprete no estándar. El programa debe tener la forma de uno o más archivos de origen (para descartar lenguajes extravagantes como Carpetas ) y debe caber en su respuesta completa (por lo que no debe tener más de 30,000 caracteres); esto no debería ser un problema para Cualquier presentación seria.
Si su código contiene bytes fuera del rango ASCII imprimible, incluya un volcado de pastebin o hexadecimal para asegurarse de que su código sea realmente comprobable.
El programa debe finalizar en 1 minuto en una PC de escritorio típica.
Eso es. El problema es que desea ofuscar su código de modo que no sea obvio qué idioma eligió. También tenga en cuenta que no desea que su código sea accidentalmente un programa válido de Hello World en ningún otro idioma, aunque espero que sea poco probable para programas suficientemente ofuscados.
Bajo ninguna circunstancia debe editar el código fuente de su envío una vez publicado (ya que esto puede invalidar los intentos activos de los ladrones de descifrar su respuesta). Así que asegúrate de jugar golf tan bien como puedas (o atrévete) antes de publicar. Si se da cuenta de que su respuesta no funciona después de publicarla, simplemente elimine su respuesta y publique una versión fija si lo desea.
Si nadie encuentra un idioma en el que su código es válido durante 7 días, puede revelar el idioma elegido (idealmente con una explicación para su código ofuscado), lo que hará que su respuesta sea segura . Tenga en cuenta que su envío aún puede descifrarse hasta que revele el idioma.
El envío seguro más corto (en bytes) gana.
Formateo
(Siéntase libre de omitir esta sección y leer The Robbers 'Challenge si no planea participar como policía en este momento).
Al final de esta publicación, encontrará un Fragmento de pila que genera tablas de clasificación, así como una lista de envíos que aún pueden descifrarse. Para que el fragmento funcione, es importante que incluya un encabezado determinado en su respuesta:
Las nuevas respuestas deben incluir un encabezado como
# ???, [N] bytes
donde
[N]
es el tamaño de su código en bytes y???
debería aparecer literalmente.Si la respuesta no está descifrada durante 7 días y desea que su respuesta sea segura al revelar el idioma, simplemente reemplace el
???
, p. Ej.# Ruby, [N] bytes
Siéntase libre de tener el enlace del nombre del idioma a un sitio web relevante como una página de esolangs o un repositorio de GitHub. El enlace se mostrará en la tabla de clasificación.
Si otro usuario descifró con éxito su envío (consulte a continuación), agregue también el idioma, junto con un aviso como
# Ruby, [N] bytes, cracked by [user]
donde
[user]
está el nombre del usuario que envió el primer crack válido. Si el lenguaje utilizado en el crack es diferente del que usted pretendía, recomendaría usar la suposición de los ladrones y mencionar en la respuesta que pretendía que fuera otra cosa. Siéntase libre de hacer que el nombre de usuario sea un enlace a su página de perfil.
El desafío de los ladrones
- Encuentra una respuesta vulnerable. Esa es una respuesta, que aún no se ha descifrado y que aún no es segura .
Descifrarlo descubriendo su lenguaje. Es decir, encuentre cualquier idioma en el que el programa en cuestión sea un programa válido de Hello World (sujeto a las reglas descritas en El desafío de los policías anterior). No importa si este es el idioma que pretendía el policía.
Si ha encontrado ese idioma, deje un comentario con el nombre del idioma. Si es posible, debe incluir un enlace a un intérprete en línea, que muestre que el código realmente funciona en ese idioma según sea necesario.
Cada usuario solo obtiene una suposición por respuesta. No debes descifrar tu propia respuesta (obviamente ...).
El usuario que descifró la mayor cantidad de respuestas gana el desafío de los ladrones. Los lazos se rompen por la suma de bytes de respuestas descifradas (más es mejor).
Debido a que el desafío de los ladrones se lleva a cabo exclusivamente en los comentarios, no habrá ningún incentivo de reputación para los ladrones. Sin embargo, el Gran Maestro de Reto de Escritura, Calvin's Hobbies , se ha ofrecido amablemente a escribir un desafío sobre el usuario que gana el desafío de los ladrones.
Tablero de desafíos
El Fragmento de pila a continuación genera tablas de clasificación para los policías y ladrones y también enumerará todas las respuestas que aún pueden descifrarse. Avíseme si algo parece no funcionar correctamente e intentaré solucionarlo lo antes posible. Si puede pensar en características adicionales que harían más útil el tablero, deje un comentario también.
fuente
Respuestas:
Estela , 17 bytes
Según el sitio web oficial ,
Wake fue creado por shinh y puede probarse en su servidor de golf Anarchy Golf .
El código consta de una sola línea que contiene un objetivo / etiqueta y una acción. Como la acción es un literal de cadena, se imprime en STDOUT.
El uso
"
para el objetivo tenía dos propósitos:Proporciona protección políglota.
Impresión de clip y foo
:
; GolfScript y CJam generan un error de sintaxis debido a una cadena sin terminar.Proporciona un poco de incertidumbre acerca de cómo se supone que funciona el código.
fuente
":
es un prefijo de línea válido y que trata una cadena literal por sí misma en la línea real como un comando de salida. O 2: que es una sustitución de cadena y se<foo>:<bar>
elimina<foo>
de<bar>
. Ectoforte, de la página wiki de esolangs Forte, satisface 1 pero el intérprete vinculado rompe con una comilla doble en la etiqueta y no sé si realmente cuenta como un idioma.TinyBF , 708 bytes, agrietado por kirbyfan64sos
Esto fue muy divertido. Todos saben que solo puedo escribir un idioma;)
Explicación
En primer lugar, esto tardó muchas horas en realizarse, ¡así que estoy abrumadoramente encantado por todas las reacciones positivas e intentos de descifrarlo!
Como se señaló en los comentarios, cuando se compila en C, el código se imprime
Gotcha!
seguido de una nueva línea, pero cuando TinyBF imprime lo deseadoHello, World!
. TinyBF es un derivado sencillo de Brainf ** k que sustituye a sus 8 comandos con sólo 4:+ > | =
. Como todos los demás personajes son ignorados, podría escribir un programa en C con muchos operadores innecesarios para tratar de guiar a las personas en la dirección incorrecta (que, para mi sorpresa, funcionó bastante bien). Aquí está el código puro de TinyBF:Aquí está el mismo programa, escrito en BF ordinario:
Puede usar este intérprete para convertir de BF a TinyBF y ejecutar el código.
fuente
main()
. ¿Podría ser C? http://codepad.org/pj9mQgyQ (Como una nota: SalidasGotcha!
)I,c,o,d,e,C;i;main()
se ignoraría (además de,;
pero no parece importante), y la gran cantidad de los!
cuales se utilizan para generar caracteres ASCII podría ser una señal de que es esto. Sin embargo, no puedo descargar el intérprete de Fission y comprobarlo ahora.malvado , 658 bytes, descifrado por Sp3000
El mal es un viejo esolang un poco como BF. Los comandos son todas letras minúsculas y otros caracteres simplemente se ignoran.
Primero, generé un breve programa de hello world en mal usando Python:
Luego, nuevamente usando Python, lo transformé en una cadena base64:
Que decodifica en letras puramente minúsculas:
Agregué algunas otras cosas a la cadena base64, luego la escribí como el programa Python anterior.
El shebang es realmente importante en el programa. El
s
antes deb
insbin
omitirá elb
comando. Luego,f
infortran
escaneará hacia adelante hasta el siguientem
carácter, que está en la cadena base64.fuente
aeeeaeee...
se mezclan con caracteres aleatorios, de modo que la cadena resultante es una cadena base64 válida. Elegí los caracteres aleatorios de modo que la cadena resultante decodifique en base64 a letras minúsculas, pero la cadena decodificada es realmente irrelevante, es solo una distracción. Lo único que importa es que evil ejecutará la cadena base64, pero ignorará las letras mayúsculas y algunas letras minúsculas ya que no son comandos, dejando el programa hello world.Lua,
29202865 Bytes, agrietado por jimmy23013Ayer aprendí este idioma, así que perdona los errores de sintaxis.
Advertencia: Imprime "¡Hola, mundo!" y luego sale con un error
Explicación:
En Lua, - [[significa comentario de varias líneas, - significa comentario de una línea, y [[es una cadena de varias líneas.
Si se desplaza hacia un lado en la primera línea, verá un p = [[. Esto define una cadena de líneas múltiples que va desde "Romeo, un hombre joven" hasta "Dejarlos]]", que la mayoría de la gente echa un vistazo, pero en realidad está terminando la cadena de líneas múltiples. Luego tenemos print, que es la función print, y luego "-" hace que el resto de la línea sea un comentario. Necesitamos poner algo de espacio entre la impresión y el Hello World para que no lo regalemos, así que tenemos un comentario de varias líneas: "- [[Romeo está sollozando, disgustado por su vida] - Eres tan picante como el hedor de una cabra. ¡Di lo que piensas! [[Exeunt Romeo]] "The]] al final termina el comentario de varias líneas, y en la línea después de" ¡Hola, Mundo! " y luego el resto de la línea se comenta con un -.
fuente
Hello, world!
, noHello, World!
.TRANSCRIPCIÓN , 39 bytes
Aquí hay uno agradable y simple.
¡Primer policía seguro! Me sorprende que este haya durado hasta el final: intenté elegir un idioma que sería difícil de buscar directamente, pero que sería más fácil de descifrar si pudieras adivinar el tema.
TRANSCRIPT es un esolang basado en juegos de ficción interactivos. Tiene NPC (cadenas) y objetos (enteros). Aquí
End
está el nombre de un NPC.La primera línea declara el NPC con la sintaxis
<name> is here.
. La segunda línea luego asigna al NPC la cadena"Hello, World!"
, y la tercera línea imprime la cadena usando elX / EXAMINE
comando. No hay mucho espacio para la ofuscación aquí, así que todo lo que hice fue elegir algo que generalmente no es un nombre para el NPC.Para probar que TRANSCRIPT es un lenguaje válido para este desafío, aquí hay un programa que verifica si un número natural de entrada es primo o no:
Como nota al margen, en realidad he estado nervioso desde la suposición de @ aditsu, que estaba muy cerca. Inform 7 es un lenguaje para crear juegos de ficción interactivos, que ni siquiera sabía que existían.
Como tributo al intento de aditsu, probé con Inform 7:
Y aquí hay una muestra de ejecución:
fuente
Headsecks , 637 bytes, descifrados por Dennis
Headsecks es una codificación a BF a través de puntos de código módulo 8. El programa anterior, cuando se convierte, proporciona
Hay muchos pares inútiles como
+-
o<>
allí, y quitarlos les daPuede notar que algunos bucles tienen
,
(entrada) en ellos: estos bucles nunca se ejecutan, y simplemente sirven para agregare
s a un programa que, de lo contrario, habría tenido soloa
s yi
s como sus vocales.La sintaxis, los backticks, los extraños
)
, etc., fueron pistas falsas.fuente
herrings are red
??? , 344 bytes, descifrado por jimmy23013
Aquí hay un hexdump del archivo:
Comencé con un programa Piet que imprime
Hello, world!
. La imagen en sí contenía algunos válidos ??? instrucciones (,,,!;
), pero no lo suficiente como para causar problemas.El seguimiento ??? El programa produce el resultado deseado y termina con las instrucciones que se encuentran en la imagen:
Para ocultarlo dentro de la imagen, aumenté el número de colores en la paleta global de 32 a 64 (esto es lo que especifica el byte 0x85 en la primera línea) y reemplacé los primeros 110 bytes de los colores no utilizados en la paleta con los primeros 110 bytes del ??? programa.
El resultado es el primer Piet / ??? polígloto.
fuente
w
y conociendo a Dennis, probablemente no sería tan fácil: P??? , 1052 bytes, descifrado por Alex A.
fuente
Treehugger , 284 bytes, descifrado por Sp3000
Este programa se ejecutará en al menos 4 idiomas. Sin embargo, solo uno de ellos produce el resultado correcto ...
Explicación:
Después de quitar todos los caracteres ignorados, obtienes esto:
Eliminar algunas combinaciones de caracteres no opcionales produce esto:
Que es esencialmente una traducción del Brainf *** "¡Hola Mundo!" pero con un código extra (
<++++++++++++++++++++++++++++++++++++++++++++.^
) para agregar en la coma.fuente
HelloHelloHello
en Thue^
era significativa, y por alguna razón no está categorizada como un derivado de BF.Estrellado , 3039 bytes, agrietado por Sp3000
Aquí hay algo para comenzar.
Primero, Starry ignora todo excepto los espacios y
+*.,`'
. Así que vamos a deshacernos de toda esa basura:Ahora cada cadena de espacios seguida de un no espacio es un comando. La semántica del comando está determinada por el número de espacios y qué no espacio se utiliza. Para empezar, los backticks solo crean etiquetas a las que nunca saltamos, por lo que podemos deshacernos de ellas:
En este punto, este es casi exactamente el ejemplo de Hello World en la página de esolangs , excepto que tuve que modificarlo para obtener mayúsculas
W
.Entonces, para ofuscarlo, primero agregué los backticks, porque no causaron ningún problema (no pude agregar
,
o'
, porque son entradas y saltos, respectivamente). Y luego agregué caracteres aleatorios que no sean los reservados, de modo que la frecuencia de todos los caracteres que no son espaciales es más o menos la misma.fuente
Brainfuck , 2545 bytes, descifrado por Sp3000
Solo por diversión.
fuente
Fisión , 67 bytes, resquebrajado por BrainSteel
Aquí hay otro, que debería ser un poco más simple.
fuente
R
en el métodowrite
es capital a propósito?Q , 64 bytes, descifrado por Mauris
Explicación:
KDB + tiene su propio protocolo de mensajes / formato de serialización , que puede aplicarse a cadenas como tales:
Eso nos da la larga cadena hexadecimal arriba. La conversión, si aún no lo ha adivinado, es
-9!
.Para imprimirlo
Hello, World!
exactamente, necesito usarlo-1
para hacerlo. Un poco molesto, el número en sí también se imprimirá, por lo que el;
carácter final se usa para suprimir eso.(¡ fue una buena carrera por poco más de 2 días! )
fuente
Logotipo , 14292 bytes, agrietado por Gareth McCaughan
Explicación:
make
asigna un valor a una variable. En este casomake 'clean
es solo ofuscación, asignar una lista entre corchetes a una variableclean
y luego no hacer nada con ella.type char count
se usa para imprimir un carácter basado en el número de elementos dentro de la lista entre corchetes que le sigue.type
imprime un valor,char
devuelve un carácter basado en un valor ASCII ycount
devuelve el número de elementos en una lista. Entonces, por ejemplotype char count [ a b c d e f g h i j ]
, imprimirá un carácter de nueva línea (valor ASCII 10).Pruébelo en línea aquí (se requiere cortar y pegar la fuente)
fuente
Hello, world!
. +1~ Inglés revisado , 36 bytes
Esta respuesta contiene protección contra SPSS, Foo y Tiny. suspiros
¡Cuatro intentos y otra respuesta en el mismo idioma , pero mi presentación finalmente está a salvo!
Explicación
~ El inglés está diseñado para parecerse a un texto sin formato, lo que probablemente sea la razón por la cual la segunda versión no agrega 2 sino que se revisa con el nombre del idioma.
Afortunadamente, hay alias de las funciones
Display
yStop
, que hacen que ~ English no se parezca a English.De esos alias, elegí
Echo
yEnd
, que, junto con la palabra claveand
, hacen que el código fuente se parezca a un lenguaje de script detallado en lugar de un esolang.La frase
saluda al mundo y
detiene la ejecución, por lo que el intérprete simplemente ignora la siguiente protección de Foo .
Puede descargar el intérprete oficial de GitHub (vinculado en la página de Esolang).
fuente
Karma , 67 bytes
La primera línea empuja todos los caracteres a la pila, usando la cola para guardar algunos bytes. La segunda línea aparece e imprime hasta 0, que es el primer carácter en la línea 1.
fuente
gs2, 3 bytes, agrietado por feersum
En
gs2
:e
o\x65
estáproduct
en listas (como la lista vacía de caracteres que representan STDIN), por lo que empuja un int1
.|
o\x7c
espower-of-2
, que lo cambia a 2 1 = 2.h
o\x68
eshello
, que es un comando ridículo . La historia es la siguiente: al diseñargs2
, me propuse superar todos los lenguajes de golf de código en el servidor de golf de shinh, perogoruby
tiene un comando de huevo de pascuah
que se imprimeHello, world!
(tenga en cuenta la w minúscula), lo que le permite reclamar el lugar # 1 en el mundo hola tablas de clasificación del desafío . Quería unir goruby, así que agregué mi propio comando de huevo de pascuah
que empujaHello, world!
a la pila, pero le permite personalizar las mayúsculas y la puntuación presionando un entero antes:Como se puede ver observando la
s2 =
línea, si hay un número2
en la parte superior de la pila, se obtendrá reemplazada por la variación en mayúsculas-W:Hello, World!
.fuente
U+2062 INVISIBLE TIMES
caracteres, que son invisibles, pero no espacios en blanco, por lo que rellenan la longitud de la publicación a más de 30 caracteres.maurisvh authored 5 days ago
> <>, 353 bytes, agrietado por Sp3000
Como descubrió Sp3000, este es un programa> <>. Todos los espacios en blanco no utilizados y los caracteres reemplazados por. carácter de legibilidad.
fuente
MarioLANG , 549 bytes, descifrado por Sp3000
Realmente lo disfruté. Aquí hay una descripción general rápida de cómo creé el código:
Empecé desde Brainfuck "¡Hola, mundo!" en esolangs:
Tuve que modificarlo un poco para agregar la coma, pero ignoremos los detalles ...
BF se puede convertir en ML con bastante facilidad: el cambio
>
y<
a)
y(
, respectivamente. Agregue un piso principal debajo del programa. Luego implemente bucles a través de pisos auxiliares y ascensores. Eso convierte el programa anterior en:Este es un "Hola Mundo!" programa en MarioLANG. (Este código corresponde al "Hello World!" Incorrecto en esolangs, no al código ML ofuscado anterior).
En este punto, podemos jugar un poco al código, moviendo parte del código del bucle al piso auxiliar. Ahora estoy cambiando al código real de esta respuesta:
Y ahora la ofuscación real:
=
supuse que sería un regalo muerto para Sp3000 que conocía el idioma (lo había usado en Evolution of OEIS). Pero MarioLANG también tiene "paredes" en lugar de "pisos", representados por|
. Sin embargo, estos son funcionalmente idénticos, por lo que utilicé el carácter menos común. También pensé que el piso colgante parecería sospechoso, así que rellené las dos líneas con otros personajes. Por si acaso, agregué la primera línea nuevamente al final, e hice que el relleno en la línea central los caracteres opuestos de la primera línea. También agregué corchetes coincidentes (que son ignorados por MarioLANG), porque pensé que un inigualable[
podría ser otra pista fuerte. Finalmente, escribí un script de CJam para rociar exactamente 13=
en posiciones de piso aleatorias (13, porque eso 'Hello, World!
) y cambió los caracteres de relleno en la cuarta fila paraHelo, Wrd!
que parezca que estoy leyendo los caracteres del código fuente, como podría ser una respuesta de Befunge. Voilà, ofuscado MarioLANG! :)fuente
ULDR
para iniciar cualquier flujo de control. Entonces no. ;)NO BABTIZADO , 77 bytes
Verificación
Puede encontrar el sitio web oficial y el intérprete aquí .
Como se señaló en el sitio web, el intérprete fue escrito para Python 2.2, que permitía caracteres no ASCII en el código fuente. Puede descargar Python 2.2.3 1 o arreglarlo para Python 2.7 insertando la siguiente línea al comienzo del intérprete:
Cómo funciona
En primer lugar, no se debe permitir el espacio en blanco en el código fuente de acuerdo con el sitio web, pero el espacio en blanco después de una instrucción completa parece no causar problemas.
El comando se
$0,0
ejecutamemory[0] = memory[0] == memory[0]
, lo que no ayuda a saludar al mundo de ninguna manera. He agregado este comando únicamente para distraer el hecho de que.
actúa como separador de declaraciones.El resto del código está compuesto por trece
:x
comandos, que escriben el carácter con el punto de código x en STDOUT.Una versión no ofuscada del código fuente se vería así:
1 Compilar Python 2.2.3 fue sorprendentemente sencillo en openSUSE 13.2.
make
,make install
y el ejecutable resultante imprimió muchas advertencias, pero UNBABTIZED funcionó según lo previsto.fuente
FUEUE: UNKNOWN , OP
14 veces, entoncesHHeelllloo,, WWoorrlldd!!
, sin salir del programa.$
comienza un literal de Python, lo que genera un error de sintaxis.Subleq superior , 52 bytes, descifrado por John WH Smith
Esto realmente no se parece a un esolang, pero no se implementaría
puts
un derivado C sano sin una nueva línea implícita.fuente
Mascarpone, 30 bytes, descifrado por Sp3000
¿Basado en pila? Tal vez...
[!dlroW ,olleH]
empuja todos esos caracteres a la pila (sí, incluidos los delimitadores);$
aparece el]
; y luego.
cada uno imprime un carácter. El programa sale con un[
personaje todavía en la pila.Hubiera hecho que la salida usara un bucle, pero no puedo entender cómo funcionan ...
fuente
$
aparece el]
que por alguna razón se empujaGiro , 12302 bytes, agrietado por Artyom
Whirl ignora todo excepto 1 y 0. También modifiqué otros dígitos al azar, pero no son relevantes. Cuando mantienes solo 1 y 0, obtienes un "¡Hola, mundo!" ejemplo :)
fuente
GNU bc, 36 bytes
Una versión Foo- inmune de mi intento anterior .
Esto requiere la versión GNU (o cualquier otra versión que tenga la
print
función) de bc. La primera línea es para la ofuscación: en bc las variables no tienen que declararse y se inicializan0
, por lo que tenemos una asignación inútil pero con una sintaxis válida. La segunda línea simplemente imprimeHello, World!
.fuente
module
o unapackage
palabra clave, así que supongo que no se compilará. Quizás funcione en REPL, pero eso no está permitido.main = do:
).Chef, 1943 bytes, descifrado por Angew
fuente
APL, 39 bytes, descifrado por Mauris
La eficiencia lo es todo.
Esto funciona en la demostración ngn-apl .
Ofuscar APL no es una tarea fácil si la intención es hacer que se parezca menos a APL.
Esto es lo que logré:
Las comillas dobles no funcionan en todos los dialectos. Dyalog, por ejemplo, no los admite.
ngn / apl es el único dialecto que conozco que usa indexación basada en cero por defecto.
No se supone que las comas estén allí.
Los elementos vectoriales generalmente están separados por espacios al escribir APL. Sin embargo, se
,
concatena para que el código dentro de los corchetes concatene 13 singletons.Una versión (ligeramente) no ofuscada y más portátil del código se vería como
que funciona en TryAPL , GNU APL.js y la demostración ngn / apl .
fuente
ngn-apl
al menos)Ratón , 105 bytes
Puede obtener un intérprete para Mouse escrito en C aquí .
El mouse usa la notación polaca inversa, por lo que los operadores siguen los operandos. (Piense Lisp al revés). La asignación de variables se realiza utilizando
<variable>:
y recuperando el valor de una variable se realiza como<variable>.
. Todos los valores en Mouse son enteros.!
genera un entero y!'
genera el carácter ASCII asociado con el entero. Toda la salida va a STDOUT.Por alguna razón, todos los programas válidos deben terminar con
$
.fuente
Haskell , 637 bytes
Video de desofuscación
fuente
Wordfuck , 1063 bytes, descifrado por Martin Büttner
Tenga en cuenta que las terminaciones de línea deben ser de estilo Unix.
fuente
Wordy , 3279 bytes
Como insinué en los comentarios, este pajar es principalmente aguja.
Podemos saludar al mundo ejecutando las siguientes instrucciones:
Wordy codifica todas las instrucciones como oraciones, donde la fracción de palabras que son más largas y más cortas que el promedio redondeado selecciona el comando.
Las oraciones más cortas que pude encontrar para las instrucciones utilizadas son:
Pero, ¿cómo se puede ocultar el hecho de que la longitud de las palabras es lo único importante en el código fuente?
Ni el orden de las palabras ni los caracteres elegidos son importantes, siempre que sean alfanuméricos, por lo que decidí agregar caracteres aleatorios no alfanuméricos a cada palabra para rellenarlos a todos en la misma longitud. También agregué algunas no palabras (sin caracteres alfanuméricos) para darle al código fuente su agradable forma rectangular.
He generado el código fuente final usando este programa CJam .
fuente