Laboratorio di Architettura lezione 1 Comunicazione MM→Studenti

Transcript

Laboratorio di Architettura lezione 1 Comunicazione MM→Studenti
Laboratorio di Architettura
lezione 1
Massimo Marchiori
W3C/MIT/UNIVE
Comunicazione
à Studenti
à MM
l Studenti à Studenti
l MM
l Studenti
MMà
MMàStudenti
l Speciale
mailing list
sottoscrivere, ognuno col proprio
indirizzo di email
l Potete usare piu’ indirizzi oltre a dsi.unive.it
l Questo vale anche come “ticket” per il
corso: non si puo’ fare se non
sottoscriverete a questa lista
l Attenzione che viaggio molto…
l Dovrete
MM à Studenti
l Home
Page del Corso:
http://www.dsi.unive.it/~lab-arch
(in costruzione)
l NOTA: e’ DIVERSA da quella dell’anno
scorso
1
Studenti à MM
l Indirizzo
email del corso:
[email protected]
l Please NON usate la mia email personale a
unive.it TRANNE che non riguardi cose
urgenti o che richiedano una risposta veloce
l ASSOLUTAMENTE NON USATE
[email protected]
l à 1 punto in meno per ogni email…
Struttura delle Lezioni
l
l
l
Lezioni teoriche: in Aula 1,2
Laboratorio:
All’inizio con me
A regime, ogni settimana:
un giorno col Dott. Sorato
(assistente di laboratorio)
un giorno da soli
Ricevimento esteso con me
(orario da annunciare)
Studenti à Studenti
l Mailing
list per gli studenti
(in costruzione)
l Puo’ essere usata come “forum” per
discussioni tra tutti voi riguardo al corso
l Dovrebbe anche essere archiviata e
disponibile sul web
Overview del Corso
(flessibile)
flessibile)
Programma.htm
2
Sondaggi
l Quanti sanno usare
Linux/Unix
l Quanti sanno usare Windows
Linguaggio Macchina
l Prima
reazione:
l BUUUUHH!
l Quanti hanno gia’ visto qualcosa di
linguaggio macchina
l Quanti hanno fatto programmazione (e
quindi sanno il C…)?
Ragioni contro
1.
2.
3.
E’ noioso
E’ difficile
Non serve a niente
Ragioni contro
l Noioso?
Ehm…, si’…
difficile? Mito.
l Non serve a niente? Falso.
l E’
3
Ragioni a favore
l
l
Propedeuticita’:
aiuta a far capire come funziona
veramente un computer
Alto/Basso livello:
aiuta a scrivere meglio nel linguaggio di
piu’ alto livello (ad esempio, C), perche’
si capisce come poi viene eseguito
Ragioni a favore (2)
l E’
il PIU’ POTENTE dei linguaggi di
programmazione: consente accesso
completo a TUTTE le risorse del computer
Intuizione di fondo
l
l
l
Il linguaggio di alto livello “astrae” dalla specifica
piattaforma, fornendo costrutti piu’ semplici e
generali
Cioe’, e’ una “interfaccia generica” buona per
ogni computer (con tutti i vantaggi che questo
comporta)
Ma proprio perche’ e’ uguale per tutte le
macchine, NON puo’ comprenderne le particolari
funzionalita’…
POTENZA
l Il
linguaggio macchina permette di fare
cose non solo fisicamente impossibili per
altri linguaggi (tipo, accedere e manipolare
schede grafiche, registri di memoria etc),
l Ma anche cose impossibili (e abbastanza
rivoluzionarie) a livello CONCETTUALE
4
ESEMPI
l Programmi
che si auto-modificano (si
riscrivono da soli!)
l Il concetto che il DATO e’ equivalente al
PROGRAMMA, concetto che ha portato a
rivoluzioni quali il teorema di Godel in
logica, la call-by-reference in C,
l’inheritance in Java e C++, etc etc…
Cos’e’ un computer?
l Classica
domanda da un milione di
dollari… ;-)
l Il computer e’ una
MACCHINA DEL TEMPO
l Il fuso orario ha colpito…?
Infine,
Infine, IMPORTANTISSIMO
l SPAZIO
l TEMPO
LA MACCHINA DEL TEMPO
l La caratteristica
essenziale e distintiva del
computer, e’ che riesce ad accorciare lo
scorrere del tempo
5
La Ferrari dei linguaggi
di programmazione
l Tornando
al linguaggio macchina dunque, il
linguaggio macchina ha il vantaggio di
essere il piu’ veloce tra tutti i linguaggi di
programmazione
SPAZIO E TEMPO
l Spazio
e tempo sono intimamente correlati
fra loro (come vedremo in una lezione
successiva)
SPAZIO
l Spazio
inteso in termini di memoria,
grandezza del programma
l Il linguaggio macchina e’ anche il
linguaggio piu’ economico (che occupa
meno spazio) di tutti gli altri linguaggi
ESERCIZIO e PARADOSSO
l The
Evolution of a Programmer.htm
6
QUINDI..???
l Il
linguaggio macchina non e’ il piu’
economico?
l Il fuso orario ha colpito ancora??
l Esercizio per casa…
TEMPO in pratica
l
l
l
CONTRO: la velocita’ dei computer cresce di
continuo, quindi l’argomentazione della velocita’
non e’ molto rilevante
RISPOSTA1: parzialmente vero, MA l’effettivo
incremento di velocita’ nei processori non e’ cosi’
alto…
à Il Pentium III a 800MhZ NON E’ 2 volte piu’
veloce del Pentium III a 400Mhz…(!)
SPAZIO e TEMPO in pratica
l Si’,
solite cose teoriche… ma poi in pratica?
visione piu’ critica dal punto di vista
pratico
l Una
TEMPO in pratica
l RISPOSTA2….
EsemPio
7
???!!???
l
l
l
Perche’?? Hanno Pentium’s a 5000Mhz..???!?!
E similmente, considerate l’esempio piu’
eclatante: I videogames
I videogames hanno il problema critico della
velocita’ al massimo grado: poca velocita’ implica
poca interattivita’ e poco realismo, che significa
che il miracolo della “macchina del tempo” rivela
tutte le sue pecche…
SPAZIO in pratica
l CONTRO:
La RAM e la memoria su disco
aumenta sempre piu’, quindi
l’argomentazione dell’economicita’ non e’
molto rilevante
l RISPOSTA: e’ vero, ma solo in certi
contesti…
DOVE E’ LA MACCHINA DEL
TEMPO…?
l Per ovviare
a questo, I videogames usano
ormai quasi tutti SCHEDE GRAFICHE
dedicate…
l à che altro non sono che processori con
codice dedicato, esclusivamente in
linguaggio macchina (!)
Quindi in pratica?
pratica?
l All’analisi
pratica, la verita’ sta nel mezzo:
il linguaggio macchina ha dei vantaggi, e
degli svantaggi
l Occorre usarlo in quei contesti dove serve,
non e’ la soluzione per ogni problema
(come non lo e’ nessun linguaggio…)
8
APPROCCIO IBRIDO
l Per
la sue caratteristiche uniche, ogni
linguaggio di programmazione che si
rispetti permette l’INTERFACCIA con il
linguaggio macchina
l à potete usare il linguaggio macchina
esattamente nei punti critici dove serve, e
usare il vostro linguaggio di alto livello
preferito nel resto del progetto
CONCLUSIONE
l Tutto
questo non solo vi serve a qualcosa
dal punto di vista “culturale” e
“intellettivo”, ma anche dal punto di vista
pratico.
l à Puo’ essere un po’ noioso, ma ne vale la
pena…
9