Por lo general, los políglotas se construyen de tal manera que cada idioma puede ignorar partes del código que están presentes para otros idiomas, envolviéndolos en literales de cadena, utilizando sintaxis de comentarios u otros trucos similares.
Su objetivo es escribir un políglota donde el resultado para cada idioma es el código del políglota que produce ese resultado. Específicamente, la salida debe construirse a partir del código políglota con solo eliminaciones, y debe ser una quine en el idioma dado.
Reglas
- Solo se permiten las quines adecuadas (no leer el código fuente, no tomar entradas, la salida debe ser a STDOUT o la alternativa más cercana si STDOUT no es una opción, y los programas deben consistir en más que solo literales que se imprimen implícitamente).
- Dado que diferentes idiomas pueden usar diferentes codificaciones, los bytes sin procesar son lo que importa aquí. Por ejemplo, si el idioma A usa UTF-8 y el idioma B usa CP437, el código (hexadecimal)
C3 88 46 47
seríaÈFG
para el idioma A yÈFG
para el idioma B. - Todas las salidas deben ser distintas (de nuevo, comparar bytes sin procesar). Esto evita complicaciones al tratar de restringir versiones de idiomas menores: si dos idiomas usan la misma parte del código para hacer lo mismo, no puede reclamarlos a ambos.
- Si tiene dos idiomas A y B, que
XY
son una salida válida en ambos, peroYZ
también es válida en B, puede elegirXY
como salida para A yYZ
como salida para B, por lo que puede reclamar ambos en su puntaje ( pero no puede reclamarXY
ambos idiomas debido a la regla anterior).
- Si tiene dos idiomas A y B, que
- Todas las salidas deben ser lo más cortas posible. Por ejemplo, si su código era
print('foo')#something
, para Python 3 (ignorando el hecho de que la salida no es correcta), el código que necesitaría generar seríaprint('foo')
, yprint('foo')#
no estaría permitido. Si hay varias cadenas de igual (mínima) longitud que producen la salida correcta, puede elegir cualquiera de ellas. - Los envíos deben ser políglotas en al menos 2 idiomas.
- Tu puntuación será dada por
(number of programming languages with distinct outputs)**3/(total byte size of polyglot)
. El puntaje más alto gana. En el caso de que dos presentaciones alcancen el mismo puntaje, la presentación que alcanzó ese puntaje primero ganará.