Data Control
Data Control
CSE – HCMUT
2009
Outline
• Basic Concepts
• Local Environment
• Shared Environment
– Dynamic Scope
– Block Structure
– Parameter Passing
Association Scope
A↔obj1 Main
B ↔obj2 Main, Sub1, Sub1, Sub2
C ↔obj3 Main, Sub1, Sub1
…
y 8
6 b 8
6
• By constant value x 5 a 5
foo(x,y) → proc foo(const a,const b) y 6 b 6
foo(x,y) ← proc foo(const a,const b)
• By constant reference x 5 a
foo(x,y) → proc foo(constvar a, constvar b) y 6 b
y 8
6 b 8
foo(x,y) ← proc foo(out a,out b)
• Function form
a := foo() function foo():integer
…
procedure SUB2(K:int; var L:int) .
begin IP -
K = K + 10; EP -
L = L + 10; SCP -
end I 1
procedure SUB1; J 12
2
var I,J: int IP -
begin EP -
I = 1; SCP -
J = 2; K 11
1 I
SUB2(I,J); L
end
I 1
I→K
J 22
12
2
J→L IP -
K := K + 10 EP -
SCP -
L := L + 10
K 21
11
1
SUB1(K,L) L
K→M IP -
EP -
L→N SCP -
M := M + 10 M
N := N + 10 N
for J := 1 to 3 do write(A[J]);
for J := 1 to 3 do write(B[J]);
end;
A Descriptor
A[1] := 7; A[2] := 8; A[3] :=9; 7
A→C 7
18
8
B→D 9
C[2] := C[2] + 10 J
IP -
EP
D[2] := D[2] + 10 SCP
-
-
C Descriptor
7 SUB2
Activation
18
8 record
9
D
I