Desafío:
Escriba un código que, cuando se ejecute, generará el código fuente de un segundo programa que se puede ejecutar en otro idioma. El segundo programa debe generar el código fuente de un tercer programa que se puede ejecutar en un tercer idioma, etc. El último programa debería salir PPCG
con una nueva línea final opcional.
El ganador será la presentación con la mayoría de los idiomas. La longitud del código del primer programa será el desempate.
Reglas importantes:
- Ningún programa puede ser idéntico
- Cada idioma solo debe funcionar en uno de los códigos fuente. Debería ser imposible usar el mismo lenguaje en dos lugares de la cadena sin romperlo (ver ejemplos) .
- Una cadena acortada no es una cadena rota. Si puede usar un idioma en un lugar diferente al previsto y el resultado final sigue siendo PPCG, entonces no es válido
- Todas las versiones de un idioma cuentan como idiomas únicos (pero tenga en cuenta la regla número 2)
Ejemplos:
Un envío no válido:
print("""print'disp("PPCG")'""")
- Python 3:
print("""print'disp("PPCG")'""")
impresionesprint'disp("PPCG")'
- Python 2:
print'disp("PPCG")'
impresionesdisp("PPCG")
- Octava:
disp("PPCG")
impresionesPPCG
Esto funciona correctamente, pero: puede ejecutar el primer y el segundo código en Python 2 sin romper la cadena, por lo que esto viola la regla número 2.
Una presentación válida con puntaje 3:
print("""print'disp("PPCG")'""")
- Python 3:
print("""print'disp("PPCG")'""")
impresionesprint'disp("PPCG")'
- Perl:
print'disp("PPCG")'
impresionesdisp("PPCG")
- Octava:
disp("PPCG")
impresionesPPCG
Este es exactamente el mismo código que el ejemplo no válido. La diferencia es que hemos elegido idiomas que se adhieren a la regla número 2: no puede ejecutar el primer código en Perl / Octave, el segundo código en Python 3 / Octave ni el último código en Python 3 / Perl. Esto es válido aunque Python 2 puede ejecutar los dos primeros programas, porque no hemos usado Python 2 como uno de los lenguajes.