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