Sări la conținut
Complet local

Codificator Brainfuck

Transformă orice text într-un program Brainfuck care-l tipărește, sau execută un program Brainfuck și vezi ieșirea.

Intrare

Codificator Brainfuck

Lipește orice text și acest instrument scrie un program Brainfuck care-l tipărește exact, câte un caracter la a time. Funcționează și invers: lipește un program Brainfuck și instrumentul-l execută, arătând orice produce. Comută între cele două moduri cu opțiunea Mod, sau folosește butonul de schimb pentru a trimite un program generat direct în interpret.

Activează "Optimizează dimensiunea cu bucle" pentru a face programul mai scurt: în loc să repete + până la 255 de ori pentru un singur caracter, construiește valoarea cu o mică buclă de multiplicare, ceea ce contează odată ce intrarea depășește câteva cuvinte. Dimensiunea celulei controlează cum este stocat fiecare caracter — 8-bit este Brainfuck-ul clasic cu octet-per-celulă, potrivind cum funcționează interpreturile reale și textul UTF-8, în timp ce celulele de 16-bit și 32-bit pot conține un punct de cod întreg pe celulă, în așa fel încât literele accentuate și emoji să se rotunjească perfect fără octeți suplimentari. Celule pe bandă stabilește câte celule de memorie are interpretul de lucru, și limita de pași oprește o buclă dezlănțuită de a îngheța pagina — crește-o dacă un program are într-adevăr nevoie de mai mulți pași, sau micșorează-o în timp ce testezi ceva în care nu ai încredere deocamdată. "Afișează starea benzii după execuție" adaugă o captură de ecran a celulelor de memorie odată ce programul se termină, ceea ce este util pentru depanarea buclelor care nu produc rezultatul așteptat. Codul generat poate fi, de asemenea, rupt la o lățime de linie fixă pentru o lectură mai ușoară; Brainfuck-ul în sine ignoră spațiile albe și orice caracter care nu este una din cele opt comenzi ale sale, deci ruperea rândului nu schimbă niciodată ceea ce face programul.

Intrada foarte lungă produce un program mai lung, și ambele direcții sunt limitate pentru ca tab-ul browserului să nu se îngheț niciodată pe intrare accidental necontrolată sau pe o buclă infinită — vei primi un mesaj clar care-ți spune ce să ajustezi în loc de o pagină blocată.

Totul rulează local în browserul tău; niciun text sau cod nu este niciodată trimis nicăieri. Copiază rezultatul, descarcă-l ca .txt, șterge panoul, sau trimite ieșirea direct înapoi la intrare pentru a continua lucrul.

FAQ

Ce este Brainfuck?
Brainfuck este un limbaj de programare esoteric minimalist cu doar opt comenzi, construit în jurul unei benzi de celule de memorie și a unui singur indicator. Este popular ca o curiozitate și o provocare code-golf, nu pentru programe reale.
De ce programul generat arată diferit de fiecare dată când schimb dimensiunea celulei?
Dimensiunea celulei decide ce valoare este stocată fiecare caracter. Celulele de 8-bit conțin un octet UTF-8, deci o literă accentuată sau emoji necesită mai multe celule; celulele de 16-bit și 32-bit pot conține un caracter întreg la a time, ceea ce schimbă atât valorile cât și calea cea mai scurtă pentru a le atinge.
Ce se întâmplă dacă programul meu are o buclă infinită?
Interpretul se oprește imediat ce atinge limita de pași și raportează că programul nu s-a terminat, în loc să îngheață pagina. Crește limita de pași dacă programul cu adevărat are nevoie de mai mulți pași, sau repară bucla.
Funcționează virgula (comanda de intrare)?
Instrumentul nu are un flux de intrare separat pentru un program în execuție, deci `,` este întotdeauna citit ca sfârșitul fișierului și setează celula actuală la 0 — același comportament pe care majoritatea interpreților îl urmează odată ce intrarea se termină.
Textul sau codul meu este trimis undeva?
Nu. Atât codificarea, cât și execuția unui program se întâmplă în întregime în browserul tău — nimic din ceea ce lipi aici nu este niciodată trimis pe un server.