La nascita del dualismo Hardware-SoftwareNella concezione originale di Turing, i programmi per le Macchine di Turing (TM) erano parte integrante del controllo finito; per ogni problema che si volesse risolvere, bisognava costruire un'opportuna TM, che poteva prendere in input i dati da elaborare, ma non poteva essere riprogrammata per eseguire un calcolo diverso da quello per cui era stata pensata.
Ciò era in accordo con l'intento iniziale di Turing, che non era quello di realizzare fisicamente le sue macchine, ma quello di determinare quale fosse l'insieme di funzioni per cui era possibile, in linea di principio, costruire un'apposita TM. Successivamente Turing dimostrò che è possibile descrivere il programma di una TM tramite i simboli del nastro, e che esiste una Macchina di Turing Universale che, dati in ingresso la descrizione di una TM e il relativo input, ne simula il comportamento: nasce così una vera macchina programmabile:
La dimostrazione dell'esistenza di una TM universale segna anche la nascita del
dualismo
La nozione di MT universale e' concettualmente alla base della grande maggioranza
delle strutture di macchine per computare che utilizziamo oggi.
Già in questo formalismo matematico sono presenti in nuce tutte
le componenti presenti nella maggior parte delle architetture sviluppate fino ai giorni nostri.
L' obiettivo nelle presenti note e'
quello arrivare ad una definizione del concetto di Macchina Astratta Imperativa:
una descrizione astratta di tutte le componenti che
formano le macchine reali attuali (quelle, la grande maggioranza, basati sul
modello computazionale delle Macchine di Turing).
Si noti come non sia possibile fornire una definizione di Macchina Astratta
valida per inquadrare qualsiasi architettura di computer presente e futuro,
poiche' alla base di una Macchina Astratta c'e' sempre un
particolare Modello Computazionale. Le Macchine Astratte
basate sul modello di Turing vengono dette imperative poiche'
alla base di tale modello c'e' il concetto di comando (istruzione).
E' evidente come, partendo
da differenti modelli computazionali,
si possa pervenire a differenti nozioni di Macchina Astratta
(per esempio: funzionale, L'attenzione che noi riserveremo alle macchine astratte imperative non e' tanto dovuto alla "migliore qualita'" del modello di Turing rispetto ad altri, ma al fatto che la stragrande maggioranza delle architetture concrete sono basate sul modello di Von Neuman e questo e' dovuto a motivazioni puramente di carattere tecnologico. Nella definizione della nostra nozione di macchina astratta imperativa ritroveremo ovviamente tutti concetti gia' presenti nel formalismo delle Macchine di Turing, in particolare quelli presenti nel formalismo della Macchina di Turing Universale, nella quale abbiamo:
|