introduzione laboratorio di calcolo corso di laurea in fisica università degli studi di roma la...
TRANSCRIPT
![Page 1: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/1.jpg)
Introduzione
Laboratorio di Calcolo
Corso di Laurea in FisicaUniversità degli Studi di Roma “La Sapienza”
![Page 2: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/2.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 2© 2007
Introduzione al Corso (1)
Scopo del Corso – programmazione e formalizzazione– strumenti: C, Linux
Formato:– 3 Lezioni la settimana (8 settimane)– 1 Laboratorio (3 ore) la settimana
Venerdi pomeriggio 14-17– Ultimi 3 Laboratori valutati con voto– Gruppi di due studenti
![Page 3: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/3.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 3© 2007
Introduzione al Corso (2)
Pagina Web del canale B– http://www.roma1.infn.it/people/barone/labcalc/
Pagina Web per tutti i canali– http://www.phys.uniroma1.it/doc/barone/labcalcolo/
Logistica del Laboratorio– aula Informatica (N.Ed.Fisica)– PC con Linux – l’aula e’ disponibile per laboratorio libero dalle 17
alle 19 me-gi-ve, lu o ma pomeriggio (14-17)
![Page 4: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/4.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 4© 2007
Introduzione al Corso (3)
Testo: L.M.Barone, E.Marinari, G.Organtini, F.Ricci-TersenghiProgrammazione Scientifica, ed. Pearson35 €, copre corsi dei tre anni
Materiali utili sul sitohttp://www.programmazionescientifica.org/– un buon manuale del linguaggio C è
Kelley & Pohl: C-Didattica e Programmazioneed.Addison & Wesley (~ 30 Euro)
![Page 5: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/5.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 5© 2007
Introduzione al Corso (3)
Il laboratorio NON bastaLavoro a casa: – Compilatore C per Windows– Sistema Linux “virtuale”: installare Cygwin da CD o
scaricarlo dalla rete (www.cygwin.com) se avete l’ADSL
– lcc
![Page 6: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/6.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 6© 2007
Introduzione al Corso (4)
Mio indirizzo e-mail:– [email protected]
Ricevimento previa mail Assenze in laboratorio: max 2 Esami: prova pratica + media voti laboratorio
pesata Date esami: 29/30 Marzo o 12/13 Aprile
![Page 7: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/7.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 7© 2007
Calcolatori
Calcolatori Digitali– Informazione codificata utilizzando numeri (digits)– 2 numeri sistema binario (bits = binary digits)
1/0 Interruttore acceso/spento Tensione V=0/V=-0.8 (NIM) Condensatore Carico/Scarico
Compiti– Eseguire operazioni logiche e/o numeriche– Operazioni complesse “spezzate” in operazioni
elementari
![Page 8: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/8.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 8© 2007
Architettura HW di base
Processore
ALUCPU
I/O BusMemory Bus
![Page 9: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/9.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 9© 2007
Software
Insieme di istruzioni e dati trattati dal computer Le istruzioni possono essere a diversi livelli
– Istruzioni macchina: insieme limitato di funzioni specifiche della CPU
Leggi un byte da una locazione di memoria Somma tra loro il contenuto di due registri Esegui le istruzioni a partire dalla locazione m
– Istruzioni di alto livello: funzioni che vengono tradotte in sequenze di istruzioni in linguaggio macchina prima di essere eseguite
![Page 10: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/10.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 10© 2007
Il sistema operativo
Il sistema operativo è l’insieme di programmi che gestisce il computer:– permette l’interazione con il mondo esterno
(Input/Output)– permette di eseguire programmi dell’utente– bilancia le risorse del sistema
Sullo stesso PC possono convivere o alternarsi diversi sistemi (es.Linux e Windows o MacOS)
![Page 11: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/11.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 11© 2007
Linguaggi di alto livello
Linguaggi sintatticamente complessi facili da usare dagli umani: la traduzione in linguaggio macchina viene fatta “dietro le scene”
Si possono classificare in procedurali (C, FORTRAN, PASCAL) e Object Oriented (C++,JAVA)
![Page 12: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/12.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 12© 2007
Compilatori
Traduttore da linguaggio di alto livello a linguaggio macchina
Linguaggi evoluti– Versatilità, Semplicità, Flessibilità– Indipendenti dalla macchina
file.c
File sorgente
file.o
File oggettoCompilatore
![Page 13: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/13.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 13© 2007
Linker
Uno o più files oggetto devono essere collegati alle librerie
Librerie: insieme di files oggetto preparati dal produttore del compilatore con le istruzioni per l’esecuzione di compiti comuni– Librerie matematiche– Librerie grafiche– Servizi di I/O
L’operazione di link può essere esplicita o implicita
![Page 14: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/14.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 14© 2007
Linguaggio Macchina
Ad ogni istruzione è associato un codice di N bit
La CPU inizia caricando il byte presente nella locazione 0 e lo interpreta come istruzione
A seconda dell’istruzione si interpretano i bytes successivi
![Page 15: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/15.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 15© 2007
Esempio
Supponiamo che i seguenti codici binari corrispondano alle seguenti istruzioni
001 ldA, X Carica il contenuto della memoria X nel registro A
010 ldB, X Carica il contenuto della memoria X nel registro B
011 sumAB Somma i contenuti dei registri A e B e metti il risultato in A
100 setA, X Scrivi nella memoria X il contenuto del registro A
![Page 16: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/16.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 16© 2007
Esempio
Ed ora supponiamo che la memoria del nostro computer sia così riempita:
Address Content
001 001
010 101
011 010
100 011
101 011
110 100
111 000
![Page 17: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/17.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 17© 2007
Esempio
Ed ora supponiamo che la memoria del nostro computer sia così riempita:
Address Content
001 001
010 101
011 010
100 011
101 011
110 100
111 000
001 viene interpretato comeuna istruzione e quindi come ldA,X.
Di conseguenza il byte successivocontiene il valore di X.
![Page 18: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/18.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 18© 2007
Esempio
Ed ora supponiamo che la memoria del nostro computer sia così riempita:
Address Content
001 001
010 101
011 010
100 011
101 011
110 100
111 000
101 (5) viene dunque caricato nel registro A – e’ un DATO
![Page 19: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/19.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 19© 2007
Esempio
Ed ora supponiamo che la memoria del nostro computer sia così riempita:
Address Content
001 001
010 101
011 010
100 011
101 011
110 100
111 000
010 viene nuovamente interpretato come una istruzione e dunque come ldB, X. Nel registro B viene caricato il numero 011 (3)
![Page 20: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/20.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 20© 2007
Esempio
Ed ora supponiamo che la memoria del nostro computer sia così riempita:
Address Content
001 001
010 101
011 010
100 011
101 011
110 100
111 000
011 rappresenta l’istruzione di somma del contenuto dei registri A e B. In A finisce il valore 8 (5+3)
![Page 21: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/21.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 21© 2007
Esempio
Ed ora supponiamo che la memoria del nostro computer sia così riempita:
Address Content
001 001
010 101
011 010
100 011
101 011
110 100
111 000
l’istruzione di somma non ha parametri perciò il byte successivo è ancora un’istruzione: setA, X dove X=0
![Page 22: Introduzione Laboratorio di Calcolo Corso di Laurea in Fisica Università degli Studi di Roma La Sapienza](https://reader036.vdocuments.pub/reader036/viewer/2022062303/5542eb50497959361e8c0140/html5/thumbnails/22.jpg)
Laboratorio di Calcolo - Prof.L.M.Barone 22© 2007
Caratteristiche del C
(strong) typing tutte le variabili vanno dichiarate ogni istruzione è terminata dal “;” parole riservate: char, double, float, int,long, short, unsigned, while, for, do, if, then, else, void
Tokens: parole chiave, identificatori, costanti, operatori, simboli di interpunzioneEs: int main (void) { }
Gli identificatori devono cominciare con “_” o con una lettera, NON con un numero