COW (linguaggio di programmazione)

linguaggio di programmazione esoterico Da Wikipedia, l'enciclopedia libera

COW è un linguaggio di programmazione esoterico, creato all'inizio del 2003 da Alex van Oostenrijk e Martijn van Beek. Esso utilizza un set di undici istruzioni, composta dalle lettere M e O. Le istruzioni del linguaggio sono case-sensitive.

Struttura del linguaggio

Il linguaggio è strutturato come la macchina di Turing (Turing equivalente): esso fornisce un vettore di numeri interi e delle istruzioni per spostarsi e modificare i valori contenuti. Inoltre mette a disposizione un registro temporaneo in grado di contenere un numero intero.

Come condizione iniziale avremo un puntatore che punta alla prima cella: la posizione 0, e un numero potenzialmente infinito di celle. All'interno di ogni cella è contenuto inizialmente il valore 0.

Istruzioni

Riepilogo
Prospettiva

Le istruzioni del linguaggio sono undici, ciascuna consiste in tre caratteri e sono:

CodiceIstruzioneSignificato
0mooQuesto comando è connesso al comando MOO. Quando viene incontrato questa istruzione durante la normale esecuzione, l'interprete ricerca il comando MOO senza eseguire le istruzioni che incontra, ed esegue l'istruzione successiva al MOO trovato. (Vedi MOO)
1moOIncrementa il puntatore
2mOoDecrementa il puntatore
3mOOEsegue l'istruzione con codice dell'istruzione uguale al contenuto della cella corrente. Se la cella contiene il valore 3 è non valido, perché si incorrerebbe in un ciclo infinito.
4MooSe il valore della cella corrente è 0, allora legge un singolo carattere ASCII dalla tastiera (più precisamente standard input) e lo salva nella cella corrente. Se invece la cella non contiene 0, allora stampa a video (standard output) il carattere ASCII corrispondente.
5MoOIncrementa il valore della cella di 1
6MOoDecrementa il valore della cella di 1

(le istruzioni 5 e 6 prima erano invertite, cfr pagina del creatore di COW)

7MOOSe il contenuto della cella è 0, allora torna alla chiamata effettuata con il comando moo. Se invece il valore della cella non è 0, allora continua con l'istruzione successiva.
8OOOImposta il valore della cella a 0
9MMMSe non c'è nessun valore nel registro, allora copia al suo interno il valore corrente della cella. Se invece c'è un valore, incolla tale valore nella cella corrente e svuota il registro.
10OOMStampa a video (più precisamente nello standard output) il valore della cella come numero intero
11oomLegge un numero intero da tastiera (più precisamente dallo standard input) e lo salva nella cella corrente

Esempi

MoO moO MoO mOo MOO OOM MMM moO moO MMM mOo mOo moO MMM mOo MmM mom moO MOO MOo mOo MoO moO moo mOo mOo moo

Collegamenti esterni

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.