• Non ci sono risultati.

DEI PoliMI 0LODQR

N/A
N/A
Protected

Academic year: 2021

Condividi "DEI PoliMI 0LODQR"

Copied!
12
0
0

Testo completo

(1)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

,O/LYHOOR0LFURDUFKLWHWWXUD LL

$FXUDGL

/XFD%UHYHJOLHUL*LXVHSSH3R]]L

DEI  PoliMI 0LODQR

OXFDEUHYHJOLHULJLXVHSSHSR]]L#SROLPLLW

 YHUVLRQHGHOO¶DSULOH

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$SSURFFLRDOLYHOOLVWUXWWXUDWL

/LYHOOR 0LFURDUFKLWHWWXUD /LYHOOR /RJLFDGLJLWDOH /LYHOOR ,QVWUXFWLRQ6HW /LYHOOR 6LVWHPDRSHUDWLYR /LYHOOR /LQJXDJJLRDVVHPEODWRUH /LYHOOR /LQJXDJJLDSSOLFDWLYL

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UJRPHQWL

‡ 3URJUDPPD]LRQHGLUHWHHGLVLVWHPD

‡ /LQJXDJJLDVVHPEODWRUL

‡ 6LVWHPDRSHUDWLYR

‡ ,QVWUXFWLRQVHW OLQJXDJJLRPDFFKLQD 

‡ 0LFURDUFKLWHWWXUD ,6$ 

‡ /LYHOORORJLFRGLJLWDOH

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

2VVHUYD]LRQL

‡ ,OLQJXDJJLDVVHPEODWRULXWLOL]]DQRXQ

LQVLHPHGLLVWUX]LRQL LQVWUXFWLRQVHW  IRUWHPHQWHGLSHQGHQWHGDOWLSRGL

PLFURDUFKLWHWWXUDDGRWWDWR

‡ ,OLQJXDJJLDVVHPEODWRULYHGRQR

GLUHWWDPHQWHLUHJLVWULGHOSURFHVVRUHHG

LOPRGHOORGLPHPRULD

(2)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

/DSLODGHOSURFHVVRUH IJVM

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

&RV¶qODSLOD I

‡ /DSLOD VWDFN qXQDVWUXWWXUDGDWLGL

PHPRULD

‡ /DSLODqIRUPDWDGDXQDVXFFHVVLRQHGL

SDUROHGLPHPRULDFRQWLJXH

‡ /DSLODKDXQIRQGR VWDFNEDVH

‡ /DSLODKDXQDFLPD VWDFNWRS

‡ ,Q IJVM VLSXzSHQVDUHFKHRJQL

HOHPHQWR SDUROD FRQWHQXWRQHOODSLOD

VLDXQQXPHURLQWHUR

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

&RV¶qODSLOD II

‡ /DILJXUDDODWR

PRVWUDXQDSLODGL 4 SDUROH HOHPHQWL

‡ /DFLPDFRQWLHQHLO

QXPHUR 7

‡ ,OIRQGRFRQWLHQHLO

QXPHUR 3

‡ /DSLODVWDQHOOD

PHPRULDFHQWUDOH

Memoria centrale

7 (cima)

−2 4

2° elem.

3 (fondo)

3° elem.

pila

1° elem.

4° elem.

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

&RV¶qODSLOD III

‡ 6LXVDODSLODWUDPLWH

GXHUHJLVWUL

SXQWDWRUL

• SP 6WDFN3RLQWHU 

SXQWDDOODFLPDGHOOD

SLOD

• SB 6WDFN%DVH 

SXQWDDOIRQGRGHOOD

SLOD

Memoria centrale

7 (cima)

−2 4 3 (fondo)

pila

SP

SB puntatore alla cima della pila (Stack Pointer)

puntatore al fondo della pila

(Stack Base)

(3)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

3LLQSURIRQGLWj

‡ ,OUHJLVWUR SP 6WDFN3RLQWHU FRQWLHQH

O¶LQGLUL]]RGLPHPRULDGHOODFLPDGHOOD

SLODFKHqLOSULPRHOHPHQWRGHOODSLOD

‡ ,OUHJLVWUR SB 6WDFN%DVH FRQWLHQH

O¶LQGLUL]]RGLPHPRULDGHOIRQGRGHOOD

SLODFKHqO¶XOWLPRHOHPHQWRGHOODSLOD

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

&RPHIXQ]LRQDODSLOD

‡ $OODSLODVLSRVVRQR

± DJJLXQJHUHHOHPHQWLVXOODFLPD

± WRJOLHUHHOHPHQWLGDOODFLPD VHODSLODQRQ

qJLjFRPSOHWDPHQWHYXRWD

‡ $JJLXQJHUHXQHOHPHQWRLQFLPD PUSH

‡ 7RJOLHUHXQHOHPHQWRGDOODFLPD POP

‡ 1DWXUDOPHQWHVLGHYHDQFKHSRWHUH

VDSHUHVHODSLODqYXRWDRSSXUHVH

FRQWLHQHHOHPHQWL

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

/¶RSHUD]LRQH386+

‡ 6LVXSSRQJDGLYROHUHFRSLDUHLQSLODLO

FRQWHQXWRGHOUHJLVWUR R

– PUSH R

‡ 6LLQFUHPHQWDGL 1 LOUHJLVWURSXQWDWRUH

SP 6WDFN3RLQWHU

‡ 6LVFULYHLOYDORUHGL R QHOODFHOODGL

PHPRULDGLFLPDGHOODSLODFKHqOD

FHOODGLPHPRULDSXQWDWDGD SP

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

(VHPSLR PUSH R

Memoria centrale

7 (cima)

−2 4 3 (fondo)

pila

SP

SB puntatore alla cima della pila (Stack Pointer)

puntatore al fondo della pila

(Stack Base) 5 Registro R

Memoria centrale

7

−2 4 3 (fondo)

pila

5 (cima) SP + 1

SB puntatore alla cima della pila (Stack Pointer)

puntatore al fondo della pila

(Stack Base) 5 Registro R

Animazione Fine

(4)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

/¶RSHUD]LRQH POP

‡ 6LVXSSRQJDGLYROHUHWRJOLHUHLOSULPR

HOHPHQWRGHOODSLODVSRVWDQGRORQHO

UHJLVWUR R

– POP R

‡ 6LFRSLDLOSULPRHOHPHQWRGHOODSLODFKH

VLWURYDQHOODFHOODGLPHPRULDSXQWDWD

GDOUHJLVWUR SP QHOUHJLVWUR R

‡ 6LGHFUHPHQWDGLXQRLOUHJLVWUR

SXQWDWRUH SP 6WDFN3RLQWHU

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

(VHPSLR POP R

Memoria centrale

−2 (cima) 4 3 (fondo)

pila

SP − 1

SB puntatore alla cima della pila (Stack Pointer)

puntatore al fondo della pila

(Stack Base) 7 Registro R Memoria

centrale

7 (cima)

−2 4 3 (fondo)

pila

SP

SB puntatore alla cima della pila (Stack Pointer)

puntatore al fondo della pila

(Stack Base) 5 Registro R

Animazione Fine

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

5LDVVXPHQGR

‡ ,QGLFDQGRFRQ M(SP) ODFHOODGL

PHPRULDFRUUHQWHPHQWHSXQWDWDGDO

UHJLVWUR SP, si ha:

± 2SHUD]LRQH PUSH R

• SP + 1 → SP // incrementa SP di uno

• R → M(SP) // copia R in M(SP)

± 2SHUD]LRQH POP R

• M(SP) → R // copia M(SP) in R

• SP − 1 → SP // decrementa SP di uno

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$OFXQLGHWWDJOL I

‡ 6XOODSLODVLSXzLPSLODUH PUSH DQFKH

XQDFRVWDQWH

– PUSH 5 LPSLODODFRVWDQWH 5

‡ 1RQVLSXzLQYHFHVSLODUH POP XQD

FRVWDQWHQRQDYUHEEHVHQVR

– POP 5 qLQVHQVDWR

(5)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$OFXQLGHWWDJOL II

‡ 3ULPDGLLQL]LDUHDXVDUHODSLODRFFRUUH

ILVVDUHLOIRQGRGHOODSLODLQL]LDOL]]DQGRLO

UHJLVWUR SB 6WDFN%DVH

‡ 6HVLYHULILFDODFRQGL]LRQH

SP = SB - 1

ODSLODqYXRWD

‡ $SLODYXRWDqYLHWDWRVSLODUH POP

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$OFXQLGHWWDJOL III

‡ /DSLODPRVWUDWDLQSUHFHGHQ]DFUHVFH

YHUVRO¶DOWR

‡ 6LSXz³ULEDOWDUH´ODSLODIDFHQGROD

FUHVFHUHYHUVRLOEDVVR

Operazione: PUSH R SP − 1 → SP R → M(SP)

Operazione: POP R M(SP) → R SP + 1 → SP

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

/DSLODGL IJVM

‡ ,OLQJXDJJLGLSURJUDPPD]LRQHFRPHLO

C -DYDHDOWULDQFRUDSHUPHWWRQR

± GLDYHUHSURFHGXUHHIXQ]LRQLGRWDWHGL

YDULDELOLORFDOL

± GLDYHUHSURFHGXUHHIXQ]LRQLULFRUVLYH

‡ /DSLODVHUYHSHUJHVWLUHO¶XVRFRUUHWWR

GHOOHYDULDELOLORFDOLHLOIXQ]LRQDPHQWR

GHOODULFRUVLRQH

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

8QFDVRVHPSOLFH I

‡ 6LSRWUHEEHVXSSRUUHGLDVVHJQDUHD

RJQLSURFHGXUD RIXQ]LRQH XQ¶DUHD

GLYHUVDGLPHPRULDFHQWUDOHLQFXLOD

SURFHGXUDWLHQHOHSURSULHYDULDELOLORFDOL

‡ 3UREOHPDVHODSURFHGXUDqULFRUVLYDOD

VHFRQGDFKLDPDWDGHOODSURFHGXUD

RSHUHUHEEHVXOODVWHVVHYDULDELOLORFDOL

GHOODSULPD FKHqXQHUURUH

(6)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

8QFDVRVHPSOLFH II

/ ∗ proc. ricorsiva ∗ / void proc (int b) {

int a;

a = b + 1;

if (b < 10) proc (a);

printf (“%d”, a);

} / ∗ proc. ∗ /

Memoria

centrale

area di

attivazione della procedura

a altre possibili

var. loc. di proc.

cella della var. loc. a

Animazione Fine

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

9DULDELOLORFDOL

‡ ÊGXQTXHLPSRVVLELOHDOORFDUHOHYDULDELOL

ORFDOLGLSURFHGXUHHIXQ]LRQLLQFHOOHGL

PHPRULDGLLQGLUL]]RDVVROXWR FLRqGL

LQGLUL]]RILVVDWRGXUDQWHOD

FRPSLOD]LRQH

‡ 2FFRUUHXWLOL]]DUHXQDVWUDWHJLDGLYHUVD

ODSLODGLPHPRULD RVWDFN

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

9DULDELOLORFDOLLQSLOD

‡ 2JQLSURFHGXUD RIXQ]LRQH SRVVLHGHOH

SURSULHYDULDELOLORFDOL

‡ /HYDULDELOLORFDOLGHOODSURFHGXUD

YHQJRQRDOORFDWHLQVXFFHVVLRQHLQ

XQ¶DUHDGLPHPRULDFKLDPDWD³DUHDGL

DWWLYD]LRQH´ RIUDPH GHOODSURFHGXUD

‡ /HDUHHGLDWWLYD]LRQHGHOOHSURFHGXUH

YHQJRQRLPSLODWH RSHUD]LRQH PUSH  RSSXUHVSLODWH RSHUD]LRQH POP

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

6WUXWWXUDGHOO¶DUHDGLDWWLYD]LRQH

‡ /¶DUHDFRQWLHQHOH

YDUORFGHOODSURF

a1  a2 H a3

‡ ,OUHJLVWUR SP SXQWD

DOODFLPDGHOO¶DUHD

ODYDU a3

‡ ,OUHJLVWR LV SXQWD

DOIRQGRGHOO¶DUHD OD

YDU a1

Memoria centrale

a3 a2 a1

area

SP

LV puntatore alla cima dell’area

puntatore al fondo dell’area

(7)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

(VHPSLRGLDUHDGLDWWLYD]LRQH

‡ /HYDUORF

RFFXSDQR

FLDVFXQD 4 E\WH

‡ *OLLQGLUL]]LGL

PHPRULDVL

ULIHULVFRQRDL

E\WH

Memoria centrale

a3 a2 a1

area

108

100 puntatore alla cima dell’area

puntatore al fondo dell’area 108

104 100

indirizzi

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

6SLD]]DPHQWRQHOO¶DUHD GLDWWLYD]LRQH

‡ 2JQLYDULDELOHORFDOHKDXQR

VSLD]]DPHQWR RIIVHW DOO¶LQWHUQR

GHOO¶DUHDGLDWWLYD]LRQH

‡ /RVSLD]]DPHQWRqFDOFRODWRFRPH

GLVWDQ]DLQE\WHDSDUWLUHGDOIRQGR

GHOO¶DUHDGLDWWLYD]LRQH

‡ /DYDULDELOHORFDOHDOIRQGRGHOO¶DUHDGL

DWWLYD]LRQHKDVSLD]]DPHQWR 0

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

(VHPSLRGLVSLD]]DPHQWR

‡ /DYDUORF a1 KD

VSLD]]DPHQWR 0

‡ /DYDUORF a2 KD

VSLD]]DPHQWR 4

‡ /DYDUORF a3 KD

VSLD]]DPHQWR 8

Memoria centrale

a3 a2 a1

area

108

100 puntatore alla cima dell’area

puntatore al fondo dell’area 108

104 100

indirizzi

2 1 0

indice della variabile

3HUFRPRGLWjOHYDULDELOLVLSRVVRQRLQGLFDUHWUDPLWHXQ

LQGLFHORJLFR QXPYDU SDUWHQGRGD]HURqVRORXQ

QXPHURSURJUHVVLYRXWLOHSHULQGLFDUHODYDULDELOH

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

,PSLODPHQWRGHOOHDUHH I

‡ /DSURFHGXUD A KDXQ¶DUHDGL

DWWLYD]LRQHFRQWHQHQWH 3 YDULDELOLORFDOL

a1  a2 H a3

‡ /DSURFHGXUD B KDXQ¶DUHDGL

DWWLYD]LRQHFRQWHQHQWH 4 YDULDELOLORFDOL

b1  b2  b3 H b4

‡ /DSURFHGXUD A DXQFHUWRSXQWRGHOOD

VXDHVHFX]LRQHFKLDPDODSURFHGXUD B

(8)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

,PSLODPHQWRGHOOHDUHH II

‡ 6XELWRGRSR

O¶HQWUDWDLQ

HVHFX]LRQHGL A OD

SLODFRQWLHQHO¶DUHD

GLDWWLYD]LRQHGL A

‡ ,OUHJLVWUR LV SXQWDDOIRQGR

GHOO¶DUHDGL

DWWLYD]LRQHGL A

Memoria centrale

a3 a2 a1 area di A

SP

LV puntatore alla cima dell’area

puntatore al fondo dell’area pila

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

,PSLODPHQWRGHOOHDUHH III

‡ 4XDQGR B YLHQH

FKLDPDWDGD A 

VRSUDO¶DUHDGL

A VLLPSLOD

O¶DUHDGL B

‡ ,OUHJLVWUR LV SXQWDDOIRQGR

GHOO¶DUHDGL B

Memoria centrale

a3 a2 area di A a1

SP

LV puntatore alla cima dell’area

puntatore al fondo dell’area b3

b2 b1 b4

area di B

pila

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

,PSLODPHQWRGHOOHDUHH IV

‡ 4XDQGRVLLPSLODO¶DUHDGLDWWLYD]LRQH

GHOODSURFHGXUD B LOUHJLVWUR LV YLHQH

LQFUHPHQWDWRLQPRGRGDIDUORSXQWDUH

DOIRQGRGHOO¶DUHDGLDWWLYD]LRQHGL B H

QRQSLGL A

‡ ,QRJQLLVWDQWHOHYDUORFGHOO¶DUHDGL

DWWLYD]LRQHFRUULVSRQGHQWHDOOD

SURFHGXUDFRUUHQWHPHQWHLQHVHFX]LRQH

VRQRLQGLFDWHGDLULVSHWWLYLVSLD]]DPHQWL

ULVSHWWRDOUHJLVWUR LV

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

&KLDPDWHPXOWLSOH I

‡ 6LFRQVLGHULODVHJXHQWHVHTXHQ]DGL

FKLDPDWHDSURFHGXUD

± /DSURFHGXUD A HQWUDLQHVHFX]LRQH FDVRD – A FKLDPDODSURFHGXUD B FDVR b

– B FKLDPDODSURFHGXUD C FDVR c

– C WHUPLQDHDQFKH B WHUPLQDH A FKLDPDOD

SURFHGXUD D FDVR d

(9)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

a3 a2 a1 SP

LV

area di A

(a)

(QWUDLQHVHFX]LRQHODSURFHGXUD A

a3 a2 a1 SP

LV

area di A SP

LV

area di B

b3 b2 b1 b4

a3 a2 a1

(a) (b)

(QWUDLQHVHFX]LRQHODSURFHGXUD B

a3 a2 a1 SP

LV

area di A SP

LV

area di B

b3 b2 b1 b4

a3 a2 a1

SP LV

area di C

b3 b2 b1 b4

a3 a2 a1 c1 c2

(a) (b) (c)

(QWUDLQHVHFX]LRQHODSURFHGXUD C

a3 a2 a1 SP

LV

area di A SP

LV

area di B

b3 b2 b1 b4

a3 a2 a1

SP LV

area di C

b3 b2 b1 b4

a3 a2 a1 c1 c2

a3 a2 a1 SP

LV

area di D

d3

d1 d4

d2 d5

(a) (b) (c) (d)

C H B WHUPLQDQRHGHQWUDLQHVHFX]LRQH D

&KLDPDWHPXOWLSOH II

Animazione Fine

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$UHHGLDWWLYD]LRQH HSURFHGXUHULFRUVLYH

‡ ,OPHFFDQLVPRGHOOHDUHHGLDWWLYD]LRQH

qDQFKHLQJUDGRGLWHQHUHVHSDUDWHOH

YDULDELOLORFDOLGLFKLDPDWHULFRUVLYHGHOOD

VWHVVDSURFHGXUD

‡ $RJQLFKLDPDWDULFRUVLYDVLLPSLODXQD

QXRYDDUHDGLDWWLYD]LRQHLGHQWLFDFRPH

VWUXWWXUDDTXHOODSUHFHGHQWH

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

a3 a2 a1 SP

LV

area di A

(a)

/DSURFHGXUD A HQWUDLQHVHFX]LRQHOD 1

a

YROWD

a3 a2 a1 SP

LV

area di A SP

LV

area di A a3 a2 a1 a3 a2 a1

(a) (b)

A FKLDPDULFRUVLYDPHQWHVpVWHVVD 2

a

YROWD

a3 a2 a1 SP

LV

area di A SP

LV

area di A a3 a2 a1 a3 a2 a1

SP

LV

area di A

a3 a2 a1 a3 a2 a1 a2 a3

(a) (b) (c)

a1

A FKLDPDULFRUVLYDPHQWHVpVWHVVD 3

a

YROWD

,PSLODPHQWRGLDUHHULFRUVLYH

/DSURFHGXUD A ULFKLDPDVHVWHVVD 3 YROWH

Animazione Fine

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

&DOFRORGHOOHHVSUHVVLRQL

‡ /DSLODKDDQFKHXQUXRORIRQGDPHQWDOH

QHOFDOFRORGHOOHHVSUHVVLRQLORJLFR

PDWHPDWLFKHFRQWHQHQWLFLRq

RSHUD]LRQLORJLFKHRSSXUHDULWPHWLFR

DOJHEULFKH

‡ ,OFDOFRORGLXQ¶HVSUHVVLRQHSXzHVVHUH

VHPSUHULFRQGRWWRDXQDVXFFHVVLRQHGL

RSHUD]LRQL PUSH H POP LQWHUFDODWHGD

RSHUD]LRQLORJLFKHRPDWHPDWLFKH

(10)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

(VHPSLR

&DOFRODUH 7 + (1 + 2) × (5 −  2FFRUUHSULPDULVFULYHUHO¶HVSUHVVLRQH

LQIRUPDSRVWILVVD SRVWIL[

‡ $OJRULWPRSRVWIL[VLSDUWHGDJOLRSHUDWRULGL

1 o OLYHOOR JOLXOWLPLGDFDOFRODUH H

– (1) VLVSRVWDO¶RSHUDWRUHDGHVWUDGHO 2

o

RSHUDQGR – (2) VLFDQFHOODQROHHYHQWXDOLSDUHQWHVL

– (3) VLSDVVDDJOLRSHUDWRULGLOLYHOOR

LPPHGLDWDPHQWHVXSHULRUHWRUQDQGRD (1)

‡ 4XDQGRQRQFLVRQRSL RSHUDWRULWHUPLQD

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$QDOLVLGHOO¶HVSUHVVLRQH

7 + (1 + 2) × (5 − 

2 o livello 1 o livello

3 o livello 3 o livello

7 + (1 + 2) × (5 − 

2

o

1

o

1

o

2

o

1

o

2

o

1

o

2

o

GLVWULEX]LRQH

GHJOLRSHUDQGL

RSHUDWRUH + RSHUDWRUH × RSHUDWRUL+ e −

Animazione Fine

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

7UDVIRUPD]LRQHSRVWIL[

7 + (1 + 2) × (5 − 3) (635(66,21(25,*

7 + (1 + 2) × (5 − 3) - partenza

7 (1 + 2) × (5 − 3) + - VSRVWDWRO¶RSHUDWRUH + 7 (1 + 2) (5 − 3) × + - VSRVWDWRO¶RSHUDWRUH × 7 1 + 2 5 − 3 × + - FDQFHOODWHOHSDUHQWHVL

GHJOLRSHUDQGL GHOO¶RSHUDWRUH ×

7 1 2 + 5 3 − × + - VSRVWDWLJOLRSHUDWRUL + H − ; ILQH

7 1 2 + 5 3 − × + )250$3267),;

Animazione Fine

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

INIZIO: la pila è vuota … PUSH 7 7

7 … PUSH 1 1

7

7 1 … PUSH 2 2

1 7

7 1 2 … POP; POP; PUSH 1 + 2 3

7

7 1 2 + … PUSH 5 5

3 7

7 1 2 + 5 … PUSH 3 3

5 3 7

7 1 2 + 5 3 … POP; POP; PUSH 5 − 3 2

3 7

7 1 2 + 5 3 − … POP; POP; PUSH 3 × 2 6

7

7 1 2 + 5 3 − × … POP; POP; PUSH 7 + 6 13

7 1 2 + 5 3 − × + … POP

7 1 2 + 5 3 − × + FINE: pila vuota, risultato 13

&DOFRORWUDPLWHODSLOD

7 1 2 + 5 3 − × +

Animazione

6LPXOD]LRQHGHOSURFHGLPHQWRGLFDOFROR

Fine

(11)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

6HTXHQ]DGLRSHUD]LRQL386+323

• PUSH 7

• PUSH 1

• PUSH 2

• POP R1

• POP R2

• R3 = R2 + R1

• PUSH R3

• PUSH 5

• PUSH 3

• POP R1

• POP R2

• R3 = R2 − R1

• PUSH R3

• POP R1

• POP R2

• R3 = R2 × R1

• PUSH R3

• POP R1

• POP R2

• R3 = R2 + R1

• PUSH R3

6LXVDQRLUHJLVWULWHPSRUDQHL R1  R2 H R3

,QSLODUHVWDXQVRORHOHPHQWRLOULVXOWDWR

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

7UDVIRUPD]LRQH

‡ 6LLQWURGXFDQROHLVWUX]LRQLVHJXHQWL

– IADD WRJOLLGXHQXPHULLQFLPDDOODSLOD

DGGL]LRQDOLHVFULYLODVRPPDLQFLPDDOODSLOD – ISUB WRJOLLGXHQXPHULLQFLPDDOODSLOD

VRWWUDLOL VLVXSSRQJDFKHLOSULPRQXPHURWROWR

VLDLOVRWWUDHQGRLOVHFRQGRLOPLQXHQGR H

VFULYLODGLIIHUHQ]DLQFLPDDOODSLOD

– IMUL WRJOLLGXHQXPHULLQFLPDDOODSLOD

PROWLSOLFDOLHVFULYLLOSURGRWWRLQFLPDDOODSLOD

‡ 6RQRLVWUX]LRQLGHOSURFHVVRUH IJVM (tranne IMUL, ma che si potrebbe introdurre)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

,OSURJUDPPDGLFDOFROR LQOLQJXDJJLRPDFFKLQD IJVM

• PUSH 7 // scrivi 7 sulla cima della pila

• PUSH 1 // scrivi 1 sulla cima della pila

• PUSH 2 // scrivi 2 sulla cima della pila

• IADD // addiziona i 2 numeri in cima alla pila

• PUSH 5 // scrivi 5 sulla cima della pila

• PUSH 3 // scrivi 3 sulla cima della pila

• ISUB // sottrai i 2 numeri in cima alla pila

• IMUL // moltiplica i 2 numeri in cima alla pila

• IADD // addiziona i 2 numeri in cima alla pila

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

INIZIO: la pila è vuota PUSH 7 7

PUSH 1 1 7 PUSH 2

2 1 7 IADD

3 7 PUSH 5

5 3 7 PUSH 3

3 5 3 7 ISUB

2 3 7 IMUL

6 7 IADD

13

FINE: nella pila resta il risultato del calcolo

6LPXOD]LRQHGHOSURJUDPPD

7 1 2 + 5 3 − × +

Animazione

6LPXOD]LRQHGHOO¶HVHFX]LRQHGHOSURJUDPPD

IJVM SHULOFDOFRORGHOO¶HVSUHVVLRQH

Fine

(12)

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

&RQVLGHUD]LRQL

‡ ,OFDOFRORGHOOHHVSUHVVLRQLWUDPLWHOD

SLODVLJHQHUDOL]]DIDFLOPHQWHDQFKHD

± HVSUHVVLRQLFRQWHQHQWLYDULDELOL

± HVSUHVVLRQLFRQWHQHQWLRSHUDWRULERROHDQL

± HVSUHVVLRQLFRQWHQHQWLRSHUDWRULUHOD]LRQDOL

± HVSUHVVLRQLFRQWHQHQWLRSHUDWRULDOJHEULFL

± HVSUHVVLRQLFRQQXPHULUHDOLFRPSOHVVL«

‡ ,OFRPSLODWRUHDQDOL]]DO¶HVSUHVVLRQHQH

FDOFRODODIRUPDSRVWIL[HJHQHUDLO

SURJUDPPDGLFDOFRORGHOO¶HVSUHVVLRQH

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

$SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD   $SULO ,QIRUPDWLFD,, ,OOLYHOORPLFURDUFKLWHWWXUD  

Riferimenti

Documenti correlati

Descrizione della attività di verifica effettuata nell'ambito del test di conformità Commenti e riferimenti alla documentazione esaminata Valutazione singolo punto di

• Problema della VWDUYDWLRQ : ad un processo a bassa priorità può non venire mai assegnata la CPU perchè vi sono sempre processi a SULRULWj

lista il soggetto ha fatto parte, con l'apposizione della formula «sul mio onore affermo che la 33/2013 dichiarazione corrisponde al vero» con allegate copie delle

Accanto a questi risultati, tuttavia, si osserva che connessi alla sorveglianza radiometrica possono emergere altri reati, legati allo smaltimento o in

Si attesta che la presente deliberazione è posta in pubblicazione all’Albo Pretorio on line di Roma Capitale dal 3 dicembre 2021 e vi rimarrà per quindici giorni consecutivi fino al

VHODOXFHq FRQVLGHUDWDFRPHXQ RQGDFODVVLFDJOLHOHWWURQLGRYUHEEHURDVVRUELUHHQHUJLDLQ PRGRFRQWLQXRHSHURJQLYDORUHGHOO LQWHQVLWj OXPLQRVDª GRYUHEEHHVVHUHVRORTXHVWLRQHGL

2 Questo ci porta al secondo punto: la persona che viene fatta partecipare a questa esibizione di 'metafisica sperimentale' è XQR VFKLDYR: ciò significa non solo che per Platone

6FHOWD# OD# UDSSUHVHQWD]LRQH/# YHQJRQR# GHWWL# QXPHUL# LQ# YLUJROD# PRELOH# L# VROL# QXPHUL# UHDOL#