Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due...
-
Upload
amedea-di-maio -
Category
Documents
-
view
214 -
download
0
Transcript of Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due...
Introduzione alla programmazione
Organizzazione di un calcolatore Un calcolatore e’ composto da due
parti: Hardware – la parte che effettua la
computazione Software – I programmi che
determinano le operazioni eseguite dall’harware
Sistema Operativo Su ogni calcolatore e’ installato il
sistema operativo. Il sistema operativo e’ un tipo
particolare di programma che controlla l’interazione tra le componenti hardware e l’utente.
Programmazione -Linguaggio macchina Un programma in linguaggio macchina e’
costituito da una sequenza di numeri binari
Ogni numero rappresenta un’istruzione Ogni istruzione e’ comprensibile dal
calcolatore000000000001010100010110
Programmazione - Linguaggio assembly Il linguaggio assembly e’ un’astrazione
del linguaggio macchina Corrispondenza 1-1 tra istruzioni
macchina e istruzioni assembly (comprensibili ad un essere umano)
000000000001010100010110
CLR AADD AADD B
Programmazione - Linguaggio assembly Il linguaggio assembly viene convertito
in linguaggio macchina mediante l’assembler.
Sebbene il linguaggio assembly sia molto piu’ chiaro e comprensibile del linguaggio macchina, e’ comunque difficoltoso scrivere programmi in assembly.
Ad esempio, il codice assembly per la funzione sqrt() e’ composto da centinaia di istruzioni.
Programmazione - Linguaggi ad alto livello Per superare questi ostacoli sono stati
introdotti i linguaggi ad alto livello. Una istruzione di un linguaggio ad
alto livello viene mappata su un insieme di istruzioni assembly.
Il linguaggio ad alto livello viene convertito in assembly (o in linguaggio macchina) dal compilatore.
Programmazione - Compilazione
MOV EAX, 0 // inizializza EAX a 0MOV EBX, 3 // setta il moltiplicando
LABEL1:ADD EAX, 6 // moltiplicatoreDEC EBX // decrementa il contatoreJNZ LABEL1 // se necessario ripeti cicloSTOR A, EBX // memorizza il risultato in A
A = 6 X 3
Sviluppo di software
A parte rare eccezioni, il software e’ sviluppato in linguaggi ad alto livello
Il compilatore trasforma il file sorgente (programma nel linguaggio ad alto livello) nel file oggetto (corrispondente programma in linguaggio macchina).
Sviluppo di software Spesso il programmatore utilizza librerie
di funzioni (collezioni di funzioni che vengono fornite insieme al compilatore come parte dell’ambiente di sviluppo).
Una libreria e’ un file oggetto. Dopo che il codice sorgente e’ stato
compilato in codice macchina, il linker risolve i riferimenti incrociati tra diversi file oggetto. I file oggetto vengono “linkati” in un unico file eseguibile.
Sviluppo di software
A questo punto il file eseguibile e’ pronto per essere eseguito.
Il loader del sistema operativo carica il file eseguibile in memoria e ne avvia l’esecuzione.
Sviluppo di software
File sorgente Compilatore
File oggetto
File eseguibileAltri file oggetto
(librerie) Linker
Loader
Metodologia di sviluppo del software Specificare il problema. Analizzare il problema. Progettare un algoritmo che risolve il
problema. Implementare l’algoritmo. Testare e verificare il programma. Mantenere e aggiornare il
programma.