Codificatore Brainfuck
Scriva «Hi» e otterrà un programma Brainfuck di 107 caratteri pronto da eseguire, fatto solo di segni più e punti di stampa. Funziona anche al contrario: esegue Brainfuck, mostra cosa stampa e segnala le parentesi quadre senza coppia. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hi
- Modalità di calcolo
- Encode
- Codifica
- brainfuck
- Lunghezza dell'input
- 2
- Lunghezza dell'output
- 107
Questo codificatore di testo in Brainfuck trasforma il testo semplice in un programma Brainfuck funzionante che stampa quel testo, ed esegue il codice Brainfuck nell’altro senso così che Lei veda cosa stampa un programma. La modalità encode scorre ogni byte Latin-1, regola una sola cella del nastro con la sequenza più breve di più o meno sull’anello circolare 0–255 ed emette un punto dopo ogni carattere affinché il programma sia subito eseguibile. La modalità decode è un interprete classico a otto comandi su un nastro limitato: convalida l’abbinamento delle parentesi prima dell’esecuzione, ignora i caratteri non comando come il Brainfuck tradizionale e fallisce in modo chiaro su parentesi non abbinate, limiti di passi o superamento del puntatore.
Cos’è Brainfuck e cosa restituisce questo strumento
Brainfuck è un linguaggio esoterico minimo con otto comandi che spostano un puntatore dati, incrementano o decrementano la cella corrente, leggono o scrivono un byte e saltano su zero o non zero per i cicli. Nonostante il nome scherzoso, è un modello completo di calcolo che docenti, autori di puzzle e appassionati di esolang usano ancora per spiegare macchine a nastro, aritmetica modulare e la differenza tra validazione sintattica e limiti di runtime.
Questa pagina si concentra su due compiti pratici che le persone cercano davvero: generare un programma Brainfuck che stampi una stringa data, ed eseguire codice Brainfuck per recuperare l’output stampato. La modalità decode accetta qualsiasi stringa di comandi Brainfuck mista a commenti, perché i caratteri non comando sono ignorati per convenzione, ma rifiuta i programmi le cui parentesi quadre non si annidano correttamente.
Casi d'uso
Demo in aula e di esolang
Mostri come una macchina a nastro stampa una stringa generando un breve programma Brainfuck ed eseguendolo dal vivo senza installare un interprete locale.
Domande frequenti
Quanto costa il codificatore di testo in Brainfuck?
È gratis nel Suo browser in questa pagina.
Quali caratteri può codificare?
Byte Latin-1 con code point 0–255. Il testo vuoto produce un programma vuoto.
Cosa rende non valido un programma Brainfuck?
Un '[' o ']' non abbinato, spostare il puntatore oltre l’una o l’altra estremità del nastro da 30,000 celle, superare i limiti di passi o di output, oppure fornire un campo programma non stringa. I caratteri non comando sono ignorati, non rifiutati.
Come scopro cosa stampa un programma Brainfuck?
Scelga la decodifica e incolli il programma. Viene eseguito su un nastro limitato e le mostra ciò che stampa; lettere e altri caratteri che non sono comandi vengono ignorati, quindi i commenti nel codice non danno fastidio.
Un programma Brainfuck può leggere un input?
Sì. Può fornire un input facoltativo per il comando virgola, che legge un byte alla volta. Quando quell'input finisce, ogni virgola successiva scrive zero nella cella corrente.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/enc/brainfuck-encode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/brainfuck-encode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/brainfuck-encode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/brainfuck-encode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/brainfuck-encode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "Hi"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.brainfuck_encode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Il motore non chiama mai una rete, non usa mai casualità e non dipende mai dall’orologio del calendario, così lo stesso testo e la stessa modalità producono sempre lo stesso risultato nel browser e tramite l’API. I controlli tipici includono codificare Hi in un breve programma di più e punti, rieseguire quel programma fino a Hi e rifiutare una parentesi aperta isolata con invalid_input.
Cos’è Brainfuck e cosa restituisce questo strumento
La modalità encode supporta byte Latin-1 da zero a duecentocinquantacinque così che ogni carattere corrisponda a una scrittura di cella e a una stampa; i code point oltre tale intervallo sono rifiutati con un messaggio invalid_input chiaro anziché con mojibake silenzioso. La risposta JSON include sempre result per il programma generato o l’output di runtime, mode che ripete encode o decode, encoding fisso a brainfuck, e input_length più output_length affinché i test automatici possano asserire le dimensioni senza riparserare il payload. Il program_input opzionale fornisce byte al comando virgola durante il decode; quando stdin è esaurito, la virgola memorizza zero. Non c’è riparazione silenziosa di parentesi errate né esecuzione illimitata: i tetti di passi, nastro e output proteggono il Worker e mantengono i programmi brevi riusciti veloci e gratis nel browser.
Come si leggono text e mode e come i risultati restano riproducibili
Encode rifiuta testo assente, valori non stringa, stringhe più lunghe del tetto documentato e qualsiasi carattere il cui code point superi duecentocinquantacinque, indicando l’indice del carattere errato così che Lei possa correggerlo. Decode rifiuta sorgente assente, programmi sovradimensionati, parentesi di chiusura non abbinate, parentesi di apertura non abbinate, movimenti del puntatore oltre entrambe le estremità del nastro da trentamila celle, output che superano il tetto di output ed esecuzioni che eccedono il budget di passi, catturando i classici loop infiniti che altrimenti bloccherebbero una pagina gratuita. Il campo payload preferito è text, con alias input, value, s, program e message così che form, query string e client SDK riutilizzino lo stesso contratto senza rinominare colonne. Mode predefinito è encode e accetta decode in modo esplicito; gli alias op, direction e action mappano allo stesso interruttore, e run o execute sono trattati come decode per gli script che vedono la seconda direzione come esecuzione anziché decifratura. Poiché ogni ramo è puro assemblaggio di stringhe o un ciclo di interprete fisso, due client con lo stesso text, mode e program_input opzionale ricevono risultati identici byte per byte tra le versioni del Worker finché regola di generazione e limiti restano fissi. Abbini l’esecuzione gratuita nel browser di questa pagina all’API a pagamento quando Le serve il risultato matematico identico in una pipeline automatica senza reimplementare personalmente un generatore Brainfuck.
Dove si collocano codificatore ed esecutore Brainfuck in apprendimento, puzzle e test
Gli studenti incontrano Brainfuck quando un corso presenta set di istruzioni minimi, quando un club organizza una serata esolang o quando un compito chiede di stampare Hello World senza un linguaggio convenzionale. Progettisti di puzzle e autori di CTF necessitano di un codificatore deterministico affinché la stessa flag o indizio diventi sempre lo stesso programma, e di un esecutore affinché giocatori e verificatori controllino l’output senza distribuire un interprete separato. Lo abbini ad altri ausili di codifica del testo quando costruisce un piccolo laboratorio di utilità deterministiche gratuite per istruzione, sfide di sicurezza e smoke test operativi che non devono mai dipendere da una chiamata di rete o da un modello. In questa pagina il lavoro viene eseguito interamente nel Suo browser; tramite l’API ogni richiesta riuscita costa $0.002, la validazione fallita non è addebitata e nulla viene memorizzato dopo la risposta. Tale separazione — esplorazione interattiva gratuita e API a pagamento identica — corrisponde al resto del catalogo KIT di livello A e Le consente di passare da una demo alla lavagna a una pipeline automatica senza cambiare il risultato codificato.
Casi di integrazione
Fixture CTF e puzzle
Codifichi indizi deterministici e verifichi i programmi Brainfuck inviati dai giocatori rispetto all’output stampato atteso in checker automatici.
Coppie golden in CI
Asserisca risultati di encode e run nell’integrazione continua affinché generatori ed esempi di documentazione non derivino in silenzio.
Domande tecniche
Quali modalità sono supportate?
mode=encode (predefinito) trasforma il testo semplice in un programma Brainfuck che lo stampa. mode=decode esegue il codice Brainfuck e restituisce l’output stampato. Gli alias run ed execute significano pure decode.
Il risultato è deterministico?
Sì. Lo stesso text, mode e program_input opzionale producono sempre lo stesso risultato, senza rete, casualità né comportamento dipendente dalla data.