Brainfuck este o enciclopedie a limbajelor de programare

Brainfuck - una dintre cele mai renumite limbi de programare ezoterice, cu un minimalism special. Se compune din opt echipe, fiecare dintre acestea fiind scrise cu un singur caracter.







Brainfuck a dat naștere mai multe dialecte diferite set de instrucțiuni, metoda de înregistrare sau de punere în aplicare detalii, cum ar fi valoarea maximă a numărului stocat în celulă, sau situația care cauzează interpretarea erorii.

Teoretic, Brainfuck posedă proprietatea Turing-completeness și, prin urmare, poate efectua orice sarcină. În practică, totuși, această limbă este complet inadecvată pentru rezolvarea problemelor din viața reală; chiar și cele mai simple sarcini devin o provocare pentru dezvoltator. Prin urmare, Brainfuck este folosit exclusiv ca model matematic sau pentru divertisment.

Creatorul lui Brainfuck a fost inspirat de FALSE. iar cele 6 comenzi (cu excepția comenzilor intrare-ieșire) coincid exact cu comenzile din limba P ", dar rămâne necunoscut dacă acesta din urmă a influențat dezvoltarea Brainfuck.

Brainfuck utilizează un model de mașină care seamănă cu o mașină Turing și constă din următoarele elemente:

  • program - o secvență de comenzi lingvistice cu un singur caracter și, eventual, alte caractere (acestea sunt ignorate în timpul procesării);
  • indicatorul de instrucțiune - indică comanda care urmează să fie executată în pasul următor, după executarea ei se trece la o altă comandă (de obicei în partea dreaptă);
  • memorie - modelată de o gamă unidimensională de celule, fiecare celulă stocând un octet; valoarea inițială a celulei este zero;
  • Indicator de date - indică locația curentă a memoriei; valoarea inițială este celula din stânga a matricei; prin comandă se mișcă sau se modifică valoarea stocată în celula curentă;
  • intrări și ieșiri - secvențe de octeți în codarea ASCII.

Trebuie remarcat faptul că, datorită specificității condițională limbii de instruire ramură [și] utilizate în punerea în aplicare a aproape toate operațiunile sunt elementare în alte limbi (Atribuirea valorii, operații matematice și logice, etc.).







Elementele sintaxei:

Bună ziua, lumea!

Există multe modalități de a spune "Bună ziua, lumea!" Pentru Brainfuck. Mai jos este cea mai simplă dintre ele: utilizați o singură celulă de memorie și modificați ulterior valoarea acesteia la codul ASCII al fiecărei litere a mesajului. Fiecare rând din exemplu afișează un caracter.

Bună ziua, lumea!

Acest exemplu utilizează trei celule de memorie de bază - prima pentru literele majuscule „H“ și „W“, una pentru litere mici, iar al treilea pentru semnele de punctuație „“, „“ și „“ - și trei indicele suplimentar al celulei pentru a reduce schimbările de înregistrare Codurile ASCII. Memoria folosită arată astfel:

(celula cu litere mici) (celula index 3) (celula cu semne de punctuație)

Numerele Fibonacci:

Clasicul interpret Brainfuck folosește variabilele tipului de octeți pentru a stoca valorile în celulele de memorie, iar numerele 14-16 ale Fibonacci vor provoca o eroare de depășire. Scriind o aritmetică lungă pe Brainfuck este o sarcină foarte laborioasă, deci exemplul presupune că tipurile întregi pot fi stocate în celulele de memorie.

factorial:

Clasicul interpret Brainfuck folosește variabilele tipului de octeți pentru a stoca valori în celulele de memorie și deja 6! va provoca o eroare de depășire. Scriind o aritmetică lungă pe Brainfuck este o sarcină foarte laborioasă, deci exemplul presupune că tipurile întregi pot fi stocate în celulele de memorie.

Bună ziua, lumea!

Bună ziua, lumea!

Acest exemplu este o traducere pe lingura acestui exemplu. Rețineți că Spoon vă permite să nu separați comenzile individuale de spații, dar versiunea curentă a EsCo necesită ca comenzile să fie separate prin spații.

Bună ziua, lumea!

Acest exemplu este o traducere pe Brainloller a acestui exemplu. Din moment ce Brainloller este un limbaj pur grafic, imaginile joacă rolul codului sursă.


"Buna, lume!" pe Brainloller

Brainfuck este o enciclopedie a limbajelor de programare

"Buna, lume!" pe Brainloller (mărire de 10x)

Bună ziua, lumea!

Acest exemplu este o traducere pe Unary a acestui exemplu. Codul în sine este prea mare pentru ao aduce complet, deci numai lungimea sa este indicată.

Numerele Fibonacci:

Acest exemplu este o traducere pe Unary a acestui exemplu. Codul în sine este prea mare pentru ao aduce complet, deci numai lungimea sa este indicată.

Bună ziua, lumea!







Articole similare

Trimiteți-le prietenilor: