CS计算机代考程序代写 ER AI COPE-03 Functions.indd

COPE-03 Functions.indd

15
8

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
5

8
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

m
o
v

r
0
,

#
1

b
l

P
l
u
s
_
1

m
o
v

r
4
,

r
0

P
l
u
s
_
1
:

a
d
d

r
0
,

#
1

b
x

l
r

l
r

H
o

w
i

s
th

e
p

ar
am

e
te

r
x

p
as

se
d

?

W
h

e
re

d
o

y
o

u
fi

n
d

t
h

e
r

e
su

lt
a

ft
e

r
th

e
f

u
n

ct
io

n
r

e
tu

rn
s?

C
o

u
ld

i
t

b
e

d
o

n
e

d
if

fe
re

n
tl

y?

D
o

e
s

it
w

o
rk

?

15
5

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
5

5
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

(G
re

at
n
es

s
fr

o
m


)

Sm
al

l
b
eg

in
n
in

gs
p
l
u
s
_
1

:
:

(
N
u
m

a
)

=
>

a


>

a

p
l
u
s
_
1

x

=

x

+

1

i
n
t

p
l
u
s
1

(
i
n
t

x
)

{

r
e
t
u
r
n

x

+

1
;

} f
u
n
c
t
i
o
n

P
l
u
s
_
1

(
x

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

(
x

+

1
)
;

d
e
f

p
l
u
s
1

(
x
)
:

r
e
t
u
r
n

x

+

1
;

p
u
r
e

f
u
n
c
t
i
o
n

p
l
u
s
_
1

(
x
)

i
n
t
,

i
n
t
e
n
t

(
i
n
)

:
:

x

i
n
t

:
:

p
l
u
s
_
1

p
l
u
s
_
1

=

x

+

1
;

e
n
d

f
u
n
c
t
i
o
n
;

f
u
n
c
t
i
o
n

P
l
u
s
_
1

(
x

:

i
n
t
e
g
e
r
)

:

i
n
t
e
g
e
r
;

b
e
g
i
n

P
l
u
s
_
1

:
=

x

+

1
;

e
n
d
;

15
2

3
Fu

n
ct

io
n
s

U
w

e
R

.
Z

im
m

er

T
h
e

A
u
st

ra
li
an

N
at

io
n
al

U
n
iv

er
si

ty

C
o

m
p

u
te

r
O

rg
an

is
at

io
n

&
P

ro
g

ra
m

E
xe

cu
ti

o
n

2
02

1

15
9

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
5

9
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

m
o
v

r
0
,

#
1

a
d
d

r
0
,

#
1

m
o
v

r
4
,

r
0

C
an

/s
h

o
u

ld
t

h
is

a
lw

ay
s

b
e

d
o

n
e

?

T
h

is
i

s
ca

ll
e

d
in

li
n
in

g

15
6

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
5

6
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

m
o
v

r
0
,

#
1

b
l

P
l
u
s
_
1

m
o
v

r
4
,

r
0

P
l
u
s
_
1
:

a
d
d

r
0
,

#
1

b
x

l
r

15
3

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
5

3
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

R
ef

er
en

ce
s

fo
r

th
is

c
h
ap

te
r

[P
at

te
rs

o
n

17
]

D
av

id
A

. P
at

te
rs

o
n

&
J

o
h

n
L

. H
e

n
n

e
ss

y
C

o
m

p
u

te
r

O
rg

an
iz

at
io

n
a

n
d

D
e

si
g

n

T
h

e
H

ar
d

w
ar

e
/S

o
ft

w
ar

e
I

n
te

rf
ac

e
C

h
ap

te
r

2
“I

n
st

ru
ct

io
n

s:
L

an
g

u
ag

e
o

f
th

e
C

o
m

p
u

te
r”

A
R

M
e

d
it

io
n

, M
o

rg
an

K
au

fm
an

n
2

01
7

16
0

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
6

0
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

… …

… … … … … … … …

… …

… … … … …

… … … … … …

15
7

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
5

7
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

m
o
v

r
0
,

#
1

b
l

P
l
u
s
_
1

m
o
v

r
4
,

r
0

P
l
u
s
_
1
:

a
d
d

r
0
,

#
1

b
x

l
r

l
r

15
4

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
5

4
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

… …

… … … … … … … …

… …

… … … … …

16
7

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
6

7
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

s
p

m
o
v

r
0
,

#
1

b
l

F
i
b
_
F
a
c
t

m
o
v

r
3
,

r
0

F
i
b
_
F
a
c
t
:

b
l

F
i
b

m
o
v

r
4
,

r
0

b
l

F
a
c
t

a
d
d

r
0
,

r
4

b
x

l
r

F
i
b
:

b
x

l
r

F
a
c
t
:

b
x

l
r

1
6

7
f

b
x

l
r


w

h
e

re
d

o
e

s
th

is
l

e
ad

u
s?

16
4

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
6

4
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

m
o
v

r
0
,

#
1

a
d
d

r
0
,

#
2

m
o
v

r
3
,

r
0


w

e
n

e
e

d
a

n
e

xa
m

p
le

, w
h

e
re

a
c

o
m

p
il

e
r

w
il

l
n

o
t

ju
st

r
e

m
o

ve
a

ll
o

u
r

co
d

e
!

16
1

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
6

1
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

(G
re

at
n
es

s
fr

o
m


)

Sm
al

l
b
eg

in
n
in

gs
p
l
u
s
_
2

:
:

(
N
u
m

a
)

=
>

a


>

a

p
l
u
s
_
2

x

=

p
l
u
s
_
1

$

p
l
u
s
_
1

x

i
n
t

p
l
u
s
2

(
i
n
t

x
)

{

r
e
t
u
r
n

p
l
u
s
1

(
p
l
u
s
1

(
x
)
)
;

} f
u
n
c
t
i
o
n

P
l
u
s
_
2

(
x

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

(
P
l
u
s
_
1

(
P
l
u
s
_
1

(
x
)
)
)
;

d
e
f

p
l
u
s
2

(
x
)
:

r
e
t
u
r
n

p
l
u
s
1

(
p
l
u
s
1

(
x
)
)
;

p
u
r
e

f
u
n
c
t
i
o
n

p
l
u
s
_
2

(
x
)

i
n
t
,

i
n
t
e
n
t

(
i
n
)

:
:

x

i
n
t

:
:

p
l
u
s
_
2

p
l
u
s
_
2

=

p
l
u
s
_
1

(
p
l
u
s
_
1

(
x
)
)
;

e
n
d

f
u
n
c
t
i
o
n
;

f
u
n
c
t
i
o
n

P
l
u
s
_
2

(
x

:

i
n
t
e
g
e
r
)

:

i
n
t
e
g
e
r
;

b
e
g
i
n

P
l
u
s
_
2

:
=

P
l
u
s
_
1

(
P
l
u
s
_
1

(
x
)
)
;

e
n
d
;

16
8

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
6

8
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

m
o
v

r
0
,

#
1

b
l

F
i
b
_
F
a
c
t

m
o
v

r
3
,

r
0

F
i
b
_
F
a
c
t
:

s
t
r

l
r
,

[
s
p
,

#

4
]
!

b
l

F
i
b

m
o
v

r
4
,

r
0

b
l

F
a
c
t

a
d
d

r
0
,

r
4

l
d
r

l
r
,

[
s
p
]
,

#
4

b
x

l
r

F
i
b
:

b
x

l
r

F
a
c
t
:

b
x

l
r

l
r

s
p

16
5

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
6

5
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

(G
re

at
n
es

s
fr

o
m


)

Sm
al

l
b
eg

in
n
in

gs
f
i
b
_
f
a
c
t

:
:

(
N
u
m

a
)

=
>

a


>

a

f
i
b
_
f
a
c
t

x

=

(
f
i
b

x
)

+

(
f
a
c
t

x
)

u
n
s
i
g
n
e
d

i
n
t

f
i
b
F
a
c
t

(
u
n
s
i
g
n
e
d

i
n
t

x
)

{

r
e
t
u
r
n

f
i
b

(
x
)

+

f
a
c
t

(
x
)
;

} f
u
n
c
t
i
o
n

F
i
b
_
F
a
c
t

(
x

:

N
a
t
u
r
a
l
)

r
e
t
u
r
n

N
a
t
u
r
a
l

i
s

(
F
i
b

(
x
)

+

F
a
c
t

(
x
)
)
;

d
e
f

f
i
b
F
a
c
t

(
x
)
:

r
e
t
u
r
n

f
i
b

(
x
)

+

f
a
c
t

(
x
)
;

p
u
r
e

f
u
n
c
t
i
o
n

f
i
b
_
f
a
c
t

(
x
)

i
n
t
,

i
n
t
e
n
t

(
i
n
)

:
:

x

i
n
t

:
:

f
i
b
_
f
a
c
t

f
i
b
_
f
a
c
t

=

f
i
b

(
x
)

+

f
a
c
t

(
x
)
;

e
n
d

f
u
n
c
t
i
o
n
;

f
u
n
c
t
i
o
n

F
i
b
_
F
a
c
t

(
x

:

c
a
r
d
i
n
a
l
)

:

c
a
r
d
i
n
a
l
;

b
e
g
i
n

F
i
b
_
F
a
c
t

:
=

F
i
b

(
x
)

+

F
a
c
t

(
x
)
;

e
n
d
;

16
2

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
6

2
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

m
o
v

r
0
,

#
1

b
l

P
l
u
s
_
2

m
o
v

r
3
,

r
0

P
l
u
s
_
2
:

b
l
P
l
u
s
_
1

b
l

P
l
u
s
_
1

b
x

l
r

P
l
u
s
_
1
:

a
d
d

r
0
,

#
1

b
x

l
r

b
x

l
r is
u

se
d

t
h

re
e

t
im

e
s

W
h

at
i

s
th

e
v

al
u

e
o

f
lr

i
n

e
ac

h
c

as
e

?

16
9

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
6

9
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

m
o
v

r
0
,

#
1

b
l

F
i
b
_
F
a
c
t

m
o
v

r
3
,

r
0

F
i
b
_
F
a
c
t
:

s
t
r

l
r
,

[
s
p
,

#

4
]
!

b
l

F
i
b

m
o
v

r
4
,

r
0

b
l

F
a
c
t

a
d
d

r
0
,

r
4

l
d
r

l
r
,

[
s
p
]
,

#
4

b
x

l
r

F
i
b
:

b
x

l
r

F
a
c
t
:

b
x

l
r

l
r

s
p

N
p

ag
e

1
6

9
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
y

r
4


w

h
at

i
f

th
is

w
as

h
o

ld
in

g
s

o
m

e
i

n
fo

rm
at

io
n

at
t

h
e

t
im

e
w

h
e

n
w

e
w

e
re

c
al

le
d

?

16
6

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
6

6
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

s
p

m
o
v

r
0
,

#
1

b
l

F
i
b
_
F
a
c
t

m
o
v

r
3
,

r
0

F
i
b
_
F
a
c
t
:

b
l

F
i
b

m
o
v

r
4
,

r
0

b
l

F
a
c
t

a
d
d

r
0
,

r
4

b
x

l
r

F
i
b
:

b
x

l
r

F
a
c
t
:

b
x

l
r

16
3

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
6

3
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

m
o
v

r
0
,

#
1

b
l

P
l
u
s
_
2

m
o
v

r
3
,

r
0

P
l
u
s
_
2
:

s
t
r

l
r
,

[
s
p
,

#

4
]
!

b
l
P
l
u
s
_
1

b
l

P
l
u
s
_
1

l
d
r

l
r
,

[
s
p
]
,

#
4

b
x

l
r

P
l
u
s
_
1
:

a
d
d

r
0
,

#
1

b
x

l
r

b
x

l
r is
u

se
d

t
h

re
e

t
im

e
s

W
h

at
i

s
th

e
v

al
u

e
o

f
lr

i
n

e
ac

h
c

as
e

?

17
6

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
7

6
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

Fib_FactFact 1Fact 0 Fact 2 Fact 3

f
p

r
4

f
p

f
p

l
r

f
p

x

(
3
)

l
r

f
p

x

(
3
)

l
r

x

(
2
)

f
p

l
r

x

(
1
)

f
p

l
r

x

(
0
)

f
p

f
p

f
p

s
p

F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
4

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

8
]

c
m
p

r
0
,

#
0

b
n
e

C
a
s
e
_
O
t
h
e
r
s

m
o
v

r
0
,

#
1

b

E
n
d
_
F
a
c
t

C
a
s
e
_
O
t
h
e
r
s
:

s
u
b

r
0
,

#
1

b
l

F
a
c
t

m
o
v

r
1
,

r
0

l
d
r

r
0
,

[
f
p
,

#

8
]

m
u
l

r
0
,

r
1

E
n
d
_
F
a
c
t
:

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
f
p
,

l
r
}

b
x

l
r

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
a
c
t

a
d
d

r
0
,

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

}}

W
h

e
re

i
s

th
e

l
as

t
lr

s
to

re
d

?

H
o

w
h

ig
h

d
o

w

e
s

ta
ck

?
F
a
c
t

I
s
F
a
c
t

r
ee

n
tr

an
t?

17
3

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
7

3
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

m
o
v

r
0
,

#
1

b
l

F
i
b
_
F
a
c
t

m
o
v

r
3
,

r
0

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

l
r
}

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
s
p
]

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
s
p
]

b
l

F
a
c
t

a
d
d

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

l
r
}

b
x

l
r

Fib_
Fact

r
4

s
p

l
r

x

(
3
)

F
i
b
:

b
x

l
r

F
a
c
t
:

b
x

l
r

e
R

.
Z

im
m

er
, T

h
e

A
u

st
ra

li
an

N
at

io
n

al
U

n
iv

er
si

ty
p

ag
e

y

W
h

il
e

a
d

d
re

ss
in

g
v

ia
t

h
e

s
p

i
s

p
o

ss
ib

le
, i

t
m

ay
a

ls
o

b
e

co
m

p
le

x
to

k
e

e
p

t
ra

ck
o

f,
a

s
th

e
s

p
m

ay
c

h
an

g
e

f
u

rt
h

e
r.

17
0

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
7

0
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

m
o
v

r
0
,

#
1

b
l

F
i
b
_
F
a
c
t

m
o
v

r
3
,

r
0

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

l
r
}

b
l

F
i
b

m
o
v

r
4
,

r
0

b
l

F
a
c
t

a
d
d

r
0
,

r
4

l
d
m
i
a

s
p
!
,

{
r
4
,

l
r
}

b
x

l
r

F
i
b
:

b
x

l
r

F
a
c
t
:

b
x

l
r

Fib_
Fact

r
4

s
p

l
r

17
7

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
7

7
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

A
c

o
m

p
il

e
r

w
il

l
li

k
e

ly

re
p

la
ce

s
u

ch
a

r
e

cu
rs

io
n

!

1
7

7
f

4
8

7
(

h
3

“F
i


2

7

f
u
n
c
t
i
o
n

F
a
c
t

(
x

:

N
a
t
u
r
a
l
)

r
e
t
u
r
n

P
o
s
i
t
i
v
e

i
s

F
a
c

:

P
o
s
i
t
i
v
e

:
=

1
;

b
e
g
i
n

f
o
r

i

i
n

1

.
.

x

l
o
o
p

F
a
c

:
=

F
a
c

*

i
;

e
n
d

l
o
o
p
;

r
e
t
u
r
n

F
a
c
;

e
n
d

F
a
c
t
;

f
u
n
c
t
i
o
n

F
a
c
t

(
x

:

N
a
t
u
r
a
l
)

r
e
t
u
r
n

P
o
s
i
t
i
v
e

i
s

(
i
f

x

=

0

t
h
e
n

1

e
l
s
e

x

*

F
a
c
t

(
x

1
)
)
;

17
4

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
7

4
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

m
o
v

r
0
,

#
1

b
l

F
i
b
_
F
a
c
t

m
o
v

r
3
,

r
0

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
a
c
t

a
d
d

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

Fib_Fact

r
4

f
p

f
p
l
r
x

(
1
)

F
i
b
:

b
x

l
r

F
a
c
t
:

b
x

l
r

2
0

2
1

U
w

e
R

.
Z

im
m

er
, T

h
e

A
u

st
ra

li
an

N
at

io
n

al
U

n
iv

er
si

ty

p
ag

e
1

7
4

o
f

y
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p
ag

e
1

7
4

y

K
e

e
p

in
g

a
r

e
fe

re
n

ce
t

o
t

h
e

s
ta

rt
o

f
th

e
S

ta
ck

F
ra

m
e

fo
r

th
is

f
u

n
ct

io
n

(
w

it
h

t
h

e
f

ra
m

e
-p

o
in

te
r

fp
)

m
ak

e
s

th
in

g
s

n
e

at
e

r

an
d

e
n

ab
le

s
st

ru
ct

u
re

d
a

cc
e

ss
t

o
t

h
e

d
yn

am
ic

c
o

n
te

xt
.

17
1

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
7

1
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

m
o
v

r
0
,

#
1

b
l

F
i
b
_
F
a
c
t

m
o
v

r
3
,

r
0

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

l
r
}

b
l

F
i
b

m
o
v

r
4
,

r
0

b
l

F
a
c
t

a
d
d

r
0
,

r
4

l
d
m
i
a

s
p
!
,

{
r
4
,

l
r
}

b
x

l
r

F
i
b
:

b
x

l
r

F
a
c
t
:

b
x

l
r

Fib_
Fact

r
4

s
p

l
r

n
iv

er
si

ty

p
ag

e
1

7
y

i
itW

h
at

h
ap

p
e

n
s

to
o

u
r

p
ar

am
e

te
r
x

(
1)

d

u
ri

n
g

t
h

e
f

u
n

ct
io

n
?

17
8

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
7

8
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

A
c

o
m

p
il

e
r

w
il

l
li

k
e

ly

re
p

la
ce

s
u

ch
a

r
e

cu
rs

io
n

!

u
n
s
i
g
n
e
d

i
n
t

f
a
c
t

(
u
n
s
i
g
n
e
d

i
n
t

x
)

{

i
f

(
x

=
=

0
)

r
e
t
u
r
n

1
;

e
l
s
e

r
e
t
u
r
n

x

*

f
a
c
t

(
x

1
)
;

}

1
7

8
f

4
8

7
(

h
3

“F
i


2

7

u
n
s
i
g
n
e
d

i
n
t

f
a
c
t

(
u
n
s
i
g
n
e
d

i
n
t

x
)

{

i
n
t

f
a
c

=

1
;

f
o
r

(
i

=

1
,

i

< = x , i + + ) { f a c = f a c * i ; } r e t u r n f a c ; } 17 5 Fu n ct io n s © 2 0 2 1 U w e R . Z im m er , T h e A u st ra li an N at io n al U n iv er si ty p ag e 1 7 5 o f 4 8 7 ( ch ap te r 3 : “F u n ct io n s” u p t o p ag e 2 3 2 ) R ec u rs iv e u n s i g n e d i n t f i b ( u n s i g n e d i n t x ) { s w i t c h ( x ) { c a s e 0 : r e t u r n 0 ; c a s e 1 : r e t u r n 1 ; d e f a u l t : r e t u r n f i b ( x - 1 ) + f i b ( x - 2 ) ; } } f u n c t i o n F i b ( x : N a t u r a l ) r e t u r n N a t u r a l i s ( c a s e x i s w h e n 0 = >

0
,

w
h
e
n

1

=
>

1
,

w
h
e
n

o
t
h
e
r
s

=
>

F
i
b

(
x

1
)

+

F
i
b

(
x

2
)
)
;

u
n
s
i
g
n
e
d

i
n
t

f
a
c
t

(
u
n
s
i
g
n
e
d

i
n
t

x
)

{

i
f

(
x

=
=

0
)

r
e
t
u
r
n

1
;

e
l
s
e

r
e
t
u
r
n

x

*

f
a
c
t

(
x

1
)
;

} f
u
n
c
t
i
o
n

F
a
c
t

(
x

:

N
a
t
u
r
a
l
)

r
e
t
u
r
n

P
o
s
i
t
i
v
e

i
s

(
i
f

x

=

0

t
h
e
n

1

e
l
s
e

x

*

F
a
c
t

(
x

1
)
)
;

W
il

l
o

u
r

st
ac

k
h

an
d

li
n

g
w

o
rk

fo

r
re

cu
rs

iv
e

f
u

n
ct

io
n

s?

17
2

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
7

2
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

m
o
v

r
0
,

#
1

b
l

F
i
b
_
F
a
c
t

m
o
v

r
3
,

r
0

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

l
r
}

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
s
p
]

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
s
p
]

b
l

F
a
c
t

a
d
d

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

l
r
}

b
x

l
r

Fib_
Fact

r
4

s
p

l
r

x

(
3
)

F
i
b
:

b
x

l
r

F
a
c
t
:

b
x

l
r

18
5

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
8

5
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

P
ro

lo
g

u
e

Ep
il

o
g

u
e

C
o
m

p
o
n
en

ts
/

p
h
as

es
o

f
a

fu
n
ct

io
n
c

al
l:


V

al
u

e
s

(p
ar

am
et

er
s)

t
o

b
e

p
as

se
d

t
o

a
f

u
n

ct
io

n
.


Lo

ca
l
va

ri
ab

le
s

in
si

d
e

a
f

u
n

ct
io

n
.


V

al
u

e
s

(r
es

u
lt

s)
t

o
b

e
r

e
tu

rn
e

d
f

ro
m

a
f

u
n

ct
io

n
.

S
o

f
ar

w
e

:

p
as

se
d
p

ar
am

et
er

v
al

u
e

s
in

r
e

g
is

te
rs

(
r0


r

3)
.


c

al
le

d
t

h
e

fu
n
ct

io
n

(
st

o
re

t
h

e
r

e
tu

rn
a

d
d

re
ss

a
n

d
j

u
m

p
t

o
t

h
e

b
e

g
in

n
in

g
o

f
th

e
f

u
n

ct
io

n
).


p

u
sh

ed
t

h
e

r
e

tu
rn

a
d

d
re

ss
, t

h
e

p
re

vi
o

u
s

st
ac

k
f

ra
m

e
a

n
d

u
se

d
r

e
g

is
te

rs
(

r4

).


c

re
at

ed
a

n
ew

s
ta

ck
f

ra
m

e
(a

n
d

a
d

d
re

ss
e

d
a

ll
l

o
ca

l
va

ri
ab

le
s

re
la

ti
ve

t
o

t
h

is
).


g

re
w

t
h
e

st
ac

k
su

ch
t

h
at

i
t

ca
n

h
o

ld
t

h
e

l
o

ca
l

va
ri

ab
le

s.


d

o
n
e

th
e

ca
lc

u
la

ti
o
n
s/

o
p
er

at
io

n
s

b
as

e
d

o
n

t
h

e
l

o
ca

l
va

ri
ab

le
s

an
d

s
cr

at
ch

r
e

g
is

te
rs

.


p

as
se

d
r

et
u
rn

v
al

u
es

i
n

r
e

g
is

te
rs

(
r0


r

1)
.


r

es
to

re
d
t

h
e

st
ac

k
p
o
in

te
r

(a
n

d
t

h
u

s
d

e
-a

ll
o

ca
te

d
a

ll
l

o
ca

l
va

ri
ab

le
s)

.


p

o
p
p
ed

t
h

e
r

e
tu

rn
a

d
d

re
ss

, t
h

e
p

re
vi

o
u

s
st

ac
k

f
ra

m
e

a
n

d
u

se
d

r
e

g
is

te
rs

(
r4


).


ju

m
p
ed

b
ac

k
to

t
h

e
n

e
xt

i
n

st
ru

ct
io

n
a

ft
e

r
th

e
o

ri
g

in
al

f
u

n
ct

io
n

c
al

l.


u

se
d
t

h
e

re
tu

rn
v

al
u
es

f
o

u
n

d
i

n
r

0

r1
.

W
h

at
h

ap
p

e
n

s
if

t
h

e
p

ar
am

e
te

rs
o

r

re
tu

rn
v

al
u

e
s

w
o

n
’t

fi
t

i
n

to
r

e
g

is
te

rs
?

18
2

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
8

2
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
a
c
t

a
d
d

r
0
,

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

tytytytyy

F
i
b
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

c
m
p

r
0
,

#
0

b
e
q

E
n
d
_
F
i
b

c
m
p

r
0
,

#
1

b
e
q

E
n
d
_
F
i
b

s
u
b

r
0
,

r
0
,

#
1

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
f
p
,

#

1
2
]

s
u
b

r
0
,

r
0
,

#
2

b
l

F
i
b

a
d
d

r
0
,

r
4
,

r
0

E
n
d
_
F
i
b
:

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

Fib_Fact

r
4

f
p

f
p

l
r

x

(
3
)

17
9

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
7

9
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

F
a
c
t
:

a
d
d
s

r
3
,

r
0
,

#
0

m
o
v

r
0
,

#
1

b
e
q

E
n
d
_
F
a
c
t

F
a
c
t
_
L
o
o
p
:

m
u
l

r
0
,

r
3

s
u
b
s

r
3
,

#
1

b
n
e

F
a
c
t
_
L
o
o
p

E
n
d
_
F
a
c
t
:

b
x

l
r

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
a
c
t

a
d
d

r
0
,

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

}}

F
i
b
:

b
x

l
r

m
m

er
, T

h
e

A
u

st
ra

li
an

N
at

io
n

al
U

n
iv

er
si

ty

p
ag

e
y

2
0

2
1

U
w

e
R

.
Z

im
m

er
, T

h
e

A
u

st
ra

li
an

N
at

io
n

al
U

n
iv

er
si

ty
p

a
y

B
e

si
d

e
s

al
l

th
e

i
n

li
n

in
g

, u
n

ro
ll

in
g

, fl
a

tt
e

n
in

g
, e

tc
. :

S
ta

ck
o

p
e

ra
ti

o
n

s
ar

e
s

ti
ll

v
it

al
f

o
r

an
y

n
o

n
-t

ri
vi

al
p

ro
g

ra
m

.

C
o

m
p

le
xi

ty
?

R
u

n
ti

m
e

s?

I
s
F
a
c
t

r
ee

n
tr

an
t?

Fib_Fact

r
4

f
p

f
p

l
r

x

(
3
)

18
6

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
8

6
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

C
o
n
ve

n
ti

o
n
s

A
R

M
a

rc
h

it
e

ct
u

re
c

al
lin

g
p

ra
ct

ic
e


r0

-r
3

ar
e

u
se

d
f

o
r

p
ar

am
e

te
rs

.


r0

-r
1

ar
e

u
se

d
f

o
r

re
tu

rn
v

al
u

e
s.


r0

-r
3

ar
e

n
o

t
e

xp
e

ct
e

d
t

o
b

e
i

n
ta

ct
a

ft
e

r
a

fu
n

ct
io

n
c

al
l


a

ll
o

th
e

r
re

g
is

te
rs

a
re

e
xp

e
ct

e
d

t
o

b
e

i
n

ta
ct

!

I
f

th
o

se
r

e
g

is
te

rs
d

o
n

o
t

su
ffi

c
e

, a
d

d
it

io
n

al
p

ar
am

e
te

rs

an
d

r
e

su
lt

s
ar

e
p

as
se

d
v

ia
t

h
e

s
ta

ck
. C

o
n

ve
n

ti
o

n
s

a
re

d
if

fe
re

n
t

in
o

th
e

r

a
rc

h
it

e
c
tu

re
s

(e
.g

.
x
8
6
,
w

h
e

re
p

a
ra

m
e

te
rs

a
re

g
e

n
e

ra
ll

y
p

a
ss

e
d

v
ia

t
h

e
s

ta
c
k

).

f
h

W
h

y
a

re
t

h
e

se
c

o
n

ve
n

ti
o

n
s

a
rc

h
it

e
c
tu

re
r

e
la

te
d

a
t

a
ll

?

T
h

e
re

a
re

a
ls

o
m

e
m

o
ry

a
li

g
n

m
e

n
t

c
o

n
st

ra
in

ts
.

(M
o

st
ly

d
u

e
t

o
m

e
m

o
ry

b

u
s

c
o

n
st

ra
in

ts
)

18
3

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
8

3
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
a
c
t

a
d
d

r
0
,

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

tytytytyy

F
i
b
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

c
m
p

r
0
,

#
0

b
e
q

E
n
d
_
F
i
b

c
m
p

r
0
,

#
1

b
e
q

E
n
d
_
F
i
b

s
u
b

r
0
,

r
0
,

#
1

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
f
p
,

#

1
2
]

s
u
b

r
0
,

r
0
,

#
2

b
l

F
i
b

a
d
d

r
0
,

r
4
,

r
0

E
n
d
_
F
i
b
:

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

Fib_Fact

r
4

f
p

f
p
l
r
x

(
3
)

p p r4
,
r
0

4
,

r
0

0
,

[
f
p
,

#

1
2
]

a
c
t

0
,

r
0
,

r
4

p
,

#
4

p
!
,

{
r
4
,

f
p
,

l
r
}

r

T
h

e
re

c
o

u
ld

b
e

tw

o

fu
rt

h
e

r
Fi

b
-c

al
ls

fo

r
e

ac
h

c
al

l
to

F
ib

W
h

at
w

o
u

ld
t

h
e

st

ac
k

l
o

o
k

l
ik

e
?

W
h

at
w

o
u

ld
b

e

th
e

m
ax

im
al

d
e

p
th

fo

r
th

e
s

ta
ck

?

18
0

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
8

0
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

F
a
c
t
:

a
d
d
s

r
3
,

r
0
,

#
0

m
o
v

r
0
,

#
1

b
e
q

E
n
d
_
F
a
c
t

F
a
c
t
_
L
o
o
p
:

m
u
l

r
0
,

r
3

s
u
b
s

r
3
,

#
1

b
n
e

F
a
c
t
_
L
o
o
p

E
n
d
_
F
a
c
t
:

b
x

l
r

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
a
c
t

a
d
d

r
0
,

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

}}

F
i
b
:

b
x

l
r

… … b
x

l
r

W
h

y
d

o
w

e
s

av
e

r
4?

B
u

t
w

e
d

o
n

’t
s

av
e

r
3?

Fib_Fact

r
4

f
p

f
p
l
r
x

(
3
)

18
7

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
8

7
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

Pa
ra

m
et

er
p

as
si

n
g

C
al

l b
y

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

18
4

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
8

4
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

C
o
m

p
o
n
en

ts
/

p
h
as

es
o

f
a

fu
n
ct

io
n
c

al
l:


V

al
u

e
s

(p
ar

am
et

er
s)

t
o

b
e

p
as

se
d

t
o

a
f

u
n

ct
io

n
.


Lo

ca
l
va

ri
ab

le
s

in
si

d
e

a
f

u
n

ct
io

n
.


V

al
u

e
s

(r
es

u
lt

s)
t

o
b

e
r

e
tu

rn
e

d
f

ro
m

a
f

u
n

ct
io

n
.

S
o

f
ar

w
e

:

p
as

se
d
p

ar
am

et
er

v
al

u
e

s
in

r
e

g
is

te
rs

(
r0


r

3)
.


c

al
le

d
t

h
e

fu
n
ct

io
n

(
st

o
re

t
h

e
r

e
tu

rn
a

d
d

re
ss

a
n

d
j

u
m

p
t

o
t

h
e

b
e

g
in

n
in

g
o

f
th

e
f

u
n

ct
io

n
).


p

u
sh

ed
t

h
e

r
e

tu
rn

a
d

d
re

ss
, t

h
e

p
re

vi
o

u
s

st
ac

k
f

ra
m

e
a

n
d

u
se

d
r

e
g

is
te

rs
(

r4

).


c

re
at

ed
a

n
ew

s
ta

ck
f

ra
m

e
(a

n
d

a
d

d
re

ss
e

d
a

ll
l

o
ca

l
va

ri
ab

le
s

re
la

ti
ve

t
o

t
h

is
).


g

re
w

t
h
e

st
ac

k
su

ch
t

h
at

i
t

ca
n

h
o

ld
t

h
e

l
o

ca
l

va
ri

ab
le

s.


d

o
n
e

th
e

ca
lc

u
la

ti
o
n
s/

o
p
er

at
io

n
s

b
as

e
d

o
n

t
h

e
l

o
ca

l
va

ri
ab

le
s

an
d

s
cr

at
ch

r
e

g
is

te
rs

.


p

as
se

d
r

et
u
rn

v
al

u
es

i
n

r
e

g
is

te
rs

(
r0


r

1)
.


r

es
to

re
d
t

h
e

st
ac

k
p
o
in

te
r

(a
n

d
t

h
u

s
d

e
-a

ll
o

ca
te

d
a

ll
l

o
ca

l
va

ri
ab

le
s)

.


p

o
p
p
ed

t
h

e
r

e
tu

rn
a

d
d

re
ss

, t
h

e
p

re
vi

o
u

s
st

ac
k

f
ra

m
e

a
n

d
u

se
d

r
e

g
is

te
rs

(
r4


).


ju

m
p
ed

b
ac

k
to

t
h

e
n

e
xt

i
n

st
ru

ct
io

n
a

ft
e

r
th

e
o

ri
g

in
al

f
u

n
ct

io
n

c
al

l.


u

se
d
t

h
e

re
tu

rn
v

al
u
es

f
o

u
n

d
i

n
r

0

r1
.

P
ro

lo
g

u
e

Ep
il

o
g

u
e

18
1

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
8

1
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

F
a
c
t
:

a
d
d
s

r
3
,

r
0
,

#
0

m
o
v

r
0
,

#
1

b
e
q

E
n
d
_
F
a
c
t

F
a
c
t
_
L
o
o
p
:

m
u
l

r
0
,

r
3

s
u
b
s

r
3
,

#
1

b
n
e

F
a
c
t
_
L
o
o
p

E
n
d
_
F
a
c
t
:

b
x

l
r

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
a
c
t

a
d
d

r
0
,

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

}}

F
i
b
:

b
x

l
r

F
a
c
t
:

b
}}

b
x

l
r

W
e

k
e

e
p

a
c

o
p

y
o

f
r0

h
e

re
.

B
u

t
w

e
d

o
n

’t
k

e
e

p

a
co

p
y

o
f

r0
h

e
re

!

Fib_Fact

r
4

f
p

f
p

l
r

x

(
3
)

19
4

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
9

4
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

Fib_FactFact 1Fact 0 Fact 2 Fact 3

F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
4

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

8
]

c
m
p

r
0
,

#
0

b
n
e

C
a
s
e
_
O
t
h
e
r
s

m
o
v

r
0
,

#
1

b

E
n
d
_
F
a
c
t

C
a
s
e
_
O
t
h
e
r
s
:

s
u
b

r
0
,

#
1

b
l

F
a
c
t

m
o
v

r
1
,

r
0

l
d
r

r
0
,

[
f
p
,

#

8
]

m
u
l

r
0
,

r
1

E
n
d
_
F
a
c
t
:

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
f
p
,

l
r
}

b
x

l
r

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

l
d
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
a
c
t

a
d
d

r
0
,

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

}}

f
p

r
4

f
p

f
p

l
r

f
p

x

(
3
)

l
r

f
p

x

(
3
)

l
r

x

(
2
)

f
p

l
r

x

(
1
)

f
p

l
r

x

(
0
)

f
p

f
p

f
p

s
p

H
o

w
a

b
o

u
t

u
si

n
g

c
al

l
b

y
re

fe
re

n
ce

h
e

re
?

19
1

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
9

1
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

A
cc

e
ss

A
d

a
Li

m
it

e
d

c
o

n
tr

o
l

o
ve

r
“b

y
va

lu
e

r
e

su
lt

”.

“b
y

va
lu

e

p
ar

am
e

te
rs

a
re

c
o

n
st

an
ts

.

18
8

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
8

8
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

b
y

co
p

y
y

p
y

y
p

y
y

p
y

b
y

re
fe

re
n

ce
yyy

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

C
Fu

ll
c

o
n

tr
o

l
o

ve
r

th
o

se
t

h
re

e
m

o
d

e
s.

“b
y

va
lu

e

p
ar

am
e

te
rs

a
re

l
o

ca
l

va
ri

ab
le

s.

“i
n

&
o

u
t,

b
y

re
fe

re
n

ce

sy
n

ta
ct

ic
al

ly
a

s
“b

y
p

o
in

te
r

va
lu

e

p
ar

am
e

te
rs

.

19
5

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
9

5
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
5
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
4

m
o
v

r
5
,

r
0

l
d
r

r
0
,

[
r
5
]

c
m
p

r
0
,

#
0

b
n
e

C
a
s
e
_
O
t
h
e
r
s

m
o
v

r
0
,

#
1

b

E
n
d
_
F
a
c
t

C
a
s
e
_
O
t
h
e
r
s
:

s
u
b

r
0
,

#
1

s
t
r

r
0
,

[
r
5
]

m
o
v

r
0
,

r
5

b
l

F
a
c
t

m
o
v

r
1
,

r
0

l
d
r

r
0
,

[
r
5
]

m
u
l

r
0
,

r
1

E
n
d
_
F
a
c
t
:

m
o
v

s
p
,

f
p

l
d
m
i
a

s
p
!
,

{
r
5
,

f
p
,

l
r
}

b
x

l
r

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

s
u
b

r
0
,

f
p
,

#
1
2

b
l

F
a
c
t

a
d
d

r
0
,

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

}}

tytyy

r5
h

as
b

e
e

n
n

o
m

in
at

e
d

t
o

h
o

ld

th
e

r
e

fe
re

n
ce

t
o

x
i

n
si

d
e

F
a
c
t

Fib_FactFact 1Fact 0 Fact 2 Fact 3

r
5

r
4

f
p

f
p

f
p

f
p

l
r

l
r

r
5

x

(
0
)

f
p
l
r
r
5
f
p
l
r
r
5
f
p
l
r

f
p

f
p

f
p

s
p

Fact Fact Fact FFac

r
5

Fact Fact Fact Fact Fact FFact Fact

r
5

Fact Fact Fact Fact Fac FFac Fact

r
5

Fact Fact Fact Fact Fact FFact Fact

r
5

19
2

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
9

2
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

A
ss

e
m

b
ly

“B
y

re
fe

re
n

ce

se
m

an
ti

cs
b

y
co

n
ve

n
ti

o
n

o
n

ly
.

18
9

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
8

9
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

H
as

k
e

ll
O

n
ly

c
o

n
tr

o
l

o
ve

r
in

fo
rm

at
io

n
fl

o
w


n

o
t

o
ve

r
ac

ce
ss

. ttt
eteteteteteettee

si
ty

p
ag

e
1

8
9

o
f

y
4

8
7

(c
h

ap
te

r
3

:
“F

u
n

ct
io

n
s

7

n
ooooooooo

r
is

co
p

ie
d

to
a

lo
ca

l
F

ti
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
an

d
c

o
p

ie
d

b
ac

k
a

t
re

tu
rn

.
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

t
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

“i
n

&
o

u
t”

p
ar

am
e

te
rs

a
re

s
id

e
-e

ff
e

ct
in

g
a

n
d

c
an

th
e

re
fo

re
n

o
t

e
xi

st
i

n
a

p
u

re
f

u
n

ct
io

n
al

l
an

g
u

ag
e

.

19
6

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
9

6
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
5
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
4

m
o
v

r
5
,

r
0

l
d
r

r
0
,

[
r
5
]

c
m
p

r
0
,

#
0

b
n
e

C
a
s
e
_
O
t
h
e
r
s

m
o
v

r
0
,

#
1

b

E
n
d
_
F
a
c
t

C
a
s
e
_
O
t
h
e
r
s
:

s
u
b

r
0
,

#
1

s
t
r

r
0
,

[
r
5
]

m
o
v

r
0
,

r
5

b
l

F
a
c
t

m
o
v

r
1
,

r
0

l
d
r

r
0
,

[
r
5
]

m
u
l

r
0
,

r
1

E
n
d
_
F
a
c
t
:

m
o
v

s
p
,

f
p

l
d
m
i
a

s
p
!
,

{
r
5
,

f
p
,

l
r
}

b
x

l
r

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

s
u
b

r
0
,

f
p
,

#
1
2

b
l

F
a
c
t

a
d
d

r
0
,

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

}}

tytyy

W
e

t
u

rn
e

d
F
a
c
t

i
n

to

th
e

c
o

n
st

an
t

0.

Fib_FactFact 1Fact 0 Fact 2 Fact 3

r
5

r
4

f
p

f
p

l
r

l
r

r
5

x

(
0
)

f
p

l
r

r
5

f
p

l
r

r
5

f
p

l
r

f
p

s
p

Fact Fact Fact FFac

r
5

Fact Fact Fact Fact Fact FFact Fact

r
5

Fact Fact Fact Fact Fac FFac Fact

r
5

Fact Fact Fact Fact Fact FFact Fact

r
5

r
5

r
4

f
p

f
p

f
p

l
r

l
r

r
5

x

(
0

f
p

l
r

r
5

f
p

l
r

r
5

f
p

l
r

f
p

f
p

f
p

f
p

f
p

f
p

f
p

fff
p

f
p

f
p

f
p

f
p
,

s
p
,

#
4

r
5
,

r
0

r
0
,

[
r
5
]

r
0
,

#
0

C
a
s
e
_
O
t
h
e
r
s

r
0
,

#
1

E
n
d
_
F
a

t
h
e
r
s

r
000
,

##
1

#
r
0
,

[
r
555
]

r
0
,

r
5

F
a
c
t

r
1
,

r
0

r
0
,

[
r
5
]

r
0
,

r
1

c
t
:

s

s

_
F
a

ssssssssssssss

s

iiiiiiii

s

_
F
a

_
F
a

F
a

F
a
c

FFF
a
c

F
a
c

F
a
c

a
c

a
c

_
F
a

_
F
a
c

a
c

F
a
c

F
a
c

a
F
a
c

_
F
a

_
F
a
c

a
c

F
a
c

a
c

F
a

F
a
c

a
F
a
c

F
aa
c
ttt

s
:

ss
:

s
:

s
:

s
:

s
:

ssssss
:

s
:

s
:

ss
:

sss
:

sss
:

ss
:

ss
:

s
::

0
#
1

55
]]]]]]]]]]]]]]]]]]]]]

r
1

r
1

r
1

r
1

r
1111111111

r
111

r
1

r
11

r
1

r
111111

f
p

s
p

s
p

s
p

s
p

s
p

s
p

s
p

sss
p

s
p

s
p

s
p

ss
p

ss
p

s
p

s
p

s
p

s
p

s
p

ss
p

s
p

s
pppp

l
rp
!
,

{
r
5
,

f
pp
,

l
r
}

lll

c
t
:

c iiiiii
s
p
,

f
p

f
p

fff
iii
aaaa

s
p

s
p

sss
p
!
,

{
r
5
,
f
p
,
l
r
}

f
p

c
t
:

i
s
p

s
p

sss
iiiii
aa

W
h

at
d

id
w

e
o

ve
rl

o
o

k
?

19
3

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
9

3
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

Pa
ra

m
et

er
p

as
si

n
g

C
al

l
b
y

n
am

e

i
s

co
n

ce
p

tu
al

ly
a

c
al

l-
b

y-
va

lu
e

, w
h

e
re

t
h

e
v

al
u

e
h

as
n

o
t

b
e

e
n

c
al

cu
la

te
d

y
e

t.

Te
ch

n
ic

al
ly

a
r

e
fe

re
n

ce
t

o
a

f
u

n
ct

io
n

i
s

p
as

se
d

a
n

d
t

h
e

e
va

lu
at

io
n

o

f
th

is
p

ar
am

e
te

r
(f

u
n

ct
io

n
)

is
l

e
ft

t
o

t
h

e
c

al
le

d
f

u
n

ct
io

n
.

Fe
at

u
re

s:

V
al

u
e

s
ar

e
o

n
ly

e
va

lu
at

e
d

i
f

an
d

w
h

e
n

t
h

e
y

ar
e

n
e

e
d

e
d

.


V

al
u

e
s

ca
n

c
h

an
g

e
d

u
ri

n
g

t
h

e
l

if
e

-t
im

e
o

f
a

fu
n

ct
io

n
(

in
c

as
e

o
f

si
d

e
-e

ff
e

ct
in

g
f

u
n

ct
io

n
s)

.


V

al
u

e
s

ca
n

b
e

s
to

re
d

o
n

ce
c

al
cu

la
te

d
(

in
c

as
e

o
f

si
d

e
-e

ff
e

ct
-f

re
e

f
u

n
ct

io
n

s)
.

W
h

il
e

t
h

is
i

s
p

o
ss

ib
le

t
o

a
d

e
g

re
e

i
n

m
o

st
p

ro
g

ra
m

m
in

g
l

an
g

u
ag

e
s

(e
ve

n
i

f
th

e
re

i
s

n
o

s
p

e
ci

fi
c

p
as

si
n

g
m

o
d

e
, y

o
u

c
an

s
ti

ll
p

as
s

a
re

fe
re

n
ce

t
o

a
f

u
n

ct
io

n
)


i

t
is

a
c

o
re

c
o

n
ce

p
t

fo
r

fu
n

ct
io

n
al

, l
az

y
e

va
lu

at
io

n
l

an
g

u
ag

e
s,

l
ik

e
e

.g
. H

as
k

e
ll

,

an
d

i
t

d
o

e
s

fi
n

d
i

ts
w

ay
b

ac
k

i
n

to
m

ai
n

st
re

am
l

an
g

u
ag

e
s

li
k

e
C

+
+

, .
N

ET
l

an
g

u
ag

e
s

o
r

P
yt

h
o

n

as
a

n
o
n
ym

o
u
s

fu
n
ct

io
n
s

(s
o

m
e

ti
m

e
s

re
fe

rr
e

d
t

o
a

s
m

-f
u

n
ct

io
n

s
o

r
m

-e
xp

re
ss

io
n

s)
.

Po
p

s
u

p
i

n
p

ro
g

ra
m

m
in

g

la
n

g
u

ag
e

s
si

n
ce

t
h

e
6

0’
s.

19
0

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
9

0
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

P
yt

h
o

n
A

ll
p

ar
am

e
te

r
ac

ce
ss

i
s

d
o

u
b

le
-i

n
d

ir
e

ct
(

h
an

d
le

s)
.

b
y

re
fe

re
n

ce
A

cc
e

ss
b


t

h
is

h
as

a
n

i
m

p
ac

t
o

n
p

e
rf

o
rm

an
ce

.

20
3

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
0

3
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

A

Fu
n

ct
io

n
s

O
n

e
-w

ay
-O

u
t

an
d

b
y-

re
fe

re
n

ce
S

id
e

-e
ff

e
ct

-f
re

e
, i

f
n

e
w

m
e

m
o

ry
i

s
al

lo
ca

te
d

o
n

r
e

tu
rn


ca

n
n

o
t

b
e

e
n

fo
rc

e
d

o
n

a
ss

e
m

b
ly

l
e

ve
l

(r
e

q
u

ir
e

s
co

m
p

il
e

r)
.

V
al

u
e

s
h

av
e

t
o

b
e

p
as

se
d

i
n

m
e

m
o

ry
.

20
0

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
0

0
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

A

Fu
n

ct
io

n
s

O
n

e
-w

ay
a

n
d

b
y-

co
p

y
T

h
o

se
a

re
s

id
e

-e
ff

e
ct

-f
re

e
a

n
d

h
e

n
ce

t
h

e
r

e
su

lt
in

g
s

ce
n

ar
io

s
ar

e
e

as
y

to
a

n
al

ys
e

.

C
o

p
yi

n
g

l
ar

g
e

d
at

a
st

ru
ct

u
re

s
m

ig
h

t
b

e
t

im
e

c
o

n
su

m
in

g
o

r
in

fe
as

ib
le

.

V
al

u
e

s
ca

n
b

e
p

as
se

d
i

n
r

e
g

is
te

rs
.

19
7

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
9

7
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
5
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
4

m
o
v

r
5
,

r
0

l
d
r

r
0
,

[
r
5
]

c
m
p

r
0
,

#
0

b
n
e

C
a
s
e
_
O
t
h
e
r
s

m
o
v

r
0
,

#
1

b

E
n
d
_
F
a
c
t

C
a
s
e
_
O
t
h
e
r
s
:

s
u
b

r
0
,

#
1

s
t
r

r
0
,

[
r
5
]

m
o
v

r
0
,

r
5

b
l

F
a
c
t

m
o
v

r
1
,

r
0

l
d
r

r
0
,

[
r
5
]

m
u
l

r
0
,

r
1

E
n
d
_
F
a
c
t
:

m
o
v

s
p
,

f
p

l
d
m
i
a

s
p
!
,

{
r
5
,

f
p
,

l
r
}

b
x

l
r

F
i
b
_
F
a
c
t
:

s
t
m
d
b

s
p
!
,

{
r
4
,

f
p
,

l
r
}

a
d
d

f
p
,

s
p
,

#
8

s
u
b

s
p
,

#
4

s
t
r

r
0
,

[
f
p
,

#

1
2
]

b
l

F
i
b

m
o
v

r
4
,

r
0

s
u
b

r
0
,

f
p
,

#
1
2

b
l

F
a
c
t

a
d
d

r
0
,

r
0
,

r
4

a
d
d

s
p
,

#
4

l
d
m
i
a

s
p
!
,

{
r
4
,

f
p
,

l
r
}

b
x

l
r

tytyy

p
,

F
i
b

d
b

!
{

4
f

m
d
b

s
p
!
,

{
r
4
,

f
p
,
l
r

d
f
p
,
s
p
,

#
8

b
s
p
,
#
4

r
r
0
,

[
f
p
,

#

1
2
]

}}

W
h

at
i

s
th

e
v

al
u

e
o

f
x

d
u

ri
n

g

o
n

e
e

xe
cu

ti
o

n
o

f
F
a
c
t

?

Fib_FactFact 1Fact 0 Fact 2 Fact 3

r
5

r
4

f
p

f
p

f
p

f
p

l
r

l
r

r
5

x

(
0
)

f
p

l
r

r
5

f
p

l
r

r
5

f
p

l
r

f
p

f
p

f
p

s
p

Fact Fact Fact Fac Facc

r
5

Fact Fact Fact Fact Fact Fac Fact Fact

r
5

Fact Fact Fact Fact Fac Fac Fact Fac

r
5

Fact Fact Fact Fact Fact Fac Fact Ft

r
5

20
4

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
0

4
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

A

Fu
n

ct
io

n
s

O
n

e
-w

ay
-I

n
a

n
d

b
y-

re
fe

re
n

ce

S
id

e
-e

ff
e

ct
-f

re
e


c

an
n

o
t

b
e

e
n

fo
rc

e
d

o
n

a
ss

e
m

b
ly

l
e

ve
l

(r
e

q
u

ir
e

s
co

m
p

il
e

r)
.

N
o

d
at

a
h

as
t

o
b

e
r

e
p

li
ca

te
d

.

V
al

u
e

s
h

av
e

t
o

b
e

p
as

se
d

i
n

m
e

m
o

ry
.

20
1

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
0

1
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

A

Fu
n

ct
io

n
s

Tw
o

-w
ay

a
n

d
b

y-
co

p
y

S
ti

ll
s

id
e

-e
ff

e
ct

-f
re

e
w

it
h

in
t

h
e

f
u

n
ct

io
n

(
b

u
t

n
o

t
o

n
t

h
e

o
u

ts
id

e
).

Po
te

n
ti

al
ly

m
o

re
c

o
n

ve
n

ie
n

t
as

m
e

m
o

ry
s

p
ac

e
c

an
b

e
r

e
u

se
d

.

V
al

u
e

s
ca

n
b

e
p

as
se

d
i

n
r

e
g

is
te

rs
.

19
8

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
9

8
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

Pa
ra

m
et

er
p

as
si

n
g

C
al

l b
y

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

o
f

4
8

7
(c

h
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

7
f

4
8

7
(

h
3

Y
e

t
w

e
u

se
d

t
h

is
m

o
d

e

e
N

o
r

e
ad

ac
ce

ss
f

ro
m

i
n

si
d

e
t

h
e

))

e
b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
d

f
i

id
th

W
e

s
h

o
u

ld
h

av
e

u
se

d
e

it
h

e
r

o
f

th
o

se
m

o
d

e
s

20
5

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
0

5
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

G
en

er
ic

S
ta

ck
-F

ra
m

e
Le

t
th

e
re

b
e

s
o

m
e

(
g

lo
b

al
)

d
at

a
o

n
t

h
e

s
ta

ck
.

S
ta

ck
-B

as
e

(
S

B
)

is
a

s
ta

ti
c

ad
d

re
ss

,
al

w
ay

s
p

o
in

ti
n

g
t

o
t

h
e


w

e
ll

.

S
ta

ck
-P

o
in

te
r

(S
P

)
p

o
in

ts
t

o
t

h
e

c
u

rr
e

n
t

to
p

o
f

th
e

s
ta

ck
.

p
ag

e
2

0
5

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

G
lo

b
al

v
ar

ia
b

le
s

ca
n

a
ls

o

b
e

s
to

re
d

s
o

m
e

p
la

ce
e

ls
e

.

20
2

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
0

2
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

A

Fu
n

ct
io

n
s

Tw
o

-w
ay

a
n

d
b

y-
re

fe
re

n
ce

S
id

e
-e

ff
e

ct
in

g
a

n
d

p
ar

ti
cu

la
r

ca
re

i
s

re
q

u
ir

e
d

a
s

m
u

lt
ip

le
e

n
ti

ti
e

s
co

u
ld

w
ri

te
o

n
t

h
is

.

N
o

d
at

a
h

as
t

o
b

e
r

e
p

li
ca

te
d

.

V
al

u
e

s
h

av
e

t
o

b
e

p
as

se
d

i
n

m
e

m
o

ry
.

19
9

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

1
9

9
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

A
cc

e
ss

b
y

co
p

y
b

y
re

fe
re

n
ce

In
fo

rm
at

io
n

fl

o
w

in

b
y

va
lu

e
Pa

ra
m

e
te

r
b

e
co

m
e

s
a

co
n

st
an

t
in

si
d

e
t

h
e

f
u

n
ct

io
n

o
r

is

co
p

ie
d

i
n

to
a

l
o

ca
l

va
ri

ab
le

.

b
y

re
fe

re
n
ce

(
im

m
u
ta

b
le

)
N

o
w

ri
te

a
cc

e
ss

i
s

al
lo

w
e

d

w
h

il
e

t
h

e
f

u
n

ct
io

n
r

u
n

s
(a

ls
o

fr

o
m

o
u

ts
id

e
t

h
e

f
u

n
ct

io
n

).

o
u

t

b
y

re
su

lt
C

al
li

n
g

f
u

n
ct

io
n

e
xp

e
ct

s
th

e

p
ar

am
e

te
r

va
lu

e
t

o
a

p
p

e
ar

i
n

a

sp
e

ci
fi

c
sp

ac
e

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

,
n
o
r

ea
d
)

N
o

r
e

ad
a

cc
e

ss
f

ro
m

i
n

si
d

e
t

h
e

fu

n
ct

io
n

, w
ri

te
a

cc
e

ss
o

n
r

e
tu

rn
.

in

&

o
u

t

b
y

va
lu

e
re

su
lt

Pa
ra

m
e

te
r

is
c

o
p

ie
d

t
o

a
l

o
ca

l
va

ri
ab

le
a

n
d

c
o

p
ie

d
b

ac
k

a
t

re
tu

rn
.

b
y

re
fe

re
n
ce

(
m

u
ta

b
le

)
Fu

n
ct

io
n

c
an

r
e

ad
a

n
d

w
ri

te
a

t
an

y
ti

m
e

. O
u

ts
id

e
c

o
d

e
s

h
al

l
n

o
t

w
ri

te
.

A

W
h

e
n

t
o

u
se

w
h

at
?

21
2

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
1

2
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

St
at

ic
v

s.
d

yn
am

ic
l
in

ks

f
u
n
c
t
i
o
n

a

(
x

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

f
u
n
c
t
i
o
n

b

(
y

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

(
x

+

y
)
;

f
u
n
c
t
i
o
n

c

(
z

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

(
b

(
z
)
)
;

b
e
g
i
n

r
e
t
u
r
n

c

(
x
)
;

e
n
d

a
;

a

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

a

x

=

c

x

w
h
e
r
e

b

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

b

y

=

x

+

y

c

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

c

z

=

b

z

T
h

e
d

yn
am

ic
a

n
d

s
ta

ti
c

li
n
k

fo
r

f
u
n
c
t
i
o
n

c
a

re
b

o
th

f
u
n
c
t
i
o
n

a
.

20
9

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
0

9
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
Fu

n
ct

io
n

s
(i

n
p

ro
g

ra
m

m
in

g
l

an
g

u
ag

e
s)

h
av

e
a

c
o

n
te

xt
.

E
.g

. t
h

e
s

u
rr

o
u

n
d

in
g

f
u

n
ct

io
n

o
r

th
e

h
o

st
in

g
o

b
je

ct
.

T
h

e
c

al
le

r
k

n
o

w
s

th
is

c
o

n
te

xt
a

n
d

p
ro

vi
d

e
s

it
.

p
ag

e
2

0
9

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
o

m
e

l
an

g
u

ag
e

s
w

il
l

n
o

t
h

av
e

a
c

o
n

te
xt

b
y

d
e

fa
u

lt
, l

ik
e

C
o

r
A

ss
e

m
b

ly
.

(g
n

u
C

e
xp

an
d

s
th

e
C

s
ta

n
d

ar
d

an

d
p

ro
vi

d
e

s
it

t
h

o
u

g
h

)

20
6

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
0

6
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
T

h
e

c
u

rr
e

n
t

co
d

e
p

re
p

ar
e

d
t

o
c

al
l

a
fu

n
ct

io
n

:
P

u
sh

p
ar

am
e

te
rs

o
n

t
h

e
s

ta
ck

.

W
o

rk
s

fo
r

an
y

d
at

a
si

ze
(

u
n

le
ss

t
h

e
s

ta
ck

o
ve

rfl
o

w
s)

an

d
p

ar
am

e
te

r
p

as
si

n
g

m
o

d
e

.

p
ag

e
2

0
6

o
f

4
8

7
(c

h
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

a

Ty
p

e
s,

s
to

ra
g

e
s

tr
u

ct
u

re
s

an
d

p

as
si

n
g

m
o

d
e

s
h

av
e

t
o

b
e

a
g

re
e

d

u
p

o
n

b
e

tw
e

e
n

c
al

le
r

an
d

c
al

le
e

.

21
3

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
1

3
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

St
at

ic
v

s.
d

yn
am

ic
l
in

ks

f
u
n
c
t
i
o
n

a

(
x

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

f
u
n
c
t
i
o
n

b

(
y

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

(
x

+

y
)
;

f
u
n
c
t
i
o
n

c

(
z

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

(
b

(
z
)
)
;

b
e
g
i
n

r
e
t
u
r
n

c

(
x
)
;

e
n
d

a
;

a

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

a

x

=

c

x

w
h
e
r
e

b

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

b

y

=

x

+

y

c

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

c

z

=

b

z

D
yn

am
ic

l
in

k
(p

ri
o

r
fr

am
e

)

T
h

e
c

al
le

r
o

f
f
u
n
c
t
i
o
n

b
i

s
f
u
n
c
t
i
o
n

c
.

H
e

n
ce

e
xc

e
p

ti
o

n
s

ra
is

e
d

i
n

b
a

re

h
an

d
le

d
fi

r
st

i
n

b
, t

h
e

n
i

n
c

, a
n

d
t

h
e

n
a

.

T
h

e
d

yn
am

ic
a

n
d

s
ta

ti
c

li
n
k

fo
r

f
u
n
c
t
i
o
n

c
a

re
b

o
th

f
u
n
c
t
i
o
n

a
.

21
0

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
1

0
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
T

h
e

c
al

le
r

al
so

p
ro

vi
d

e
s

a
re

fe
re

n
ce

t
o

i
ts

o
w

n
s

ta
ck

f
ra

m
e

.

T
h

is
b

u
il

d
s

a
li

n
e

ar
c

h
ai

n
o

f
ca

ll
s

th
ro

u
g

h
t

h
e

s
ta

ck
.

W
il

l
b

e
u

se
d

e
.g

. f
o

r
d

e
b

u
g

g
in

g
(

st
ac

k
t

ra
ce

)
an

d
e

xc
e

p
ti

o
n

p
ro

p
ag

at
io

n
.

p
ag

e
2

1
0

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

T
h

e
s

ta
ti

c
an

d
d

yn
am

ic
l

in
k

m
ig

h
t

b
e

i
d

e
n

ti
ca

l
in

s
o

m
e

c
as

e
s.

20
7

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
0

7
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
T

h
e

c
u

rr
e

n
t

co
d

e
p

re
p

ar
e

d
t

o
c

al
l

a
fu

n
ct

io
n

:
P

u
sh

p
ar

am
e

te
rs

o
n

t
h

e
s

ta
ck

.

W
o

rk
s

fo
r

an
y

d
at

a
si

ze
(

u
n

le
ss

t
h

e
s

ta
ck

o
ve

rfl
o

w
s)

an

d
p

ar
am

e
te

r
p

as
si

n
g

m
o

d
e

.

p
ag

e
2

0
7

o
f

4
8

7
(c

h
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

Ty
p

e
s,

s
to

ra
g

e
s

tr
u

ct
u

re
s

an
d

p

as
si

n
g

m
o

d
e

s
h

av
e

t
o

b
e

a
g

re
e

d

u
p

o
n

b
e

tw
e

e
n

c
al

le
r

an
d

c
al

le
e

.

S
o

lv
e

d
i

f
it

’s
t

h
e

s
am

e

la
n

g
u

ag
e

, c
o

m
p

il
e

r
an

d
p

ro
g

ra
m

.

I
f

th
e

l
an

g
u

ag
e

s
o

r
th

e
c

o
m

p
il

e
rs

a
re

d
if

fe
re

n
t,

t
h

e
n

s
ta

n
d

ar
d

s
w

il
l

b
e

r
e

q
u

ir
e

d
.

21
4

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
1

4
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

St
at

ic
v

s.
d

yn
am

ic
l
in

ks

f
u
n
c
t
i
o
n

a

(
x

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

f
u
n
c
t
i
o
n

b

(
y

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

(
x

+

y
)
;

f
u
n
c
t
i
o
n

c

(
z

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

(
b

(
z
)
)
;

b
e
g
i
n

r
e
t
u
r
n

c

(
x
)
;

e
n
d

a
;

a

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

a

x

=

c

x

w
h
e
r
e

b

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

b

y

=

x

+

y

c

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

c

z

=

b

z

D
yn

am
ic

l
in

k
(p

ri
o

r
fr

am
e

)

T
h

e
c

al
le

r
o

f
f
u
n
c
t
i
o
n

b
i

s
f
u
n
c
t
i
o
n

c
.

St
at

ic
l
in

k
(c

o
n

te
xt

)

T
h

e
c

o
n

te
xt

f
o

r
f
u
n
c
t
i
o
n

b
i

s
f
u
n
c
t
i
o
n

a
.

p
ag

e
2

1
4

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

7
p

ag
e

2
1

4
o

f
4

8
7

(c
h

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

to
p

ag
e

2
3

2
)

7

H
e

n
ce

b
c

an
a

cc
e

ss
x

(
b

u
t

n
o

t
z

).

H
e

n
ce

e
xc

e
p

ti
o

n
s

ra
is

e
d

i
n

b
a

re

h
an

d
le

d
fi

r
st

i
n

b
, t

h
e

n
i

n
c

, a
n

d
t

h
e

n
a

.

T
h

e
d

yn
am

ic
a

n
d

s
ta

ti
c

li
n
k

fo
r

f
u
n
c
t
i
o
n

c
a

re
b

o
th

f
u
n
c
t
i
o
n

a
.

21
1

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
1

1
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

St
at

ic
v

s.
d

yn
am

ic
l
in

ks

f
u
n
c
t
i
o
n

a

(
x

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

f
u
n
c
t
i
o
n

b

(
y

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

(
x

+

y
)
;

f
u
n
c
t
i
o
n

c

(
z

:

I
n
t
e
g
e
r
)

r
e
t
u
r
n

I
n
t
e
g
e
r

i
s

(
b

(
z
)
)
;

b
e
g
i
n

r
e
t
u
r
n

c

(
x
)
;

e
n
d

a
;

a

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

a

x

=

c

x

w
h
e
r
e

b

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

b

y

=

x

+

y

c

:
:

I
n
t
e
g
e
r


>

I
n
t
e
g
e
r

c

z

=

b

z

20
8

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
0

8
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

G
en

er
ic

S
ta

ck
-F

ra
m

e
Fu

n
ct

io
n

s
(i

n
p

ro
g

ra
m

m
in

g
l

an
g

u
ag

e
s)

h
av

e
a

c
o

n
te

xt
.

E
.g

. t
h

e
s

u
rr

o
u

n
d

in
g

f
u

n
ct

io
n

o
r

th
e

h
o

st
in

g
o

b
je

ct
.

T
h

e
c

al
le

r
k

n
o

w
s

th
is

c
o

n
te

xt
a

n
d

p
ro

vi
d

e
s

it
.

p
ag

e
2

0
8

o
f

4
8

7
(c

h
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

22
1

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
2

1
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
T

h
e

n
e

xt
f

u
n

ct
io

n
c

al
l

w
il

l
p

ro
d

u
ce

t
h

e
n

e
xt

s
ta

ck
f

ra
m

e
.

V
ar

ia
b

le
s

an
d

p
ar

am
e

te
rs

f
ro

m
t

h
e

c
o

n
te

xt
s

ta
y

vi
si

b
le

(v

ia
t

h
e

c
h

ai
n

o
f

st
at

ic
l

in
k

s)
.

p
ag

e
2

2
1

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es
F
P

S
P

Lo
ca

l
va

ri
ab

le
s

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

F
P

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

C
al

le
r

C
al

le
e

21
8

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
1

8
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
A

F
ra

m
e

Po
in

te
r

(F
P

)
is

e
st

ab
li

sh
e

d
a

t
th

e
b

o
u

n
d


ar

y
b

e
tw

e
e

n
t

h
e

c
al

le
r

an
d

t
h

e
c

al
le

e
.

U
p

w
ar

d
s

fr
o

m
t

h
e

F
P

: d
at

a
fr

o
m

t
h

is
f

u
n

ct
io

n
.

D
o

w
n

w
ar

d
s

fr
o

m
t

h
e

F
P

:
d

at
a

p
ro

vi
d

e
d

b
y

th
e

p
re

vi
o

u
s

fu
n

ct
io

n
.

p
ag

e
2

1
8

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

S
P

Sa
ve

d
r

es
o
u
rc

es
F
P

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es
F
P

S
av

e
d

r
e

so
u

rc
e

s
ar

e
f

o
r

in
st

an
ce

r
e

g
is

te
rs

w
h

ic
h

t
h

e
c

al
le

e
i

s
p

la
n

n
in

g
t

o
u

se
.

21
5

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
1

5
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
T

h
e

c
al

le
r

al
so

p
ro

vi
d

e
s

a
re

fe
re

n
ce

t
o

i
ts

o
w

n
s

ta
ck

f
ra

m
e

.

T
h

is
b

u
il

d
s

a
li

n
e

ar
c

h
ai

n
o

f
ca

ll
s

th
ro

u
g

h
t

h
e

s
ta

ck
.

W
il

l
b

e
u

se
d

e
.g

. f
o

r
d

e
b

u
g

g
in

g
(

st
ac

k
t

ra
ce

)
an

d
e

xc
e

p
ti

o
n

p
ro

p
ag

at
io

n
.

p
ag

e
2

1
5

o
f

4
8

7
(c

h
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

22
2

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
2

2
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
T

h
e

n
e

xt
f

u
n

ct
io

n
c

al
l

w
il

l
p

ro
d

u
ce

t
h

e
n

e
xt

s
ta

ck
f

ra
m

e
.

V
ar

ia
b

le
s

an
d

p
ar

am
e

te
rs

f
ro

m
t

h
e

c
o

n
te

xt
s

ta
y

vi
si

b
le

(v

ia
t

h
e

c
h

ai
n

o
f

st
at

ic
l

in
k

s)
.

p
ag

e
2

2
2

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es
F
P

S
P

Lo
ca

l
va

ri
ab

le
s

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

R
et

u
rn

a
d

d
re

ss

Sa
ve

d
r

es
o
u
rc

es

F
P

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

R
et

u
rn

a
d

d
re

ss

SaSaSa
vvve

d
re

so
u
r

ed
r

es
o
u
r

ed
re

so
u
rc

esce
s

ce
s

C
al

le
r

C
al

le
e

Lo
ca

l
va

ri
ab

le
s

ca
n

o
n

ly

b
e

a
d

d
e

d
t

o
t

h
e

c
u

rr
e

n
tl

y
e

xe
cu

ti
n

g
f

u
n

ct
io

n
.

21
9

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
1

9
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
Lo

ca
l

va
ri

ab
le

s
ar

e
a

ll
o

ca
te

d
(

b
y

m
o

vi
n

g
t

h
e

s
ta

ck
p

o
in

te
r)

.

Lo
ca

l
va

ri
ab

le
s

ca
n

b
e

o
f

an
y

si
ze

o
r

st
ru

ct
u

re
,

u
n

le
ss

t
h

e
s

ta
ck

o
ve

rfl
o

w
s.

T
h

e
c

o
m

p
le

te
s

a
n

e
w

s
ta

ck
f

ra
m

e.

p
ag

e
2

1
9

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es
F
P

S
P

Lo
ca

l
va

ri
ab

le
s

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es
F
P

Lo
ca

l
va

ri
ab

le
s

21
6

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
1

6
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
T

h
e

l
as

t
it

e
m

t
o

b
e

s
to

re
d

b
e

fo
re

h
an

d
in

g
o

ve
r

co
n

tr
o

l
is

t
h

e
a

d
d

re
ss

o
f

th
e

f
o

ll
o

w
in

g
i

n
st

ru
ct

io
n

.

T
h

e
c

o
n

tr
o

l
fl

o
w

c
an

l
at

e
r

re
tu

rn
t

o
t

h
is

a
d

d
re

ss
.

p
ag

e
2

1
6

o
f

4
8

7
(c

h
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

22
3

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
2

3
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

G
en

er
ic

S
ta

ck
-F

ra
m

e
T

h
e

n
e

xt
f

u
n

ct
io

n
c

al
l

w
il

l
p

ro
d

u
ce

t
h

e
n

e
xt

s
ta

ck
f

ra
m

e
.

N
o

te
w

h
ic

h
v

ar
ia

b
le

s
an

d
p

ar
am

e
te

rs
a

re
v

is
ib

le
.

p
ag

e
2

2
3

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es
F
P

S
P

Lo
ca

l
va

ri
ab

le
s

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

Pa
ra

m
et

er
s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

Lo
ca

l
va

ri
ab

le
s

F
P

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Sa
ve

d
r

es
o
u
rc

es

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es

Pa
r

PP
am

et
er

s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
v

Lo
ca

l
v

Lo
ca

l
va

ri
ab

le
s

ar
ia

b
le

s
ar

ia
b
le

s

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

SaSaSaSa
vvvve

d
re

so
u
r

ed
r

es
o
u
r

ed
re

so
u
r

ed
re

so
u
rc

esce
s

ce
s

ce
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
B

22
0

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
2

0
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

G
en

er
ic

S
ta

ck
-F

ra
m

e
Lo

ca
l

va
ri

ab
le

s
ar

e
a

ll
o

ca
te

d
(

b
y

m
o

vi
n

g
t

h
e

s
ta

ck
p

o
in

te
r)

.

Lo
ca

l
va

ri
ab

le
s

ca
n

b
e

o
f

an
y

si
ze

o
r

st
ru

ct
u

re
,

u
n

le
ss

t
h

e
s

ta
ck

o
ve

rfl
o

w
s.

T
h

e
c

o
m

p
le

te
s

a
n

e
w

s
ta

ck
f

ra
m

e.

p
ag

e
2

2
0

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es
F
P

S
P

Lo
ca

l
va

ri
ab

le
s

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es
F
P

Lo
ca

l
va

ri
ab

le
s

W
h

il
e

t
h

is
f

u
n

ct
io

n
i

s
e

xe
cu

ti
n

g
, l

o
ca

l
va

ri
ab

le
s

ca
n

s
ti

ll
b

e
a

d
d

e
d

.

H
an

d
y,

i
f

e
.g

. t
h

e
s

iz
e

o
f

a
lo

ca
l

va
ri

ab
le

i
s

n
o

t
ye

t
d

e
te

rm
in

e
d

w

h
e

n
t

h
e

f
u

n
ct

io
n

s
ta

rt
s.

21
7

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
1

7
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

G
en

er
ic

S
ta

ck
-F

ra
m

e
C

o
n

tr
o

l
is

h
an

d
e

d
o

ve
r

to
t

h
e

c
al

le
e

.

T
h

e
I

n
st

ru
ct

io
n

P
o

in
te

r
(I

P
),

s
o

m
e

ti
m

e
s

al
so

c
al

le
d

P

ro
g

ra
m

C
o

u
n

te
r

(P
C

)
is

c
h

an
g

e
d

t
o

a
n

e
w

a
d

d
re

ss
.

O
p

e
ra

ti
o

n
s

fr
o

m
h

e
re

a
re

i
n

t
h

e
c

o
n

tr
o

l
o

f
th

e
c

al
le

e
.

p
ag

e
2

1
7

o
f

4
8

7
(c

h
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

23
0

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
3

0
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e

H
ea

p

B
y

u
si

n
g

a
n

o
u

t,
b

y-
re

fe
re

n
ce

p
ar

am
e

te
r,

th

e
l

in
k

t
o

t
h

e
n

e
w

ly
a

ll
o

ca
te

d

m
e

m
o

ry
a

re
a

is
k

e
p

t.


a

n
d

a
l

o
ca

l
va

ri
ab

le
i

n
t

h
e

c
al

li
n

g

fu
n

ct
io

n
c

an
k

e
e

p
t

h
is

l
in

k
.

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

F
P

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

H
e
a
p

m
e
m
o
r
y

H
o

w
t

o
k

e
e

p
a

n
y

m
e

m
o

ry

al
lo

ca
ti

o
n

a
ft

e
r

fu
n

ct
io

n
r

e
tu

rn
?

22
7

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
2

7
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e

C
al

le
e

P
r
o
l
o
g
u
e
:

;

S
a
v
e

a
l
l

r
e
g
i
s
t
e
r
s

w
h
i
c
h

a
r
e

n
e
e
d
e
d

;

i
n
s
i
d
e

t
h
i
s

f
u
n
c
t
i
o
n

t
o

t
h
e

s
t
a
c
k

;

E
s
t
a
b
l
i
s
h

a

n
e
w

f
r
a
m
e

p
o
i
n
t
e
r

;

w
h
i
l
e

p
o
t
e
n
t
i
a
l
l
y

s
a
v
i
n
g

t
h
e

p
r
e
v
i
o
u
s

f
p

;

A
l
l
o
c
a
t
e
/
i
d
e
n
t
i
f
y

s
p
a
c
e

f
o
r

l
o
c
a
l

v
a
r
i
a
b
l
e
s

;

P
o
t
e
n
t
i
a
l
l
y

i
n
i
t
i
a
l
i
z
e

l
o
c
a
l

v
a
r
i
a
b
l
e
s

O
p

e
ra

ti
o

n
s,

w
h

ic
h

w
il

l
u

se

lo
ca

l
an

d
c

o
n

te
xt

v
ar

ia
b

le
s

an
d

p
ar

am
e

te
rs

(v

ia
t

h
e

F
P

(s
))

E
p
i
l
o
g
u
e
:

;

P
o
t
e
n
t
i
a
l
l
y

r
e
s
t
o
r
e

t
h
e

p
r
i
o
r

f
r
a
m
e

p
o
i
n
t
e
r

;

R
e
s
t
o
r
e

t
h
e

s
t
a
c
k

t
o

i
t
s

s
t
a
t
e

a
t

e
n
t
r
y

R
e

tu
rn

f
ro

m
f

u
n

ct
io

n
©

2
0

2
1

U
w

e
R

Z
im

m
er

Th
e

A
u

st
ra

li
an

N
at

io
n

al
U

n
iv

er
si

tyy

(G
lo

b
al

)
va

ri
ab

le
s

Pa
ra

m
et

er
s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

Lo
ca

l
va

ri
ab

le
s

F
P

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Sa
ve

d
r

es
o
u
rc

es

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es

Pa
r

PP
am

et
er

s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
v

Lo
ca

l
v

Lo
ca

l
va

ri
ab

le
s

ar
ia

b
le

s
ar

ia
b
le

s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

SaSaSaSa
vvvve

d
re

so
u
r

ed
r

es
o
u
r

ed
re

so
u
r

ed
re

so
u
rc

esce
s

ce
s

ce
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
B

22
4

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
2

4
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e
T

h
e

n
e

xt
f

u
n

ct
io

n
c

al
l

w
il

l
p

ro
d

u
ce

t
h

e
n

e
xt

s
ta

ck
f

ra
m

e
.

N
o

te
w

h
ic

h
v

ar
ia

b
le

s
an

d
p

ar
am

e
te

rs
a

re
v

is
ib

le
.

p
ag

e
2

2
4

o
f

4
8

7
(c

h
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es
F
P

S
P

Lo
ca

l
va

ri
ab

le
s

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

(G
lo

b
al

)
va

ri
ab

le
s

Pa
ra

m
et

er
s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

Lo
ca

l
va

ri
ab

le
s

F
P

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Sa
ve

d
r

es
o
u
rc

es

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es

Pa
r

PP
am

et
er

s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
v

Lo
ca

l
v

Lo
ca

l
va

ri
ab

le
s

ar
ia

b
le

s
ar

ia
b
le

s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

SaSaSaSa
vvvve

d
re

so
u
r

ed
r

es
o
u
r

ed
re

so
u
r

ed
re

so
u
rc

esce
s

ce
s

ce
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
B

A
cc

e
ss

in
g

t
h

e
c

o
n

te
xt

l
ik

e

th
at

c
an

b
e

i
n

e
ffi

c
ie

n
t!

C
o

m
p

il
e

rs
m

ay
c

h
o

se
o

th
e

r
m

e
ch

an
is

m
(

e
.g

. d
is

p
la

ys
,

w
h

ic
h

m
ak

e
a

ll
c

o
n

te
xt

le

ve
ls

a
cc

e
ss

ib
le

a
t

o
n

ce
).

23
1

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
3

1
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e

H
ea

p

B
y

u
si

n
g

a
n

o
u

t,
b

y-
re

fe
re

n
ce

p
ar

am
e

te
r,

th

e
l

in
k

t
o

t
h

e
n

e
w

ly
a

ll
o

ca
te

d

m
e

m
o

ry
a

re
a

is
k

e
p

t.


a

n
d

a
l

o
ca

l
va

ri
ab

le
i

n
t

h
e

c
al

li
n

g

fu
n

ct
io

n
c

an
k

e
e

p
t

h
is

l
in

k
.

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

R
et

u
rn

a
d

d
re

ss

Sa
ve

d
r

es
o
u
rc

es

F
P

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

R
et

u
rn

a
d

d
re

ss

SaSaSa
vvve

d
re

so
u
r

ed
r

es
o
u
r

ed
re

so
u
rc

esce
s

ce
s

H
e
a
p

m
e
m
o
r
y

H
o

w
t

o
k

e
e

p
a

n
y

m
e

m
o

ry

al
lo

ca
ti

o
n

a
ft

e
r

fu
n

ct
io

n
r

e
tu

rn
?

p
ag

p
ag

e
2

3
1

o
f

4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

7

W
h

e
n

t
o

d
e

al
lo

ca
te

t
h

o
u

g
h

?


G

ar
b

ag
e

c
o

ll
e

ct
io

n
(

Ja
va

)?


S

m
ar

t
p

o
in

te
rs

(
C

+
+

)?


R

e
fe

re
n

ce
o

w
n

e
rs

h
ip

s
(R

u
st

)?


S

co
p

e
d

p
o

in
te

rs
/

s
to

ra
g

e
p

o
o

ls
(

A
d

a)
?

22
8

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
2

8
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e

H
ea

p

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

Pa
ra

m
et

er
s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

Lo
ca

l
va

ri
ab

le
s

F
P

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Sa
ve

d
r

es
o
u
rc

es

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es

Pa
r

PP
am

et
er

s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
v

Lo
ca

l
v

Lo
ca

l
va

ri
ab

le
s

ar
ia

b
le

s
ar

ia
b
le

s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

SaSaSaSa
vvvve

d
re

so
u
r

ed
r

es
o
u
r

ed
re

so
u
r

ed
re

so
u
rc

esce
s

ce
s

ce
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
B

H
o

w
t

o
k

e
e

p
a

n
y

m
e

m
o

ry

al
lo

ca
ti

o
n

a
ft

e
r

fu
n

ct
io

n
r

e
tu

rn
?

22
5

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
2

5
o

f
4

8
7

(
ch

ap
te

r
3

:
“F

u
n

ct
io

n
s”

u
p

t
o

p
ag

e
2

3
2

)

G
en

er
ic

S
ta

ck
-F

ra
m

e

p
ag

e
2

2
5

o
f

4
8

7
(c

h
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

7
f

h
f

h

(G
lo

b
al

)
va

ri
ab

le
s

S
B

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es
F
P

S
P

Lo
ca

l
va

ri
ab

le
s

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

Pa
ra

m
et

er
s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

Lo
ca

l
va

ri
ab

le
s

F
P

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Sa
ve

d
r

es
o
u
rc

es

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es

Pa
r

PP
am

et
er

s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
v

Lo
ca

l
v

Lo
ca

l
va

ri
ab

le
s

ar
ia

b
le

s
ar

ia
b
le

s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

SaSaSaSa
vvvve

d
re

so
u
r

ed
r

es
o
u
r

ed
re

so
u
r

ed
re

so
u
rc

esce
s

ce
s

ce
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
B

H
o

w
f

as
t

/
co

m
p

le
x

is
t

h
e

al

lo
ca

ti
o
n

a
n

d
d

ea
ll
o
ca

ti
o
n

o
f

lo
ca

l v
ar

ia
b

le
s

an
d

p
ar

am
e

te
rs

o
n

t
h

e
s

ta
ck

?

23
2

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
3

2
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

Fu
n

ct
io

n
s


Fr

am
ew

o
rk


R

e
tu

rn
a

d
d

re
ss


R

e
la

ti
ve

a
d

d
re

ss
in

g


Pa

ra
m

et
er

p
as

si
n
g

m
o
d
es

a
n
d
m

ec
h
an

is
m

s


C

o
p

y
ve

rs
u

s
re

fe
re

n
ce


In

fo
rm

at
io

n
fl

o
w

d
ir

e
ct

io
n

s


La

te
e

va
lu

at
io

n


St

ac
kf

ra
m

es


S

ta
ti

c
an

d
d

yn
am

ic
l

in
k

s


Pa

ra
m

e
te

rs


Lo

ca
l

va
ri

ab
le

s

Su
m

m
ar

y

22
9

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
2

9
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

G
en

er
ic

S
ta

ck
-F

ra
m

e

H
ea

p

B
y

u
si

n
g

a
n

o
u

t,
b

y-
re

fe
re

n
ce

p
ar

am
e

te
r,

th

e
l

in
k

t
o

t
h

e
n

e
w

ly
a

ll
o

ca
te

d

m
e

m
o

ry
a

re
a

is
k

e
p

t.

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

Pa
ra

m
et

er
s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

Lo
ca

l
va

ri
ab

le
s

F
P

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Sa
ve

d
r

es
o
u
rc

es

Sa
ve

d
r

es
o
u
rc

es

Pa
r

PP
am

et
er

s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
v

Lo
ca

l
v

Lo
ca

l
va

ri
ab

le
s

ar
ia

b
le

s
ar

ia
b
le

s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

SaSaSaSa
vvvve

d
re

so
u
r

ed
r

es
o
u
r

ed
re

so
u
r

ed
re

so
u
rc

esce
s

ce
s

ce
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
B

H
e
a
p

m
e
m
o
r
y

H
o

w
t

o
k

e
e

p
a

n
y

m
e

m
o

ry

al
lo

ca
ti

o
n

a
ft

e
r

fu
n

ct
io

n
r

e
tu

rn
?

22
6

Fu
n

ct
io

n
s

©
2

0
2

1
U

w
e

R
.

Z
im

m
er

, T
h

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
ty

p

ag
e

2
2

6
o

f
4
8

7
(

ch
ap

te
r

3
:

“F
u

n
ct

io
n

s”
u

p
t

o
p

ag
e

2
3

2
)

G
en

er
ic

S
ta

ck
-F

ra
m

e

C
al

le
r

P
r
e
_
C
a
l
l
:

;

A
l
l
o
c
a
t
e
/
i
d
e
n
t
i
f
y

s
p
a
c
e

f
o
r

t
h
e

p
a
r
a
m
e
t
e
r
s

;

C
o
p
y

t
h
e

i
n

a
n
d

i
n

o
u
t

;

p
a
r
a
m
e
t
e
r
s

t
o

t
h
i
s

s
p
a
c
e

;

P
o
t
e
n
t
i
a
l
l
y

p
r
o
v
i
d
e

l
i
n
k
s

;

P
r
o
v
i
d
e

a

r
e
t
u
r
n

a
d
d
r
e
s
s

(

P
o
s
t
_
C
a
l
l

)

;

(
u
s
u
a
l
l
y

i
m
p
l
i
c
i
t

w
i
t
h

t
h
e

c
a
l
l

i
t
s
e
l
f
)

C
al

l
th

e
f

u
n

ct
io

n

P
o
s
t
_
C
a
l
l
:

;

C
o
p
y

t
h
e

o
u
t

a
n
d

i
n

o
u
t

p
a
r
a
m
e
t
e
r
s

;

t
o

l
o
c
a
l

v
a
r
i
a
b
l
e
s

o
r

r
e
g
i
s
t
e
r
s

;

P
o
t
e
n
t
i
a
l
l
y

r
e
s
t
o
r
e

t
h
e

f
r
a
m
e

p
o
i
n
t
e
r

;

R
e
s
t
o
r
e

t
h
e

s
t
a
c
k

t
o

i
t
s

p
r
e
v
i
o
u
s

s
t
a
t
e

;

(
i
f

t
h
e

s
t
a
c
k

h
a
s

b
e
e
n

u
s
e
d
)

©
2

0
2

1
U

w
e

R
Z

im
m

er
Th

e
A

u
st

ra
li

an
N

at
io

n
al

U
n

iv
er

si
tyy

©
2

0
2

1

(G
lo

b
al

)
va

ri
ab

le
s

Pa
ra

m
et

er
s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

Lo
ca

l
va

ri
ab

le
s

F
P

S
P

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
va

ri
ab

le
s

Sa
ve

d
r

es
o
u
rc

es

C
al

le
r

C
al

le
e

Sa
ve

d
r

es
o
u
rc

es

Pa
r

PP
am

et
er

s

C
o

n
te

xt
(

st
at

ic
)

li
n

k
P

ri
o

r
fr

am
e

(d
yn

am
ic

)
li

n
k

R
et

u
rn

a
d

d
re

ss

Lo
ca

l
v

Lo
ca

l
v

Lo
ca

l
va

ri
ab

le
s

ar
ia

b
le

s
ar

ia
b
le

s

P
ri

o
r

fr
am

e
(d

yn
am

ic
)

li
n

k
R

et
u

rn
a

d
d

re
ss

SaSaSaSa
vvvve

d
re

so
u
r

ed
r

es
o
u
r

ed
re

so
u
r

ed
re

so
u
rc

esce
s

ce
s

ce
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
B