Simulatore della Macchina di Turing
Versione 2
Download
Programmi eseguibili (versione 2.0 del 29/09/2022)
Versione Linux
Versione Win64
Scaricare ed estrarre il file eseguibile.
Potrebbe essere necessario assegnare i permessi di esecuzione una volta estratti i programmi.
Esempi
Nel programma sono incluse alcune macchine di Turing di esempio
Programma
Il programma è in formato testuale leggibile e facilmente manipolabile dall'utente.
La prima riga ha il seguente formato:
I=<simbolo>,<simbolo>,<simbolo>,...
Ad esempio:
I=1, 0, 0, 1, 1
Segue il programma vero e proprio
Le istruzioni sono scritte nella forma:
(<stato corrente>, <simbolo letto>, <stato futuro>, <simbolo scritto>, <spostamento>)
Ad esempio:
(MUOVEDX,0,MUOVEDX,0,>)
(MUOVEDX,1,MUOVEDX,1,>)
(MUOVEDX,_,INCREMENTA,_,<)
(INCREMENTA,0,STOP,1,-)
(INCREMENTA,1,INCREMENTA,0,<)
(INCREMENTA,_,STOP,1,-)
Stato
Può essere costituito da uno o più dei seguenti caratteri:
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789
Simbolo
Può essere costituito da uno o più dei seguenti caratteri:
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789
oppure uno solo dei seguenti caratteri
!#$%&'*+-./:;<=>?@[\]^{|}_
Per indicare "cella vuota" utilizzare il carattere _ (underscore)
Spostamento
> indica lo spostamento a destra
< indica lo spostamento a destra
- indica di non muoversi
Esecuzione
Per eseguire il programma passare alla seconda pagina
Nella parte alta si vede il programma con le istruzioni scomposte nelle loro componenti
Viene evidenziata la prossima istruzione applicabile.
L'esecuzione della simulazione è controllabile passo-passo oppure si può avanzare automaticamente a velocità regolabile.
Il nastro è rappresentato nella parte inferiore. Ogni rettangolo rappresenta una cella.
La testina di lettura scrittura è evidenziata.
E' possibile muovere la testina o far scorrere il nastro utilizzando gli appositi pulsanti.
Cliccando su una cella è possibile modificare la posizione della testina.
Nella parte sinistra è riportato l'elenco degli stati, ed è evidenziato lo stato corrente.
Cliccando su uno stato è possibile modificare lo stato corrente.
Generazione grafi
E' possibile generare un file .dot per la generazione del grafo corrispondente alla macchina.
Se il programma dot è disponibile, viene automaticamente generata l'immagine corrispondente.
Il programma dot fa parte del pacchetto GraphViz
Versione 1
Download
Programmi eseguibili (versione aggiornata 1.5 del 30/09/2020)
Versione Linux
Versione Win64
Scaricare ed estrarre il file eseguibile.
Potrebbe essere necessario assegnare i permessi di esecuzione una volta estratti i programmi.
Esempi
Nel file archivio sono presenti la descrizione della MdT (programma) e un file di dati di esempio
M.d.T. che inverte un numero binario
M.d.T. che incrementa un numero binario
M.d.T. che somma due numeri binari
Istruzioni
L'inserimento di un programma e dei simboli del nastro è agevolato tramite l'utilizzo di combobox che si autoalimentano durante l'inserimento.
All'inserimento di un valore mai usato prima le liste associate alle caselle vengono aggiornate in modo tale da risparmiare all'utente ulteriori digitazioni potendo limitarsi a selezionare il valore desiderato.
Il programma viene salvato in formato testuale leggibile e facilmente manipolabile dall'utente che non voglia servirsi dell'interfaccia grafica.
L'esecuzione della simulazione è controllabile passo-passo oppure si può avanzare a velocità regolabile.
Stato
Può essere costituito da uno o più dei seguenti caratteri:
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789
Simbolo
Può essere costituito da uno o più dei seguenti caratteri:
abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789
oppure uno solo dei seguenti caratteri
!#$%&'*+-./:;<=>?@[\]^{|}_
Per indicare "cella vuota" lasciare la casella vuota. Nel programma testuale indicare la cella vuota con il carattere _ (underscore)
Spostamento
> indica lo spostamento a destra
< indica lo spostamento a destra
- indica di non muoversi
Programma di esempio che illustra il formato testuale utilizzato
(MUOVEDX,0,MUOVEDX,0,>)
(MUOVEDX,1,MUOVEDX,1,>)
(MUOVEDX,_,INCREMENTA,_,<)
(INCREMENTA,0,STOP,1,-)
(INCREMENTA,1,INCREMENTA,0,<)
(INCREMENTA,_,STOP,1,-)
Avvertenze
I programmi sono realizzati per un uso didattico. Non sono stati sottoposti a rigidi controlli sul funzionamento, quindi potrebbero verificarsi degli errori. La segnalazione è gradita.
Contatto
Per comunicare con me vedere le istruzioni nella pagina "contatto".
Segnalazione di problemi
Se si notano problemi nel funzionamento o nell'usabilità, riceverò con piacere le segnalazioni e cercherò di sistemare eventuali problemi quanto prima.
Suggerimenti
Ricevo con piacere eventuali suggerimenti per migliorare l'utilizzo dei programma
Sicurezza
Per quanto mi riguarda applico la massima attenzione per evitare che i programmi contengano malware. Tuttavia non esiste la sicurezza assoluta, mai, in nessun caso. Il sito stesso potrebbe venire violato a mia insaputa e gli eseguibili compromessi.
Si consiglia sempre di effettuare una scansione degli eseguibili con un software antivirus una volta scaricati.