il software

20
Il Software La proprietà fondamentale dei calcolatori e` il fatto di essere programmabile programmabile cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall’ utente mediante un programma programma cioè una sequenza di istruzioni istruzioni eseguibili da un calcolatore. Per scrivere il programma occorre definire prima l’ algoritmo algoritmo, cioè i dati e la sequenza di azioni elementari che devono essere svolti per risolvere il problema.

Upload: genero

Post on 09-Jan-2016

40 views

Category:

Documents


0 download

DESCRIPTION

Il Software. La proprietà fondamentale dei calcolatori e` il fatto di essere programmabile cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall’ utente mediante un programma cioè una sequenza di istruzioni eseguibili da un calcolatore. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Il Software

Il Software

La proprietà fondamentale dei calcolatori e` il fatto di essere programmabileprogrammabile cioè in grado di svolgere compiti diversi a seconda delle istruzioni fornite dall’ utente mediante un programmaprogramma cioè una sequenza di istruzioniistruzioni eseguibili da un calcolatore.

Per scrivere il programma occorre definire prima l’ algoritmoalgoritmo, cioè i dati e la sequenza di azioni elementari che devono essere svolti per risolvere il

problema.

Page 2: Il Software

ALGORITMI

Un algoritmoalgoritmo e` un insieme ordinato di passi che descrivono i datidati che devono essere utilizzati e determinano la sequenza sequenza di azioni elementaridi azioni elementari che devono essere svolte per risolvere il problema.

Un algoritmo puo` essere descritto in modo grafico da un diagramma di flussodiagramma di flusso

Ogni azione dell’ algoritmo e` rappresentata da un bloccoblocco Esistono convenzioni precise sulla forma dei blocchi Le azioni all’interno dei blocchi possono essere specificate a

diversi livelli di dettaglio

Page 3: Il Software

Diagrammi di flusso

START

END

AZIONE

FALSA

CONDIZIONE

VERA

T F

I/O

Page 4: Il Software

Algoritmi e diagrammi di flussomassimo di due numeri

Datix, y, d: variabili

Algoritmo

1. Leggi il valore del primo numero e inseriscilo in x;

2. Leggi il valore del secondo numero e inseriscilo in y;

3. Calcola la differenza d tra x e y

(d <= x - y)

4. SeSe d > 0 allora allora

stampa il contenuto di x

altrimentialtrimenti

stampa il contenuto di y

5. Fine

START

d > 0 ? TF

Stampa x

d <= x - y

Stampa y

END

leggi x

leggi y

Page 5: Il Software

Il Software

Programmare nel linguaggio della macchina hardware e` difficile perché l’utente dovrebbe conoscere l’organizzazione fisica

dell'elaboratore e il suo linguaggio macchina; ogni programma dovrebbe essere scritto utilizzando delle

sequenze di bit ed ogni piccola differenza hardware

comporterebbe una riscrittura del programma stesso.

Page 6: Il Software

Il Software

Questo non è accettabile ed è necessario fornire all’utente un meccanismo per:

astrarre dall’organizzazione fisica della macchina; usare nello stesso modo, o comunque in modo molto

simile, macchine leggermente diverse dal punto di vista hardware o, al limite, macchine con hardware profondamente differente;

avere un semplice linguaggio di interazione con la macchina;

avere un linguaggio semplice e ad alto livello per programmare la macchina;

avere un insieme di programmi applicativi per svolgere diversi compiti

Page 7: Il Software

Il Software Nei moderni sistemi di elaborazione questi obiettivi vengono

raggiunti grazie alla definizione di macchine virtualimacchine virtuali che vengono realizzate al di sopra della macchina hardware reale

HW

macchina virtuale

Utente

Page 8: Il Software

Macchine Virtuali

Ogni macchina reale ha un suo linguaggio macchina LL00 le

cui istruzioni sono direttamente eseguibili dai circuiti elettronici (HW)

Al di sopra di questo linguaggio è possibile definire altri linguaggi LLii e fornire delle regole per tradurne le istruzioni in

opportune sequenze di istruzioni in linguaggio macchina L’insieme di queste nuove istruzioni definisce una macchina macchina

virtualevirtuale in quanto non esiste fisicamente ma viene realizzata mediante il software

La macchina virtuale si preoccuperà della traduzionetraduzione delle istruzioni al livello Li nell'opportuna sequenza di istruzioni di

livello Li-1 che realizza la stessa funzione

Page 9: Il Software

Esempio: all’ insieme di istruzioni macchina L0 possiamo aggiungere la funzione MULT(op1, op2) che non e` realizzata dall’hardware, ma dall’ esecuzione del programma

La macchina virtuale L1 è costituita da L0 {MULT}

Usando le istruzioni di L1 è possibile costruire livelli sempre più sofisticati: L1 {ESP}

Page 10: Il Software

EsempioEsempio: supponiamo che l'utente voglia stampare un file. A livello fisico questa operazione è complessa e richiede operazioni di trasferimento dati dal disco alla stampante (via memoria centrale)

La macchina virtuale fornisce all'utente un semplice comando di stampa:

> print file1

mediante il quale si può richiedere la stampa delle informazioni contenute nel file di nome file1

Page 11: Il Software

La macchina virtuale deve innanzitutto verificare se si tratta di un comando valido

Poi tradurlo nell’opportuna sequenza di istruzioni a basso livello per la macchina fisica

Una volta eseguito il comando, la macchina virtuale si pone in attesa di un nuovo comando da parte dell'utente

Grazie a questo livello software si può astrarre dalle caratteristiche astrarre dalle caratteristiche

fisichefisiche della macchina Si può anche fare in modo che macchine differenti siano usabili in modo simile: si tratta, infatti, di costruire al di sopra delle diverse macchine fisiche la stessa macchina virtuale

Per ogni comando della macchina virtuale si dovranno però avere

diversi programmi di traduzione, uno per ogni tipo di hardware

Page 12: Il Software

Software di base Strumenti per l’uso di linguaggi ad alto livelloStrumenti per l’uso di linguaggi ad alto livello:

Interpreti e compilatori

Strumenti per l’esecuzione di programmi

Sistema operativoSistema operativo

Configurazione e accensione macchina

Gestione di informazione su memoria secondaria

=> FILE SYSTEM

Gestione delle risorse

Comunicazione tra utente e sistema

Page 13: Il Software

Software di base: Linguaggi di Programmazione

Programmare in linguaggio macchinalinguaggio macchina: richiede conoscenza dell’hardware produce programmi non portabiliportabili

Si può utilizzare il linguaggiolinguaggio assemblerassembler

linguaggio vicino al linguaggio macchina usa mnemonici e simboli anziché codifiche e indirizzi la traduzionetraduzione da assembler a linguaggio macchina può

essere fatta dal calcolatore, mediante un assemblatoreassemblatore

Programma

P

in Assembler

Traduttore assembler su macchina M

Programma P’

in linguaggio

macchina M

Page 14: Il Software

Software di base:Linguaggi di Programmazione

Il linguaggiolinguaggio assemblerassembler però produce comunque programmi lunghi e non portabili

Per superare queste difficoltà` sono nati i linguaggi di linguaggi di

programmazione programmazione ad alto livelload alto livello astraggono dalle caratteristiche hardware sono facile da usare sono portabili pero` non producono programmi direttamente

eseguibili e necessitano di una traduzionetraduzione

Page 15: Il Software

Software di base:Linguaggi di Programmazione

Un linguaggio di programmazione ad alto livello L definisce una macchina virtualemacchina virtuale; per poter eseguire su una macchina fisica M un programma scritto nel linguaggio L occorre tradurlo nel linguaggio macchina di M

Il meccanismo di traduzione permette di astrarre dalle caratteristiche fisiche della macchina hardware, per cui programmi scritti nello stesso linguaggio possono essere eseguiti su macchine diverse

Portabilita`Portabilita`

Page 16: Il Software

Software di base:Linguaggi di Programmazione

Esistono due diverse tecniche di traduzione per programmi scritti in linguaggio di alto livello:

CompilazioneCompilazione: il programma P scritto nel linguaggio L viene tradotto in un programma equivalente P’ scritto nel linguaggio macchina, che viene poi eseguito

InterpretazioneInterpretazione: sulla macchina M viene mandato in esecuzione un programma interprete che per ogni istruzione del programma P genera la sequenza corrispondente di istruzioni macchina e le fa eseguire

Page 17: Il Software

COMPILAZIONECOMPILAZIONEes. PASCAL, C, FORTRAN, COBOL . . .

Programma Pin linguaggioL

Compilatoredi L sullamacchina M

Programma P’ inlinguaggiomacchina di M

Esecuzione diP’ su M

Page 18: Il Software

INTERPRETAZIONEINTERPRETAZIONEes. : LISP, PROLOG, BASIC . . .

Programma P inlinguaggio L

Per ogni istruzione

Interprete per L

Istruzioni in linguaggiomacchina di M

Esecuzione di taliistruzioni su M

Page 19: Il Software

Software di base:Linguaggi di Programmazione

Ogni linguaggio di programmazione fornisce un insieme di costrutti base per:

definire i datidati su cui il programma opera specificare le azioni elementariazioni elementari da eseguire sui dati comporre istruzioni elementari in:

sequenzesequenze blocchi condizionaliblocchi condizionali blocchi che devono essere ripetutiblocchi che devono essere ripetuti

interagire con l’utente per l’acquisizione di dati (inputinput) la produzione di dati (outputoutput)

Page 20: Il Software

Algoritmi e programmimassimo di n numeri

Datia, b: variabili

Algoritmo

1. Leggi il valore del primo numero e inseriscilo in a;

2. Finche`Finche` ci sono numeri da esaminare ripetiripeti:

leggi il numero e inseriscilo in b

a <= max(a,b)

5. Stampa a6. Fine

Programma BasicFunction max as integerdim a as integerdim b as integer

input awhile not fine

input ba = max(a, b)

wendprint a