Il software Claudia Raibulet [email protected] Il software Per adesso: concetto di algoritmo e di programma Il software = l’insieme dei programmi che permettono al computer di lavorare I programmi sono scritti in un linguaggio che puo’ essere compreso dalla CPU e contiene istruzioni che vengono eseguite dal processore Linguaggi di programmazione Linguaggio macchina: • Direttamente eseguibile dall’elaboratore Linguaggio assemblatore: • Le istruzioni corrispondono alle istruzioni macchina, ma vengono espresse tramite nomi simbolici (parole chiave) • Il programma prima di essere eseguito deve essere tradotto in linguaggio macchina da un assemblatore Linguaggi di alto livello: • Sono astratti in quanto indipendenti dai dettagli legati all’architettura dell’elaboratore; gli algoritmi sono espressi in modo simbolico • Sono indipendenti dalla macchina (astrazione) Linguaggi di programmazione Un programma scritto in un qualsiasi linguaggio di programmazione (per esempio Java) sia comprensibile (e quindi eseguibile) da un calcolatore, e’ necessaria una sua traduzione dal linguaggio originario al linguaggio macchina Tale operazione e’ svolta da speciali programmi = traduttori I traduttori convertono il codice di programmi scritti in un particolare linguaggio di programmazione (programmi sorgenti), nella corrispondente rappresentazione in linguaggio macchina (programmi eseguibili). Linguaggi di programmazione Due categorie di traduttori: • Compilatori: accettano in ingresso l’intero programma e producono in uscita la rappresentazione dell’intero programma in linguaggio macchina • Interpreti: traducono ed eseguono direttamente ciascuna istruzione del programma sorgente, istruzione per istruzione L’esecuzione di un programma compilato e’ piu’ veloce dell’esecuzione di un programma mediante l’interprete. Fasi di sviluppo di un programma Linguaggi di programmazione Componenti di un ambiente di programmazione: • Editore: serve per scrivere un programma, o meglio il sorgente (in un linguaggio diverso dal linguaggio macchina) che contiene le istruzioni • Compilatore/interprete: opera la traduzione di un programma sorgente scritto in un linguaggio di alto livello in un programma oggetto scritto in un linguaggio direttamente eseguibile dal calcolatore • Debugger: utilizzato per scoprire ed eliminare gli errori (i bachi) durante l’esecuzione di un programma, ma non rilevati in fase di compilazione Schema di un sistema di calcolo Hardware (circuiti logici) Software: • Sistema operativo • Programmi di sistema • Programmi applicativi Utente 1 Utente 2 compilatore assemblatore Utente 3 Utente n video scrittura base di dati Applicativi utente Programmi di sistema sistema operativo hardware