Algoritmi - PowerPoint PPT Presentation

About This Presentation
Title:

Algoritmi

Description:

Title: Digital Representation Subject: CSE 100 Author: Douglas W. Johnson / Larry Snyder Last modified by: andry Created Date: 10/14/2004 3:32:25 PM – PowerPoint PPT presentation

Number of Views:59
Avg rating:3.0/5.0
Slides: 30
Provided by: Dougl326
Category:

less

Transcript and Presenter's Notes

Title: Algoritmi


1
Algoritmi
  • INFO/CSE 100, Spring 2005
  • Fluency in Information Technology

http//www.cs.washington.edu/100
2
Readings and References
  • Reading
  • Fluency with Information Technology
  • Chapters 9, 10

3
Panoramica
  • ..e adesso studiamo come opera un computer
  • Organizzato come livelli di astrazione
  • Programmi applicativi
  • Linguaggi di ordine superiore Javascript, SQL,
  • Sistemi operativi
  • bits, bytes, assembly
  • transistor, elettroni, fotoni

4
Livelli di astrazione
  • At ogni livello di astrazione ci sono
  • Elementi a quel livello
  • Gli elementi costruttivi per quei blocchi
  • Astrazione
  • Isola un livello dai cambiamenti al livello
    inferiore
  • Riduce i dettagli e migliora la produttività
  • Aiuta a definire una singola architettura che
    può essere implementata con una o più
    organizzazioni

5
Architettura Organizzazione
  • Architettura (la definizione logica)
  • Definisce gli elementi e le interfacce tra I
    livelli
  • Instruction Set Architecture
  • instruzioni, registri, indirizzamento
  • Organizzazione (linterpretazione fisica)
  • Componenti e connessioni
  • Come le istruzioni sono implementate
    nellhardware
  • Diverse organizzazioni possono implementare la
    stessa architettura

6
Computer Architecture
  • Specifica come programmare una famiglia di
    computer
  • Quali istruzioni sono disponibili?
  • Come devono essere formattate le istruzioni?
  • Quanti registri e qualè la loro funzione?
  • Come è indirizzata la memoria?
  • Qualche esempio
  • IBM 360, 370,
  • PowerPC 601, 603, G5,
  • Intel x86 286, 386, 486, Pentium,
  • MIPS R2000, R3000, R4000, R5000, ...

7
Computer Organization
  • Processore
  • datapath (unità funzionali) manipolano I bit
  • Il controllo controlla la manipolazione
  • Memoria
  • Memoria cache - piccola, alta velocità
  • Memoria primaria - grande, bassa velocità
  • Input / Output
  • Interfacce al resto del mondo

8
Una tipica organizzazione
Memoria primaria
processore
processor/memory bus
I/O bus
rete
Disco rigido
floppy disk
CDROM drive
Porte seriali
9
Molte Possibili Implementazioni
The Tinkertoy Computer and Other Machinations, by
A.K. Dewdney
10
Computers
  • Eseguono istruzioni in maniera deterministica
  • Deterministica vuol dire che quando si sceglie
    la prossima istruzione si esegue sempre la stessa
    procedura
  • Data listruzione e linput, si può sempre
    stabilire esattamente quali sitruzioni saranno
    eseguite e cosa faranno

I computer non hanno libera scelta e non sono
casuali
11
Il ciclo Fetch/Execution
  • Computer macchina che esegue istruzioni
  • Il ciclo Fetch/Execute è il processo che esegue
    le istruzioni

Instruction Fetch (IF) Instruction Decode
(ID) Data Fetch (DF) Instruction Execution
(EX) Result Return (RR)
12
Anatomia di un Computer
Processor
ALU
Controllo
Ingresso
Mouse Tastiera Scanner Disco rigido USB Monitor St
ampante Casse
Memoria
Uscita
13
Memoria ...
  • Mnetre sono in esecuzione, I programmi e I loro
    dati devono stare in memoria

Locazioni di memoria
Indirizzi di memoria
11
...
Contenuti della memoria
byte8 bits
0
1
0
0
0
1
0
0
14
Control
  • Il ciclo Fetch/Execute è cablato nel controllo
    del computer, ovvero ne è il motore
  • A seonda dellinsieme delle istruzioni, questa
    affermano
  • Metti nella locazione di memoria 20 Il contenuto
    della locazione di memoria 10 il contenuto
    della locazione di memoria 16
  • Le istruzioni eseguite hanno forma ADDB 10, 16, 20

21
...
15
ALU
  • Arithmetic/Logic Unit esegue la vera
    computazione

A seconda dellinsieme delle istruzioni, ogni
tipo di dati ha la propria operazione ADDB
add bytes ADDBU add bytes unsigned ADDH add
half words ADDHU add halves unsigned ADD add
words ADDU add words unsigned ADDS add short
decimal numbers ADDD add long decimal numbers
La maggior parte dei computer ha solo 100-150
istruzioni cablate
16
Ingresso/Uscita
  • Le unità di ingresso portano dai alla memoria del
    computer dal mondo esterno Le unità di uscita le
    restitutiscono al mondo esterno
  • La maggior aprte delle periferiche sono
    stupide, meaning that the processor assists in
    their operation

17
The PCs PC
  • The program counter (PC) tells where the next
    instruction comes from
  • In some architectures, instructions are always 4
    bytes long, so add 4 to the PC to find the next
    instruction

Program Counter 112
121
...
ADD 210,216,220
AND 414,418,720
OR
18
Il clock fa funzionare il motore
  • Il modo con cui il computer fa girare il ciclo
    Fetch/Execute è controllato dal suo clock
  • Attualmente I clock oscillano a 2-3 GHz
  • Il computer cerca di eseguira almeno una
    istruzione per ciclo, a seconda dellistruzione e
    della memoria disponibile
  • Gli attuali processori cercano di eseguire più di
    una istruzione per ciclo

La frequenza di clock non è un indicatore
affidabile della velocità di un computer
19
Algoritmo
  • Algorithm
  • Un modo preciso e sistematico di ottenere un
    ricultato

20
Proprietà di un algoritmo
  • Un algoritmo deve avere
  • Un insieme di simboli dingresso
  • Un insieme di simboili in uscita
  • Un algoritmo deve essere
  • Definitito
  • I passi da intraprendere devono essere ben
    definiti
  • Effettivo
  • I passi devono essere meccanicamente eseguibili
  • Finito
  • Prima o poi deve terminare

21
Communicating
  • Le persone possono inventarsi I passi mancanti,
    ma possono perdersi nei dettagli
  • I computer non possono inventarsi I passi
    mancanti, ma gestiscono I dettagli senza errori
  • Cosa bisogna fare per comunicare con un computer?
  • Siate organizzati e consistenti con ogni
    dettaglio
  • Inventate astrazioni per specificare in maniera
    consistente le idee essenziali
  • Analizzate il vostro algoritmo,

22
Esempio verso la Libreria
A un altro studente A un robot
Oltrepassa la biblioteca e percorri il Viale
fino alla Libreria
Esci da questa stanza. Gira a destra. Vai
allascensore. Gira a destra. Chiama
lascensore ...
  • Lo studente iopera a un alto livello di
    astrazione con un ricco vocabolario di
    abbreviazioni
  • Un algoritmo è un piano per raggiungere un
    obiettivo
  • A program è un implementazione di un algoritmo
  • I buoni algoritmi (a qualunquee livello di
    astrazione) richiedono precisione

23
Analisi di un algoritmo che cosè?
  • Cosè un algoritmo?
  • Una sequenza di passi che eseguono un compito
  • Diversi algoritmi possono eseguire correttamente
    lo stesso compito
  • Possono essere implementati?
  • Termineranno nellarco di vita di una persona?
  • Riichiederanno gigabyte di memoria?

24
Analisi di un algoritmo perchè?
  • Capite I fondamenti matematici dellanalisi di un
    algoritmo
  • Imparate a comparare gli algoritmi in termini di
    memoria e tempo di esecuzione
  • Imparate un certo numero di algoritmi standrad e
    usateli per risolvere nuovi problemi

25
Programmi vs Algoritmi
  • Un programma è un algoritmo specializzato in una
    particolare situazione
  • Un algoritmo
  • longStringWithShortStringInIt ? placeholder
  • ShortString ? e
  • placeholder ? longStringWithShortStringInIt
  • Un programma che lo implementa
  • ?? ? // replace double ltnewlinesgt with ltgt
  • ? ? e // delete all single lt newlinesgt
  • ? ?? // restore all double ltnewlinesgt

26
Programmazione come Comunicazione
  • Quando scriviamo un programma, stiamo comunicando
    con
  • Il computer
  • Altre persone
  • Il computer legge il nostro programma come un
    insieme di istruzioni da eseguire
  • Deve solo capire dove, come e perchè
  • Le altre persone leggono I porgrammi per capire
    come e perchè
  • Programmi che non funzionano (bugs)
  • Evoluzione - nuove caratteristiche
  • Miglioramenti di prestazioni

27
Un algoritmo per ordinare i CDs
Definisci variabile Artista usa Artista per
referire lautore del CD Per tutti gli slot a
partire da sinistra del rack chiama lo slot
corrente alpha per ogni rimanente slot nel
rack chiama lo slot successivo beta
Scambia? SE Artista del CD nello
slot beta precede nell alfabeto
Artista del CD nello slot alfa ,
scambia il CDs next beta next alpha done
28
Un altro ordinamento
  • Con le bottiglie di plastica!

29
Conclusioni
  • A partire dal caso specifico, possiamo astrarre
    gli algoritmi che vogliamo
  • Possiamo imparare dagli algoritmi scritti da
    altri
  • Per comprendere un algoritmo, facciamo
    unastrazione
  • Studiamìndo come lavora un algoritmo, possiamo
    comprenderlo e poi farlo eseguire dal computer
Write a Comment
User Comments (0)
About PowerShow.com