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

COPE-03 Functions.indd

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
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
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
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

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
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
;

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
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
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
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

?

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
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
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

?

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
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
;

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
)

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
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

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

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
)

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
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.

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

?

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
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 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 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 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 ? 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 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 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 ) 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
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

?

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 FaFac

r
5

Fact Fact Fact Fact Fac Facac Fact

r
5

Fact Fact Fac Fact Fac Fac Fact Fac

r
5

Fact Fact Fact Fact Fac Fact Facac

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

ff
p

ff
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
5555
]

r
0
,

r
5

F
a
c
t

r
1
,

r
0

r
0
,

[
r
5
]

r
0
,

r
1

c
t
:

s

s

_
FF
a

s

5
]]

r
1

r

iiiiiii

s

_
FFFFF

_
FFFFF

_
FFFFFFF
a
c

a
c

a
c

aa
c

aaa
c

a
c

a
c

a
c
t

a
c

a
c

a
c
t

a
c

a
c

a
c

aaa
c
t

a
c

a
c

a
c

a
c

a
c

ss
:

s
:

ss
:

s
:

s
:

ss
:

ss
:

s
:

s
:

ss
:

ss
:

s
:

s
:

s
:::

0
#
1

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

r
1

r
11

r
111111

r
11

r
111

r
1

r
1

r
11

r
11111111

f
p

s
p

s
p

ss
p

ssssss
p

s
p

s
p

ss
p

s
p

s
p

s
p

s
p

ss
p

s
p

ss
p

s
ppppp

l
rp
!
,

{
r
5
,

f
pp
,

l
r
}

ll

c
t
:

c iiiiiii
s
p
,

f
p

f
p

fff
ii
aaaa

s
p

s
p

sss
p
!
,

{
r
5
,

f
p
,

l
r
}

f
p

c
t
:

ii
s
p

ssss
i
a

ii
a

i
a

i
W

h
at

d
id

w
e

o
ve

rl
o

o
k

?

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
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

.

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

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 FaFac F

r
5

Fact Fact Fact Fact Fac Facac Fact

r
5

Fact Fact Fac Fact Fac Fac Fact Fac

r
5

Fact Fact Fact Fact Fac Fact Facac

r
5

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.

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

.

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

tttetetetetetetteee n
ooooooooooo

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

.

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
?

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
(
ch

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

a
cc

e
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

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
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

.

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
)

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
?

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 Fac FFacc

r
5

Fact Fact Fact FFacact Fact Fact

r
5

Fact Fact Fact Fact Fac Facac Fact

r
5

Fact Fact Fact FFac Fac Fact Fact

r
5

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
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

.

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
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
(
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

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
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
.

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

.

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
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

(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

©
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
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
.

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

(c
h
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
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

(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

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
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
(
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

©
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

.

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
.

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
(
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

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
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
(
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

©
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
.

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
.

22
8

Fu
n

ct
io

n
s

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

(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

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

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
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
(
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

Lo
ca

l
va

ri
ab

le
s

F
P

S
P

C
o

n
te

xt
(

st
at

ic
)

li
n

k
yn

am
ic

)
li

n
k

ar
ia

b
le

s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

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

C
o

n
te

xt
(

st
at

ic
)

li
n

k
yn

am
ic

)
li

n
k

ar
ia

b
le

s
ar

ia
b
le

s
ar

ia
b
le

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
).

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

(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

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

C
al

le
r

C
al

le
e

Sa
v

ce
s

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
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
(
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

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
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

(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

Lo
ca

l
va

ri
ab

le
s

Sa
ve

d
r

es
o
u
rc

es

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
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

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

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

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

?

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

(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

S
B

S
P

Pa
ra

m
et

er
s

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
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
©

2
0
2
1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

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
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

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

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

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
B

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
©

2
0
2
1

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

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

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
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
.

23
1

Fu
n

ct
io

n
s

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
.

(G
lo

b
al

)
va

ri
ab

le
s

S
B

S
P

Pa
ra

m
et

er
s

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
?

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
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
©

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

am
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

ar
ia

b
le

s

Pa
ra

m
et

er
s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

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

am
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

ar
ia

b
le

s
ar

ia
b
le

s
ar

ia
b
le

s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
B

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

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

ar
ia

b
le

s

Pa
ra

m
et

er
s

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

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

ar
ia

b
le

s
ar

ia
b
le

s
ar

ia
b
le

s

C
o

n
te

xt
(

st
at

ic
)

li
n

k

S
B

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

(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

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