Chapter 3. Formato del File di Programma

Viene ignorata qualsiasi linea vuota o qualsiasi linea che inizia con (#). Altrimenti ci si aspettano cinque elementi, separati da uno spazio. Essi sono il numero dello stato, il simbolo atteso, il simbolo da scrivere, la direzione in cui muoversi e il nuovo stato. Qualsiasi cosa segua tali elementi verrà ignorata.

I simboli attesi e i simboli da scrivere possono essere qualsiasi carattere stampabile. Il carattere blank (spazio vuoto) è rappresentato dall'underscore (_). Gli stati sono numeri interi, a partire da 0. Le possibili direzioni di movimento sono sinistra e destra, rappresentate, rispettivamente, da 'l' (left, sinistra) e 'r' (right, destra).

La macchina parte dallo stato 0 e si ferma quando non riesce a trovare il nuovo stato o il nuovo stato non si aspetta il simbolo di lettura.

È importante osservare che, poiché il nastro della macchina è pensato di lunghezza infinita, il nastro avrà un infinito numero di spazi vuoti in fondo ad ogni estremità di ciò che l'utente ha messo come contenuti del nastro.

Example 3-1. Binario ++

# Questo programma aggiunge 1 ad un numero binario. Il nastro iniziale deve
# essere un numero binario.

0 1 1 r 0 Muove fino alla cifra piu' a destra del numero binario. Poi, va nello
0 0 0 r 0 stato 1.
0 _ _ l 1
1 1 0 l 1 Se c'e' un 1, lo cambia in 0 e si sposta a sinistra.
1 0 1 r 2 Se c'e' uno 0, lo cambia in 1 e va nello stato 2
1 _ 1 r 2 Fa lo stesso per gli spazi bianchi.

# Visto che non c'e' uno stato 2, la macchina si ferma.