Ga naar inhoud
100% lokaal

Brainfuck-encoder

Zet tekst om in een Brainfuck-programma dat dit afdrukt, of voer een Brainfuck-programma uit en zie de uitvoer.

Invoer
Uitvoer

Brainfuck-encoder

Voer willekeurige tekst in en dit tool schrijft een Brainfuck-programma dat het exact zo afdrukt - karakter voor karakter. Het werkt ook andersom: voer een Brainfuck-programma in en het tool voert het uit en toont wat het uitvoert. Wissel tussen beide met de modusoptie of gebruik de swap-knop om een gegenereerd programma rechtstreeks in de interpreter te sturen.

Schakel "Lengte met lussen optimaliseren" in om het gegenereerde programma korter te maken: in plaats van het + tot 255 keer voor één karakter te herhalen, wordt de waarde met een kleine vermenigvuldigingslusje opgebouwd - dit is belangrijk zodra de invoer verder dan een paar woorden gaat. Celgrootte bepaalt hoe elk karakter wordt opgeslagen - 8-bits is de klassieke byte-per-cel Brainfuck, overeenkomstig hoe echte interpreters en UTF-8-tekst zich gedragen, terwijl 16-bits en 32-bits cellen een volledig codepunt per cel kunnen bevatten, zodat accenttekens en emoji's schoon kunnen worden heen-en-weer gestuurd zonder extra bytes. Geheugencellen bepalen hoeveel geheugencellen de interpreter heeft, en het stappenlimiet stopt een oneindige lus voordat de pagina bevriest - verhoog het als een programma meer stappen nodig heeft, of verlaag het terwijl je iets test waar je nog niet zeker van bent. "Geheugentostand na uitvoering weergeven" voegt na afloop van het programma een snapshot van de geheugencellen toe, wat handig is om lussen op te sporen die niet de verwachte uitvoer opleveren. De gegenereerde code kan ook op een vaste lijnbreedte worden teruggebroken voor gemakkelijker lezen; Brainfuck zelf negeert witruimte en elk karakter dat niet een van zijn acht commando's is, dus terugbreken verandert nooit wat het programma doet.

Zeer lange invoer produceert een langer programma, en beide richtingen hebben een limiet zodat het browsertabblad nooit bevriest door onbedoelde runaway-invoer of een oneindige lus - je krijgt in plaats daarvan een duidelijk bericht dat je vertelt wat je moet aanpassen.

Alles wordt lokaal in je browser uitgevoerd; tekst en code worden nooit ergens heen geüpload. Kopieer het resultaat, download het als .txt-bestand, wis het paneel of stuur de uitvoer direct terug in de invoer om verder aan te werken.

FAQ

Wat is Brainfuck?
Brainfuck is een minimale esoterische programmeertaal met maar acht commando's, gebouwd rond een geheugentape met cellen en een enkele aanwijzer. Het is populair als curiositeit en code-golf-uitdaging, niet voor echte programma's.
Waarom ziet het gegenereerde programma er elke keer anders uit wanneer ik de celgrootte verander?
Celgrootte bepaalt welke waarde elk karakter wordt opgeslagen als. 8-bits cellen bevatten één UTF-8-byte, dus een accentteken of emoji heeft meerdere cellen nodig; 16-bits en 32-bits cellen kunnen een heel karakter tegelijk bevatten, wat zowel de waarden als het kortste pad daarheen verandert.
Wat gebeurt er als mijn programma een oneindige lus heeft?
De interpreter stopt zodra het stappenlimiet wordt bereikt en rapporteert dat het programma niet is voltooid, in plaats van de pagina in te vriezen. Verhoog het stappenlimiet als het programma echt meer stappen nodig heeft, of fix de lus.
Werkt de kommacommando (invoer)?
Het tool heeft geen aparte invoerstroom voor een draaiend programma, dus `,` wordt altijd gelezen als end-of-file en stelt de huidige cel in op 0 - hetzelfde gedrag waar de meeste interpreters op terugvallen zodra de invoer op is.
Wordt mijn tekst of code ergens heen geüpload?
Nee. Zowel codering als het uitvoeren van een programma vinden volledig in je browser plaats - niets wat je hier plakt wordt ooit naar een server gestuurd.