O objetivo é escrever um programa que codifique outro programa (entrada) com o menor número possível de caracteres.
Pontuação
- A pontuação é igual ao número diferente de caracteres necessários para a saída.
- Menor pontuação é melhor.
Regras
- Não há idiomas de destino com um conjunto limitado de comandos. (Não Brainf ** k, espaço em branco etc)
Editar : quero dizer, pelo menos 26 caracteres significativos,Anão muda a maneira como um programa brainf ** k opera, portanto você não pode contar esse caracter. O mesmo se aplica ao espaço em branco. - O idioma de destino deve existir no momento em que esta pergunta foi escrita.
- Você precisa incluir uma pequena explicação sobre como arquivar sua pontuação.
- O programa de entrada é válido.
- O programa codificado deve ser um programa válido no mesmo idioma da entrada.
- O programa codificado deve fazer o mesmo trabalho que o programa original.
- Seu codificador deve funcionar para todos os programas válidos nesse idioma.
- Inclua alguma entrada e saída de amostra.
Notas
- O codificador pode ser escrito em qualquer idioma, não apenas no idioma de destino.
- Isso não é código-golfe ; programas legíveis são incentivados.
- O grande objetivo é ver quantos caracteres diferentes são necessários para escrever algo nesse idioma. Eu desaprovei o BF, etc, porque não haveria desafio.
- Isso foi inspirado em Imprimir uma sequência com o menor número possível de caracteres distintos ; você pode considerá-la como metagolfe para essa pergunta.
Exemplo
Em Java, você pode usar \uXXXXoutros caracteres. Uma entrada válida codifica todos os caracteres da entrada dessa maneira. Isso teria uma pontuação de 18. ( \ 0-9a-f)
Código em Tcl, codifica um programa Java:
set res {}
foreach char [split [read stdin] {}] {
append res [format \\u%04x [scan $char %c]]
}
puts $res
getslê apenas uma única linha de entrada? E você perdeu o ucodificador (mas, por outro lado, não precisa de espaço e, portanto, a pontuação permanece a mesma).