El objetivo es escribir un programa que codifique otro programa (entrada) con la menor cantidad de caracteres posible.
Puntuación
- La puntuación es igual al número diferente de caracteres necesarios para la salida.
- Puntaje más bajo es mejor.
Reglas
- No hay idiomas de destino con un conjunto limitado de comandos. (Sin Brainf ** k, espacios en blanco, etc.)
Editar : quiero decir al menos 26 caracteres significativos,A
no cambia la forma en que funciona un programa brainf ** k, por lo que no puede contar este personaje. Lo mismo se aplica al espacio en blanco. - El idioma de destino debe existir en el momento en que se escribe esta pregunta.
- Debe incluir una pequeña explicación de cómo archiva su puntaje.
- El programa de entrada es válido.
- El programa codificado debe ser un programa válido en el mismo idioma que la entrada.
- El programa codificado debe hacer el mismo trabajo que el programa original.
- Su codificador debe funcionar para cada programa válido en ese idioma.
- Incluya algunas entradas y salidas de muestra.
Notas
- El codificador puede estar escrito en cualquier idioma, no solo en el idioma al que apunta.
- Esto no es código golf , se alientan los programas legibles.
- El gran objetivo es ver cuántos caracteres diferentes se necesitan para escribir algo en ese idioma. No permití BF, etc., porque no habría ningún desafío.
- Esto se inspiró en Imprimir una cadena con el menor número posible de caracteres distintos , podría tomarlo como metagolf para esa pregunta.
Ejemplo
En Java, puede usar \uXXXX
en su lugar otros caracteres. Una entrada válida codifica cada carácter de la entrada de esta manera. Esto tendría un puntaje de 18. ( \ 0-9a-f
)
Código en Tcl, codifica un programa Java:
set res {}
foreach char [split [read stdin] {}] {
append res [format \\u%04x [scan $char %c]]
}
puts $res
gets
lee una sola línea de entrada? Y te perdiste el u
codificador (pero, por otro lado, no necesitas el espacio y, por lo tanto, la puntuación sigue siendo la misma).