mercoledì 21 luglio 2010

Brainfuck: linguaggio di programmazione esoterico.

Brainfuck è un linguaggio di programmazione esoterico per computer, creato da Urban Müller nel 1993.

 
L'obiettivo di Müller era di creare un linguaggio di programmazione semplice e completo per una macchina di Turing che potesse essere implementato con il compilatore più piccolo possibile.

Il linguaggio consiste di otto istruzioni e il compilatore originale  occupa soltanto 240 byte ! Come suggerisce il nome, i programmi scritti in Brainfuck tendono ad essere difficili da comprendere. Trascurando l'enorme difficoltà nella programmazione di certi algoritmi con Brainfuck, è certamente possibile scrivere il relativo codice.

Struttura del linguaggio:

Il linguaggio è basato su un array di byte inizializzato a zero, un puntatore all'array (inizializzato per puntare al primo byte dell'array) e due stream di byte per l'input e l'output.

Le istruzioni sono in tutto otto, costituite tutte da un solo carattere:
  • > – aumenta il puntatore
  • < – diminuisce il puntatore
  • + – aumenta il byte al puntatore
  • - -  diminuisce il byte al puntatore
  • . – restituisce l’output
  • , – restituisce l’input
  • [ - passa all'istruzione dopo il ] se il byte al puntatore è 0
  • ] – passa all’istruzione prima del [ se il byte al puntatore non è 0



Esempio:

Il seguente codice mostra "Hello World!" sullo schermo e manda a capo il cursore

++++++++++
[
   >+++++++>++++++++++>+++>+<<<<-
]
>++. Loop iniziale (dopo viene stampata una H)
>+. e
+++++++. l
. l
+++. o
>++.
<<+++++++++++++++.
>.
+++.
------.
--------.
>+.
>.
Sembra incomprensibile vero ?  @_@

Navigando su internet ho letto che una volta capito come funziona diventa semplice, ma a prima vista non l'avrei mai detto :-D
Che ne pensate?

Se volete più informazioni su questo linguaggio potete andare su wikipedia (dal quale ho tratto l'articolo) --> qui .



0 commenti:

Posta un commento