























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
Sulla costruzione di programmi per risolvere problemi e l'importanza della macchina virtuale per astrarre dall'organizzazione fisica della macchina. Viene inoltre esplorata la differenza tra la programmazione diretta della macchina hardware e la programmazione utilizzando linguaggi di alto livello. Il testo include anche informazioni sui linguaggi di comandi e il ruolo del software di base, incluso il sistema operativo.
Tipologia: Dispense
1 / 31
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!
























Il termine software ha origine durante la seconda guerra mondiale. I tecnici dell'esercito inglese erano impegnati nella decrittazione dei codici tedeschi di Enigma, di cui già conoscevano la meccanica interna (detta hardware, componente dura, nel senso di ferraglia) grazie ai servizi segreti polacchi. La prima versione di Enigma sfruttava tre rotori per mescolare le lettere. Dopo il 1941, ad Enigma venne aggiunto un rotore, e il team di criptanalisti inglesi, capitanati da Alan Turing, si dovette interessare non più alla sua struttura fisica, ma alle posizioni in cui venivano utilizzati i rotori della nuova Enigma.
L'algoritmo è un procedimento che permette di calcolare un risultato e/o risolvere un problema, eseguendo una serie di ordini e condizioni impostate a priori. Analogamente, in informatica, un algoritmo non è altro che un semplice procedimento che permette la risoluzione di specifici problemi mediante l’applicazione di una sequenza finita di precise istruzioni che, a loro volta, devono essere interpretate ed eseguite fino alla loro conclusione seguendo un ordine ben preciso.
deve esistere qualcuno (cuoco) che esegua la ricetta le istruzioni devono essere eseguite in ordine per partire dagli ingredienti ed ottenere il piatto il cuoco deve conoscere la lingua italiana altrimenti serve un traduttore il cuoco non può preparare “cotolette di arigusta” se non sa preparare la “balsamella” la ricetta per “balsamella” è riportata nel capitolo “salse” cuoco in difficoltà con istruzioni ambigue (“abbiate l’avvertenza di cuocerli poco, in molta acqua”) l’ordine di esecuzione è importante (“condite gli spaghetti” dopo “cuocerli”) istruzioni non infinite tempo non infinito eseguendo più volte la stessa ricetta si ottiene lo stesso piatto se una ricetta è per 4 persone, raddoppiando le dosi degli ingredienti vale per 8 persone
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)
Una programmazione diretta della macchina hardware da parte degli utenti creerebbe delle serie difficoltà 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
usare nello stesso modo (o comunque in un modo molto simile) macchine diverse dal punto di vista hardware avere un semplice linguaggio di interazione con la macchina avere un insieme di programmi applicativi per svolgere compiti diversi
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
Linguaggio di comandi (interfaccia testuale) C:> print foo 1 .doc Can’t find file foo 1 .doc C:> Dai il messaggio di prompt all’utente Quando arriva il comando, riconoscilo Se è corretto, esegui l’azione corrispondente Se è errato, dai un messaggio di errore Al termine dell’operazione, torna all’inizio
Linguaggio di comandi (interfaccia grafica) Per esempio: interfaccia grafica Nei calcolatori con interfaccia grafica molti comandi sono impartiti mediante l’interazione attraverso il mouse e la tastiera Cioè il clic (il doppia clic, …) del mouse su un’icona viene tradotto in una opportuna sequenza di istruzioni che il computer esegue per soddisfare la richiesta dell’utente
Linguaggio di comandi (interfaccia grafica) Mac OSX di Apple
Linguaggio di comandi (interfaccia grafica) Linux