




























Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una metafora intuitiva per comprendere l'importanza di algoritmi e software, utilizzando le metafore della cucina e di una macchina virtuale. Come un algoritmo sia come una ricetta per risolvere problemi informatica, e come il software sia il meccanismo per astrarre l'organizzazione fisica della macchina e rendere l'interazione con essa semplice per gli utenti. Viene inoltre introdotto il concetto di macchina virtuale e come essa permetta di rendere macchine fisicamente diverse utilizzabili in modo simile.
Tipologia: Appunti
1 / 36
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!





























Cfr.: Pellegrino Artusi (1910), La scienza in cucina e l'arte di mangiar bene.
deve esistere un esecutore (calcolatore) che esegua l’algoritmo le istruzioni devono essere eseguite in ordine per partire dai dati di input ed ottenere i dati di output il calcolatore deve conoscere il linguaggio dell’algoritmo altrimenti serve un traduttore l’algoritmo deve prevedere solo istruzioni elementari per il calcolatore specificato un algoritmo, può essere richiamato per l’esecuzione di algoritmi più complessi il linguaggio dell’algoritmo non può essere ambiguo l’ordine di esecuzione è importante istruzioni non infinite tempo non infinito l’algoritmo deve essere deterministico: eseguito più volte sugli stessi dati di input genera sempre lo stesso output algoritmo parametrico: risolve una classe di problemi (al variare dei dati di input)
L’utente dovrebbe conoscere l’ organizzazione fisica dell’elaboratore e il suo linguaggio macchina Ogni programma dovrebbe essere scritto utilizzando delle sequenze di bit ed ogni piccola differenza hardware comporterebbe una riscrittura del programma stesso Una programmazione diretta della macchina hardware da parte degli utenti non è accettabile
Nei moderni sistemi di elaborazione questi obiettivi vengono raggiunti grazie alla definizione di macchine virtuali che vengono realizzate al di sopra della macchina hardware reale Questa macchina si dice virtuale in quanto essa non esiste fisicamente Si può fare in modo che macchine (fisicamente) differenti siano usabili in modo simile Si tratta di costruire al di sopra delle diverse macchine fisiche la stessa macchina virtuale
La macchina virtuale viene realizzata mediante il software ( software di base ) L’utente interagisce con la macchina virtuale grazie ad un opportuno linguaggio di comandi Ogni computer ha un linguaggio macchina le cui istruzioni sono direttamente eseguibili dalla macchina hardware
MS-DOS, Unix shell, Linux shell Lavorando con una interfaccia testuale i comandi vengono impartiti mediante la tastiera Ogni comando ha un suo nome e una sintassi ben precisa C:> print foo1.doc Can’t find file foo1.doc C:> prompt
Linguaggio di comandi (interfaccia testuale) Dai il messaggio di prompt all’utente Quando arriva il comando, riconoscilo Se è errato , dai un messaggio di errore Se è corretto , esegui l’azione corrispondente Al termine dell’operazione, torna all’inizio C:> print foo1.doc Can’t find file foo1.doc C:>
Linguaggio di comandi (interfaccia grafica) Microsoft Windows
Linguaggio di comandi (interfaccia grafica) Mac OSX di Apple
Software di base: realizza la macchina virtuale Gli strumenti software che permettono all’utente (e ai programmi applicativi) di interagire con l’elaboratore in modo semplice (funzioni di traduzione tra linguaggi diversi) e di gestire le risorse fisiche Il sistema operativo fa parte del software di base
intermediazione nell’utilizzo della macchina HW visione astratta dell’HW (macchina virtuale, macchina astratta) un ambiente per l’esecuzione del SW applicativo