Introduzione
Laboratorio di Calcolo
Corso di Laurea in
Fisica
Università degli Studi di Roma
“La Sapienza”
Introduzione al Corso (1)

Scopo del Corso
–
–

Formato:
–
–
–
–
© 2003
programmazione e formalizzazione
strumenti: C, Linux
3 Lezioni la settimana (7 settimane)
1 Laboratorio (3 ore) la settimana
Venerdi pomeriggio 14-17
Ultimi 3 Laboratori valutati con voto
Gruppi di due studenti
Laboratorio di Calcolo - Prof.L.M.Barone
2
Introduzione al Corso (2)

Sito Web: avvisi, note, esercizi
http://www.phys.uniroma1.it/DOCS/CORSI/LabCal/barone/
in caso di emergenza
http://www.roma1.infn.it/people/barone/labcalc/

Logistica del Laboratorio
–
–
–
© 2003
aula Informatica (N.Ed.Fisica)
PC con Linux Suse
due volte a settimana l’aula e’ disponibile per
laboratorio libero
Laboratorio di Calcolo - Prof.L.M.Barone
3
Introduzione al Corso (3)

Testi:
–

Lavoro a casa:
–
–
© 2003
Kelley & Pohl: C-Didattica e Programmazione
ed.Addison & Wesley (~ 30 Euro)
Compilatore C per Windows
Sistema Linux “virtuale”: installare Cygwin da CD o
scaricarlo dalla rete (www.cygwin.com) se avete
l’ADSL
Laboratorio di Calcolo - Prof.L.M.Barone
4
Introduzione al Corso (4)

Mio indirizzo e-mail:
–




© 2003
[email protected]
Ricevimento previa mail
Assenze in laboratorio: max 2
Esami: prova pratica + media voti laboratorio
pesata
Date esami:
Laboratorio di Calcolo - Prof.L.M.Barone
5
Calcolatori

Calcolatori Digitali
–
–
Informazione codificata utilizzando numeri (digits)
2 numeri  sistema binario (bits = binary digits)





Compiti
–
–
© 2003
1/0
Interruttore acceso/spento
Tensione V=0/V=-0.8 (NIM)
Condensatore Carico/Scarico
Eseguire operazioni logiche e/o numeriche
Operazioni complesse “spezzate” in operazioni
elementari
Laboratorio di Calcolo - Prof.L.M.Barone
6
Architettura HW di base
Processore
ALU
CPU
I/O Bus
Memory Bus
© 2003
Laboratorio di Calcolo - Prof.L.M.Barone
7
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



–
© 2003
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
Laboratorio di Calcolo - Prof.L.M.Barone
8
Il sistema operativo

Il sistema operativo è l’insieme di programmi
che gestisce il computer:
–
–
–

© 2003
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)
Laboratorio di Calcolo - Prof.L.M.Barone
9
Linguaggi di alto livello


© 2003
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)
Laboratorio di Calcolo - Prof.L.M.Barone
10
Compilatori


Traduttore da linguaggio di alto livello a
linguaggio macchina
Linguaggi evoluti
–
–
Versatilità, Semplicità, Flessibilità
Indipendenti dalla macchina
file.o
file.c
File sorgente
© 2003
Compilatore
Laboratorio di Calcolo - Prof.L.M.Barone
File oggetto
11
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
–
–
–

© 2003
Librerie matematiche
Librerie grafiche
Servizi di I/O
L’operazione di link può essere esplicita o
implicita
Laboratorio di Calcolo - Prof.L.M.Barone
12
Linguaggio Macchina



© 2003
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
Laboratorio di Calcolo - Prof.L.M.Barone
13
Esempio

© 2003
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
011
sumAB
Carica il contenuto della
memoria X nel registro B
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
Laboratorio di Calcolo - Prof.L.M.Barone
14
Esempio

Ed ora supponiamo che la memoria del nostro
computer sia così riempita:
Address Content
001
001
© 2003
010
011
100
101
101
010
011
011
110
111
100
000
Laboratorio di Calcolo - Prof.L.M.Barone
15
Esempio

Ed ora supponiamo che la memoria del nostro
computer sia così riempita:
Address Content
001
001
© 2003
010
011
100
101
101
010
011
011
110
111
100
000
001 viene interpretato come
una istruzione e quindi come ldA,X.
Di conseguenza il byte successivo
contiene il valore di X.
Laboratorio di Calcolo - Prof.L.M.Barone
16
Esempio

Ed ora supponiamo che la memoria del nostro
computer sia così riempita:
Address Content
001
001
© 2003
010
011
100
101
101
010
011
011
110
111
100
000
101 (5) viene dunque caricato
nel registro A – e’ un DATO
Laboratorio di Calcolo - Prof.L.M.Barone
17
Esempio

Ed ora supponiamo che la memoria del nostro
computer sia così riempita:
Address Content
001
001
© 2003
010
011
100
101
101
010
011
011
110
111
100
000
010 viene nuovamente
interpretato come una
istruzione e dunque come ldB,
X. Nel registro B viene caricato
il numero 011 (3)
Laboratorio di Calcolo - Prof.L.M.Barone
18
Esempio

Ed ora supponiamo che la memoria del nostro
computer sia così riempita:
Address Content
001
001
© 2003
010
011
100
101
101
010
011
011
110
111
100
000
011 rappresenta l’istruzione di
somma del contenuto dei
registri A e B. In A finisce il
valore 8 (5+3)
Laboratorio di Calcolo - Prof.L.M.Barone
19
Esempio

Ed ora supponiamo che la memoria del nostro
computer sia così riempita:
Address Content
001
001
© 2003
010
011
100
101
101
010
011
011
110
111
100
000
l’istruzione di somma non ha
parametri perciò il byte
successivo è ancora
un’istruzione: setA, X dove X=0
Laboratorio di Calcolo - Prof.L.M.Barone
20
Caratteristiche del C



© 2003
(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 interpunzione
Es: int main (void) {
}

Gli identificatori devono cominciare con “_” o con una
lettera, NON con un numero
Laboratorio di Calcolo - Prof.L.M.Barone
21
Scarica

slides PowerPoint