7 , 23 caracteres, 9 bytes
54340045141332401057403
Experimente online!
Este é um desafio bastante difícil em um idioma que consiste inteiramente de dígitos, mas eu consegui…
São apenas 9 bytes na codificação 7. (Estritamente falando, são 8⅜ bytes (23 × ⅜ - ¼ porque os dois bits finais finais podem ser omitidos), mas pela primeira vez, o requisito do PPCG de arredondar para um número inteiro de bytes é realmente uma vantagem, pois significa que os 1 bits extras à direita são necessários e, portanto, não são banidos pela pergunta.) Um despejo hexadecimal reversível:
00000000: b1c0 2530 b6a0 22f8 1f ..%0.."..
O principal desafio de escrever este programa no 7 era jogar com menos de 10 bytes (como escrever 7 sem usar 0ou 1é bastante difícil.) Isso usa a mesma estrutura do programa "Hello world" padrão:
5434004514133240105 7 403
5434004514133240105 comandos 0-5 anexam literais ao espaço de dados
7 iniciar uma nova seção do espaço para dados
403 outro literal anexado ao espaço de dados
{implícito: avaliar a última seção como comandos}
4 troque a 1ª e a 2ª seções com uma seção vazia entre
6 reconstrua os comandos que criariam a saída da 1ª seção
3 (+ alguns outros efeitos dos quais não nos importamos)
Em outras palavras, começamos criando duas seções do espaço de dados; temos dois literais, cada um dos quais pressiona uma sequência de comandos lá. A segunda seção (eles são empurrados no estilo pilha, então primeiro empurrão = último pop) é uma sequência bastante arbitrária de comandos, mas é empurrada usando a sequência de comandos 5434004514133240105(produzindo assim a sequência de dados 5434664574733246765; ao discutir 7 no texto, normalmente uso fonte normal para um comando que envia um literal e negrito para o literal resultante correspondente). A primeira seção é pressionada usando a sequência de comandos 403, produzindo 463. Em seguida, a primeira seção é copiada de volta para o programa (um comportamento implícito de 7).
O 463agora é composto por comandos (em negrito) que fazem algo imediatamente, em vez de comandos (não em negrito) que apenas enviam literais. 4reorganiza as seções para colocar nossa "string literal" na primeira seção. Em seguida, 0faz a operação pela qual 7 é mais conhecida: ocupar uma seção do espaço de dados e reconstruir a sequência de comandos que provavelmente a criou. No caso em que a sequência de comandos original era tudo 0- 5, isso é 100% exato (sem surpresa, pois esses comandos puramente empurram os dados e, portanto, deixam evidências óbvias do que eles fizeram), e assim recuperamos nossa sequência original 5434004514133240105. Finalmente, 3imprime.
Portanto, o que resta aqui é a codificação da string. Isso tem seu próprio idioma específico do domínio:
5434004514133240105
5 change encoding: 6 bits per character
43 select character set: digits and common symbols
40 '9'
04 space
51 select character set: uppercase letters
4133240105 'B' 'Y' 'T' 'E' 'S'
(Não há "conjunto de caracteres selecionado: letras minúsculas" no conjunto de caracteres "dígitos e símbolos comuns" - você deve primeiro usar um conjunto de caracteres diferente -, então eu precisava usar maiúsculas para jogar golfe tão curto o suficiente para caber abaixo dos 10 dígitos efetivos. limite de bytes.)