Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due...

13
Introduzione alla programmazione

Transcript of Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due...

Page 1: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

Introduzione alla programmazione

Page 2: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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

Page 3: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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.

Page 4: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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

Page 5: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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

Page 6: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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.

Page 7: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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.

Page 8: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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

Page 9: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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).

Page 10: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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.

Page 11: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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.

Page 12: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

Sviluppo di software

File sorgente Compilatore

File oggetto

File eseguibileAltri file oggetto

(librerie) Linker

Loader

Page 13: Introduzione alla programmazione. Organizzazione di un calcolatore Un calcolatore e composto da due parti: Hardware – la parte che effettua la computazione.

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.