Corso di Informatica
Sistemi Software
Ing Pasquale Rota
Sistemi Software
Macchina virtuale
Tipi di software
Software di sistema
o Sistema operativo
o Assemblatori e linguaggio assemblativo
o Linguaggi di programmazione
Compilatori e traduzione dei linguaggi
Sistemi Software - Ing. Pasquale
Rota
2
Che cosa è il software
• Permette al sistema di elaborazione
di svolgere le diverse funzioni che
gli vengono assegnate.
• Contrariamente all’hardware
(oggetto fisico) il software è la parte
immateriale costituita da
informazioni binarie memorizzate su
supporti fisici.
• E’ costituito da un insieme finito ed
ordinato di istruzioni in grado di
essere interpretate ed eseguite dal
sistema di elaborazione.
Sistemi Software - Ing. Pasquale Rota
3
Categorie di software
• I software si dividono in:
Software di sistema
Programmi applicativi
Sono programmi specializzati
che si preoccupano del
funzionamento dei componenti
hardware e si interfacciano con
i programmi applicativi.
Sono costituiti da:
- Linguaggi di programmazione
-Sistemi operativi
-bios
Sono i programmi che
eseguono i compiti specifici
assegnati al computer
(applicazioni).
Sono solitamente specializzati
per risolvere problemi ben
determinati.
Sistemi Software - Ing. Pasquale Rota
4
Sistemi software
• L’informatica deve interfacciare da una parte un mondo
fatto di circuiti digitali, numeri binari, indirizzi di memoria
assoluti e relativi, istruzioni in linguaggio macchina e
dall’altra la persona umana con le sue capacità logiche e
i suoi sensi.
• E’ indispensabile introdurre un livello di astrazione tra noi
e la macchina.
• Occorre quindi creare un’interfaccia tra utente e
hardware con i compiti di:
 rendere trasparente l’hardware della macchina
 accedere alle risorse hardware
 evitare azioni non corrette e/o danni.
Sistemi Software - Ing. Pasquale Rota
5
La macchina virtuale
• Il software di sistema è una raccolta di programmi che
gestiscono le risorse di un computer e ne facilitano
l’accesso.
• Opera da intermediario tra gli utenti e l’hardware
• Presenta una serie di risorse e di servizi verso l’utente.
• L’insieme dei servizi e delle risorse creato dal software e
visto dall’utente si chiama macchina (ambiente)
virtuale.
• Il software di sistema permette di:
– nascondere i dettagli della struttura interna della macchina di
Von Neumann;
– presentare le risorse in un modo comprensibile per l’utente
– consentire all’utente di accedere alle risorse in modo semplice
ed efficiente
– fornire un ambiente sicuro e protetto in cui operare.
Sistemi Software - Ing. Pasquale Rota
6
Tipi di software di sistema
Il programma che controlla le attività complessive del computer è detto
Sistema Operativo, ed è costituito da pacchetti (programmi) che
gestiscono tutte le richieste e gli accessi alle risorse hardware:
– Interfaccia utente: GUI (Graphical User Interface);
– Traduttori: permettono di passare da istruzioni scritte in linguaggi ad alto
livello in istruzioni scritte in linguaggio macchina;
– Gestori di memoria: per caricare le istruzioni in memoria centrale;
– Gestori di informazioni;
– Sistemi di I/O;
– Scheduler;
– Programmi di utilità.
Senza la macchina virtuale sarebbe estremamente complesso
l’operazione di eseguire programmi in quanto l’utente oltre alla
correttezza del programma si dovrebbe preoccupare di tutte le attività
di gestione, caricamento, utilizzo delle periferiche ecc. ecc.
Sistemi Software - Ing. Pasquale Rota
7
Utilità
Esistono una serie di programmi applicativi che risolvono
particolari problemi dei sistemi elaborativi. Alcuni di
questi integrano funzioni tipiche del sistema operativo e
degli applicativi. Tali programmi spesso vengono indicati
come utilità. Tra i più diffusi:
–
–
–
–
–
–
Antivirus
Software di gestione e recupero file
Diagnostici
Gestione sistema (miglioramento)
Backup.
Etc..
Sistemi Software - Ing. Pasquale Rota
8
BIOS
Il BIOS (Basic Input Output System) è un programma di base che
viene eseguito all’avvio del sistema hardware. E’ registrato in modo
permanente su una memoria di tipo ROM. Viene considerato una via
di mezzo tra un software e un hardware per questo prende anche il
nome di FIRMWARE.
Il bios ha la funzione di:
• localizzare e caricare il sistema operativo
nella RAM;
• fornire il supporto per le chiamate di sistema
verso la gestione della tastiera e alcune;
primitive per la gestione dell'output sul video;
• garantire la comunicazione a basso livello tra
l’unità centrale e le unità periferiche.
Sistemi Software - Ing. Pasquale Rota
9
Bootstrap
L'avvio del sistema operativo si attua per mezzo di
una procedura detta di bootstrap

Le modalità di funzionamento
variano da un sistema
operativo all'altro

memoria principale
programma
di bootstrap
R
O
M
R
A
M
Sistemi Software - Ing. Pasquale Rota
10
vi
m mi applic
a
r
a
g
ro ma opera ti
e
st Bios ti
Si
vo
Lo scopo del bios è di fornire
un collegamento tra il
software e i componenti
hardware del sistema.
Il sistema operativo si
appoggia al bios per
scambiare informazioni con i
dispositivi hardware.
Il software applicativo
esegue istruzioni e qualora
ha necessità di utilizzare
componenti hw scambia dati
col sistema operativo.
P
Struttura del sistema
Sistemi Software - Ing. Pasquale Rota
hardware
11
Struttura del sistema operativo
• Il Sistema Operativo permette alle applicazioni di astrarre dal
dettaglio hardware e di operare in termini di richieste di servizi al
Sistema Operativo stesso.
Appl.
2
Appl.N
Appl.
1
Sistema Operativo
Hardware
Sistemi Software - Ing. Pasquale Rota
12
Funzioni del Sistema Operativo
•
•
•
•
Gestisce le risorse dell’elaboratore
Controlla il flusso e la correttezza delle operazioni/istruzioni
Gestisce la collocazione dei dati e delle istruzioni
Coordina la comunicazione tra i diversi componenti del sistema
Il sistema operativo è una sorta di substrato che si pone
sopra la macchina fisica. Il compito del sistema
operativo, oltre a quello di controllare l’esecuzione degli
altri programmi, consiste nell’impedire alle applicazioni
di eseguire dei comandi che potrebbero rivelarsi
dannosi per il sistema.
Sistemi Software - Ing. Pasquale Rota
13
Funzioni specifiche
•
•
•
•
•
•
•
•
Interprete di comandi
Gestione della memoria
Gestione dei processi
Gestione dei files
Gestione degli utenti
Gestione dell’ I/O (stampanti, video, tastiera, ...)
Gestione servizi di rete
Protezione del sistema
Sistemi Software - Ing. Pasquale Rota
14
Interprete dei comandi
• Una porzione del sistema operativo si occupa di interpretare
direttamente i comandi inseriti dall’utente o dai programmi
applicativi.
• Un interprete di comandi svolge la funzione di interfaccia utente
(shell). Questa shell primitiva di solito funge anche da interprete per
un linguaggio di programmazione.
• Attualmente un'interfaccia si ottiene per mezzo di un programma
che permette all'utente di interagire su un emulatore di terminale
testuale.
• Nei sistemi operativi moderni l’interfaccia testuale è stata sostituita,
in buona parte, con l'interfaccia grafica (anche conosciuta come
GUI, sigla dell'inglese graphical user interface) con caratteristiche
tipicamente user friendly.
Sistemi Software - Ing. Pasquale Rota
15
Gestore della memoria
• Il gestore di memoria è la componente del sistema operativo che si
occupa di gestire ed assegnare la memoria principale ai processi che
ne fanno richiesta. La gestione della memoria è necessaria per tenere
traccia delle zone di memoria già impegnata e di quelle disponibili: in
mancanza di un sistema di gestione, si avrebbe prima o poi il caso di
processi che si sovrascrivono. Inoltre in caso di errori gravi i processi
possono andare in crash e non essere più in grado di comunicare al
sistema: compito del gestore di memoria, in caso di terminazione
anomala del processo, è di marcare come libere le zone di memoria
possedute dal processo "defunto", rendendole disponibili per nuove
allocazioni
• Nel caso il sistema disponga di un meccanismo di memoria virtuale, il
gestore della memoria si occupa anche di mappare la memoria
virtuale (la memoria virtuale è una memoria presente sulla memoria
secondaria del sistema che viene assimilata alla memoria principale
senza che i programmi stessi o gli utenti debbano preoccuparsi di
nulla).
Sistemi Software - Ing. Pasquale Rota
16
Gestione dei processi
Processo (task): è un programma in esecuzione.
programma => statico
dinamico <= processo
• Un processo incorpora le istruzioni, i dati da elaborare e lo stato
dell’elaborazione (context) .
• SCHEDULER: dispositivo/programma che si occupa di sostituire un
processo, finito o meno, con un altro, cioè uno scheduler gestisce
l’esecuzione di più processi contemporaneamente, assegnando a
turno la CPU ad ognuno di essi, sospendendo l'esecuzione dei
programmi (anche in relazione di un evento esterno lettura
sulla/dalla memoria di massa, stampa, input utente ecc.). Il controllo
della CPU viene passato, a turno, da un processo ad un altro:
poiché questo avviene in modo molto rapido, si ha l’illusione di
concorrenza (contemporaneità)
Sistemi Software - Ing. Pasquale Rota
17
Sistemi operativi multithreading
• I sistemi operativi multitasking sono tali quando possono eseguire
operazioni che appartengono a processi diversi senza terminare i
processi precedenti, L’intervallo di tempo tra un processo e l’altro è
talmente ridotto da simulare la contemporaneità dei processi stessi.
• I sistemi operativi multithreading sono in grado di svolgere più
operazioni in modo contemporaneo (inteso sempre come
sospensione dell’esecuzione di una determinata istruzione prima
che sia terminata ed esecuzione di un’altra operazione), questo è
possibile quando il processo può essere scomposto in thread
(operazioni parallele di un processo).
Sistemi Software - Ing. Pasquale Rota
18
Gestione degli utenti-sistemi multiutente
• Un sistema multiutente è un sistema in grado di accettare comandi
da più utenti contemporaneamente.
• Dal punto di vista della sicurezza del sistema i vari utenti devono
essere gestiti in modo che nessuno possa causare danni agli altri o
alla macchina, garantendo al contempo la corretta esecuzione dei
programmi.
• Questi problemi si risolvono assegnando un account univoco per
ogni utente, assegnando un proprietario ai file ed ai programmi e
gestendo un sistema di permessi per l'accesso ad essi, si deve
prevedere una gerarchia di utenti (cioè gruppi di account con
permessi diversi) per cui il sistema rifiuterà tutti i comandi
potenzialmente "pericolosi" e li accetterà soltanto se impartiti da un
utente in cima alla gerarchia. L’utente in cima alla gerarchia è
l'amministratore del sistema (generalmente l'account root nei
sistemi Unix, Administrator nei sistemi Windows).
Sistemi Software - Ing. Pasquale Rota
19
Tipologia di sistemi operativi
Singolo utente / Multi utente
Desktop
Sistemi distribuiti
Server
mainframe
Embedded
Piccoli dispositivi
Real time
Disp. Controllo
Sistemi Software - Ing. Pasquale Rota
20
Un sistema operativo può essere suddiviso in:
Kernel (lett. Nocciolo)
Shell (guscio)
L’utente non interagisce
direttamente con il kernel
ma lo fa attraverso la shell
Sistemi Software - Ing. Pasquale
Rota
kernel
shell
21
Kernel e modi operativi
• Il kernel è il cuore di un sistema operativo.
• Si tratta di un insieme di software con il compito di
fornire ai processi un accesso sicuro e controllato verso
l’hardware. L'accesso diretto può essere complesso,
quindi i kernel usualmente implementano uno o più tipi di
astrazione dell’hardware.
Modalità operative del sistema:
-USER MODE esecuzione di operazioni per un utente
(modalità limitata).
-KERNEL MODE esecuzione di operazioni per il sistema
operativo (modalità protetta).
Sistemi Software - Ing. Pasquale Rota
22
Organizzazione dei dati
Le informazioni (dati) sono sequenze di caratteri
ciascuno dei quali è codificato con un byte
Le informazioni sono registrate sulla memoria di massa
sotto forma di file
Le informazioni codificate al suo interno sono leggibili
solo da software
Sistemi Software - Ing. Pasquale Rota
23
Organizzazione dei dati (2)
La memorizzazione dei file in una memoria di massa ne
richiede la suddivisione in blocchi chiamati record fisici.
Uno dei compiti del Sistema operativo è rendere
trasparente alle applicazioni la reale suddivisione fisica
del file e occuparsi di gestire la scrittura e il recupero
delle informazioni dai vari record fisici.
È compito del sistema operativo la gestione dei
permessi di accesso al file.
Sistemi Software - Ing. Pasquale Rota
24
File system
•
File: insieme di informazioni codificate, predisposte come una
sequenza (di byte) e immagazzinate in un unico elemento.
• File system: modalità con cui i file sono immagazzinati e
organizzati su un dispositivo di archiviazione.
Esistono diversi tipi di file system, creati per distinti sistemi operativi,
per diverse unità di memorizzazione e per diversi usi.
Il sistema operativo ha la funzione di gestire i file.
Il file system è l’insieme dei dati (astratti) necessari per la
memorizzazione, l’organizzazione, la manipolazione, la
navigazione, l’accesso e la lettura dei dati presenti sulla memoria
secondaria.
Sistemi Software - Ing. Pasquale Rota
25
Caratteristiche dei file system
• La memoria secondaria (hard disk) si presenta come un
insieme di blocchi di dimensione fissa (settori),
tipicamente di 512 byte l'uno. I settori sono a loro volta
raggruppati dal punto di vista logico in cluster.
• Le operazioni disponibili sono la lettura e la scrittura di
un singolo blocco, o talvolta di un insieme di blocchi.
• I cluster/ settori sono organizzati in archivi (file) di
dimensione variabile, l’utente vede solo i file e non si
deve preoccupare di quali siano i settori utilizzati per
memorizzarlo, attività gestita dal File System
Sistemi Software - Ing. Pasquale Rota
26
Caratteristiche dei file system
• Un File System può essere suddiviso in quattro aree:
– Area riservata (Master Boot Record),
– Tabella di Allocazione dei File
– Directory radice
– Area dei File.
• Il File System mediante livelli di astrazione rende
disponibili all’utente le risorse archiviate sui dispositivi di
memorizzazione di massa ed organizzate in FILE.
Sistemi Software - Ing. Pasquale
Rota
27
Caratteristiche dei file
I file si caratterizzano per :
• Nome del file
• Cartella in cui è archiviato
• Unità di memoria
• Permessi sui file
Sistemi Software - Ing. Pasquale Rota
28
Nomi di file e cartelle
Il nome del file permette la sua identificazione. E’
costituito normalmente da 2 parti separate da un punto:
– un nome che lo identifica
– un estensione che ne individua la tipologia.
(In realtà è il nome file può anche essere più articolato “Pippo-1.doc.old”)
I file vengono raccolti per cartelle. Le strutture delle cartelle possono
essere ad un unico livello o avere una struttura gerarchica (ad
albero) in cui le cartelle possono a loro volta contenere altre cartelle.
I file system hanno tabelle che associano i nomi dei file ai file (dati)
mediante un indice detto tabella di allocazione dei file (FAT per
sistemi windows).
Sistemi Software - Ing. Pasquale Rota
29
Operazioni sui file system
• I file system tradizionali offrono degli strumenti per
creare, muovere ed eliminare sia i file che le cartelle,
inoltre impediscono alcuni tipi di operazioni pericolose
per il sistema.
• Questi file system tradizionali hanno anche dei metodi
per troncare i file, per sostituire o aggiungervi in coda
alcuni dati.
• I criteri di sicurezza nell'accesso alle operazioni sui file
system sono in genere basati su liste di controllo di
accesso (access control list o ACL). Una ACL permette
di definire per ciascun elemento del file system di quali
permessi (lettura, scrittura, modifica ecc.) dispone il
singolo utente che accede al sistema.
Sistemi Software - Ing. Pasquale Rota
30
Formattazione
Formattazione
La formattazione riguarda la struttura del supporto magnetico utilizzato
per la memorizzazione dei dati, il supporto magnetico viene
riorganizzato secondo una diversa struttura-forma. Durante la fase di
installazione del sistema operativo la prima operazione è proprio quella
della formattazione. L’operazione consiste nel creare la tabella di
allocazione dei file (FAT) associando a ciascun indice la porzione fisica
di disco corrispondente.
Esistono due tipi di formattazioni:
• la formattazione completa è distruttiva perché riscrive fisicamente per
intero il supporto e proprio per questo motivo necessita di parecchio
tempo per essere portata a termine.
• la formattazione rapida riscrive solo la tabella di allocazione dei file
(FAT) è più veloce ma meno sicura in quanto i dati permangono
all’interno del file system fintantoché l’area dati non viene sovrascritta.
Sistemi Software - Ing. Pasquale Rota
31
Tabella di allocazione dei File
• Sulla FAT sono conservate le tracce delle aree del disco
disponibili e quelle già usate dai file o dalle directory.
• Ogni voce della Tabella di Allocazione dei File (record),
corrisponde ad un cluster dell'area dei file. Nei record
vengono indicati la posizione dei cluster e la sequenza
esatta per accedere ai file.
• I più conosciuti (in ambiente windows) sono:
– FAT32, NTFS
• In ambiente UNIX/LINUX
– JFS, REISER4, EXT4
Sistemi Software - Ing. Pasquale Rota
32
Linguaggio
• Che cosa è un linguaggio?
Un linguaggio è “un insieme di parole e di metodi di
combinazione delle parole” utilizzate e comprese da
una comunità di persone.
• È una definizione poco precisa:
- non evita le ambiguità dei linguaggi naturali
- non si presta a descrivere le procedure
Sistemi Software - Ing. Pasquale
Rota
33
Linguaggio naturale e linguaggio macchina
• La comunicazione uomo-macchina avviene attraverso
formalismi che assumono la forma di un linguaggio.
• Caratteristiche del Linguaggio Naturale:
– Vantaggi: Ricchezza, espressiva;
– Svantaggi: Ambiguità, Ridondanza.
• Caratteristiche del Linguaggio Macchina (codice
binario):
– Vantaggi:
• Legato alla struttura fisica dell’elaboratore;
• Potente e veloce;
– Svantaggi:
• Codifica lunga e di difficile scrittura;
• Difficoltà di comprensione per l’uomo.
Sistemi Software - Ing. Pasquale Rota
34
Linguaggi di programmazione
• Un linguaggio di programmazione è una notazione
formale che può essere usata per descrivere algoritmi.
Dotato di:
– sintassi
– semantica
• Sintassi: l’insieme di regole formali per la scrittura di
programmi in un linguaggio, che dettano le modalità per
costruire frasi corrette nel linguaggio stesso.
• Semantica: l’insieme dei significati da attribuire alle frasi
(sintatticamente corrette) costruite nel linguaggio.
Sistemi Software - Ing. Pasquale Rota
35
Linguaggio di Programmazione
• Programma:
formulazione di un algoritmo nei termini di un
linguaggio di programmazione.
• Linguaggio di Programmazione:
– Linguaggio intermedio fra il linguaggio macchina e il
linguaggio naturale;
– Descrive gli algoritmi con una ricchezza espressiva
comparabile con quella dei linguaggi naturali;
– Descrive gli algoritmi in modo rigoroso.
Sistemi Software - Ing. Pasquale Rota
36
Livelli di astrazione del software
•
Esistono linguaggi a vari livelli (livelli di astrazione) in
relazione alla maggiore o minore affinità con il
linguaggio utilizzato dal computer.
1. LINGUAGGIO A BASSO LIVELLO
2. LINGUAGGIO AD ALTO LIVELLO
Sistemi Software - Ing. Pasquale Rota
37
Linguaggi a basso livello
• Si parla di Linguaggi a basso livello quando il linguaggio
ha una sintassi che si avvicina a quella della macchina.
• I linguaggi a basso livello sono specifici per l’hardware di
ciascun processore.
set di istruzioni CPU
=
set istruzioni linguaggio
Si parla di Linguaggio Macchina
Sistemi Software - Ing. Pasquale Rota
38
Linguaggi ad alto livello
• I linguaggi di programmazione ad alto livello, sono più
vicini al linguaggio umano scritto (facilitano
l’implementazione degli algoritmi da parte dei
programmatori), hanno però la proprietà di poter essere
ricondotti, in maniera non ambigua, al linguaggio
macchina.
• Sono indipendenti dalla macchina hardware sottostante.
Sistemi Software - Ing. Pasquale Rota
39
Assemblatori e linguaggi assemblativi
• Il linguaggio macchina risulta complesso e difficile da
comprendere:
– Usa codice binario;
– È difficile da modificare;
– Gli indirizzi di memoria sono numerici (binario);
– I dati sono espressi in binario.
• Per facilitare lo sviluppo di codice è stato sviluppato un
nuovo tipo di linguaggio denominato assemblativo
(assembly). L’assembler messo a disposizione è
pensato più per l’utilizzatore che per la macchina.
Sistemi Software - Ing. Pasquale Rota
40
Linguaggi Assemblativi e Assemblatori
• I linguaggi assemblativi sono linguaggi simbolici, in cui le istruzioni
sono rappresentate da nomi (codice mnemonico) che richiamano il
termine inglese corrispondente e i dati sono identificati da lettere
assegnate a campi di memoria centrale;
• Sono linguaggi specifici per ciascun tipo di microprocessore.
• L'Assembler è un linguaggio orientato alla macchina e per
programmare è necessario conoscere a fondo la struttura
dell'elaboratore.
• Il rapporto tra istruzioni Assembler e istruzioni del linguaggio
macchina è in genere 1:1
• Assemblatori: sono i traduttori dei linguaggi assemblativi;
Assemblatore
Programma sorgente
in ling. assemblativo
Programma
in linguaggio macchina
Sistemi Software - Ing. Pasquale Rota
Dati
Risultati
41
Assembler
• Il microprocessore non è in grado
di comprendere il codice scritto in
assembler, questo deve essere
tradotto in linguaggio macchina
da un programma detto
assemblatore.
• L’assemblatore ha una tabella di
decodifica che converte i codici
mnemonici in codici numerici,
costituendo il codice oggetto.
Sistemi Software - Ing. Pasquale Rota
Codice sorgente
(assembler)
Assemblatore
Codice oggetto
(ling. macchina)
42
Linguaggi di terza generazione
 I linguaggi di terza
generazione
corrispondono ai
linguaggi di alto livello.
 Il programmatore può
non considerare i dettagli
legati all’architettura ed
esprimere i propri
algoritmi in modo
simbolico.
 Sono indipendenti dalla
macchina hardware
sottostante.
Linguaggio
Naturale
Grammatica
Linguaggio di
Programmazione
Linguaggio
Macchina
Sistemi Software - Ing. Pasquale Rota
Traduttore
43
Traduttore
• Il programma viene descritto nei minimi dettagli
mediante una procedura (linguaggi procedurali).
• I linguaggi di alto livello sono dotati di un insieme di
istruzioni complesse più articolate rispetto al set di
istruzioni del microprocessore.
• La traduzione delle istruzioni in un codice comprensibile
dall’elaboratore avviene utilizzano un programma detto
traduttore.
I traduttori si dividono in:
Compilatori
Interpreti
Sistemi Software - Ing. Pasquale Rota
44
Assemblatori, Compilatori e Interpreti
Linguaggi ad alto
livello (orientati all’uomo)
Linguaggi a basso
livello (linguaggi assemblativi,
orientati alla macchina)
Compilatori
o Interpreti
Assemblatori
Linguaggio macchina
Sistemi Software - Ing. Pasquale Rota
45
Compilatori
• Intervengono prima che il programma sia eseguito.
• Analizzano la sintassi e traducono le istruzioni in
istruzioni comprensibili dal microprocessore.
• Producono un file contenente il codice oggetto del
programma. Programma che può essere quindi eseguito
sul sistema di elaborazione.
Sistemi Software - Ing. Pasquale Rota
46
Schema di Compilazione
• Il Compilatore riceve un intero programma sorgente e
produce in un file l’intero programma oggetto.
Programma
oggetto
Programma
sorgente
Compilatore
Programma
eseguibile
Linker
• Il Linker collega più moduli oggetto prodotti dal
compilatore in un unico programma eseguibile;
– I riferimenti esterni ad ogni modulo non sono risolti
dal compilatore
– Il linker risolve i riferimenti esterni.
Sistemi Software - Ing. Pasquale Rota
47
Interpreti
• Gli interpreti eseguono in progressione ogni singola
istruzione e la traducono in istruzioni comprensibili dalla
macchina.
– Legge una singola frase in linguaggio sorgente, la
trasforma in una sequenza di istruzioni macchina e le
manda in esecuzione;
– Traduzione e esecuzione sono contestuali.
• Non viene creato il codice oggetto, per utilizzare il
programma sul sistema deve sempre essere presente
l’interprete.
• L’esecuzione generalmente è più lenta.
Sistemi Software - Ing. Pasquale Rota
48
Esempio
•
•
•
•
• Linguaggio Macchina:
0100 0000 0000 1000
0100 0000 0000 1001
0000 0000 0000 1000
Difficile leggere e capire un
programma scritto in forma binaria
•
•
•
•
•
• Linguaggio Assembler:
… LOAD A H
LOAD B Z
ADD
…
Le istruzioni corrispondono
univocamente a quelle macchina, ma
vengono espresse tramite nomi
simbolici (parole chiave).
•
•
•
•
•
•
• Linguaggi di Alto Livello:
main()
{ int A;
scanf(“%d”,&A);
if (A==0) {…}
…}
Sono indipendenti dalla macchina
Sistemi Software - Ing. Pasquale Rota
49
Traduttori
• Il linguaggio macchina è l’unico linguaggio compreso
dall’elaboratore;
• Qualsiasi altro linguaggio di programmazione ha bisogno
di un traduttore (non è possibile progettare un traduttore
per i linguaggi naturali);
• I linguaggio di programmazione sono comprensibili sia
dalla macchina (attraverso un traduttore) che dall’uomo.
Sistemi Software - Ing. Pasquale Rota
50
Compilatori e Interpreti: caratteristiche
• Compilatori:
– Codice ottimizzato;
– Programmi più veloci da eseguire;
– I compilatori sono legati all’architettura dell’elaboratore tramite il
sistema operativo.
• Interpreti:
– Programmi più lenti (traduzione ed esecuzione sono contestuali);
– Messa a punto del programma (debugging) migliore (si conosce
la riga di programma dove si è verificato un errore);
– Gli interpreti sono legati all’architettura dell’elaboratore tramite il
sistema operativo.
Sistemi Software - Ing. Pasquale Rota
51