Macchina astratta: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 8:
 
==Definizione==
UnaIn termini di input output una macchina astratta tipica, consiste in un insieme di operazioni ammissibili, utilizzate per trasformare l'[[input]] in [[output]].
 
Fornire una definizione dettagliata e nello stesso tempo valida ad inquadrare qualsiasi architettura di computer presente e futura è un impresa tutt'altro che semplice, (se non impossibile) dato che ogni macchina astratta dipende da un determinato modello computazionale. Le macchine astratte basate sul modello di Turing sono dette imperative, alla base di tale modello c'è il concetto di istruzione. Esistono altri modelli computazionali che descrivono stili di programmazione e macchine astratte differenti da quelle imperative, (per esempio: logica, funzionale, orientata agli oggetti, ecc...)
Riga 14:
Riserviamo maggiore attenzione alle macchine astratte imperative poiché la maggioranza delle macchine reali è basata sul modello dell' [[architettura di von Neumann]]. Questo non è dovuto alla migliore qualità del modello imperativo, ma per un fatto puramente tecnologico. Nella definizione di macchina astratta imperativa ritroviamo tutti in concetti già presenti nel formalismo della [[macchina di Turing universale]].
 
Formalmente una '''macchina astratta''' (imperativa) è un insieme di [[strutture dati]] e algoritmi in grado di memorizzare ed eseguire programmi.
Le componenti principali della macchina astratta (imperativa) sono:
* un interprete;
* una [[memoria]], che contiene il programma e i dati;